Próspera
Public affairs and governance for Honduras's first ZEDE — the world's most ambitious charter city. First full-time employee; now chief of staff & director of public affairs.
governance · charter cities · economics
The Workshop
Most of this software exists so that a laptop full of AI agents can do real work without lying to their operator. Websites, command-line tools, agent infrastructure — built with the agents that now use it.
The floor has five stations. Coordination decides who works where and how tasks move between agents; verification makes their output provable; senses give them images, speech, and documents; discipline keeps the whole machine honest about money, memory, and mess; and play is where the same habits build things for a life instead of a pipeline. Every terminal capture below is real output from the tool, run on this machine, dated.
An explorable index of ideas, writing, and reading. You are standing in it — this site is the workshop's own dossier, co-authored with the agents the rest of this page describes.
The swarm layer — who works where, who talks to whom, and how a bounded task moves between agents without anyone stepping on anyone.
The exit codes are the API — an agent preflights a repo with one call and a 0, 3, or 1 tells it to go, stop, or look closer. No daemon, no server; evidence read from the machine itself.
$ fleet status
fleet status: 28 actor(s), 0 stalled, 1059 historical, 4 live claim(s), 2 collision(s), complete=false
WORKSPACE /Users/treygoff/Code/claude-space
HARNESS MODEL MODE OWNER LIVENESS AGE PIDS UNCLAIMED
claude - - personal active 23h 18704,90767,90796 true
WORKSPACE /Users/treygoff/Code/delegate-agent
· 1002 historicalTen-plus agent runtimes normalized into one command with safe read-only modes, worktree isolation, and run records; it never commits, pushes, or deploys on its own.
$ delegate models
cursor: grok-4.5-fast-xhigh (/Users/treygoff/.local/bin/cursor-agent)
droid:
deepseek v4 flash -> custom:Fireworks-:-DeepSeek-V4-Flash-0
deepseek v4 pro -> custom:Fireworks-:-DeepSeek-V4-Pro-0
gemini -> custom:Gemini-:-3.6-Flash-15
glm -> custom:Fireworks-:-GLM-5.2-Fast-0
grok -> custom:xAI-:-Grok-4.3-44
kimi -> custom:Fireworks-:-Kimi-K2.7-Code-Fast-0
minimax -> custom:Fireworks-:-MiniMax-M3-0
qwen -> custom:Fireworks-:-Qwen-3.7-Plus-0
claude: binary=/Users/treygoff/.local/bin/claude-delegate-work defaultModel=(none) workPermissionMode=auto
grok: binary=/Users/treygoff/.grok/bin/grok defaultModel=grok-4.5 workPermissionMode=auto
devin: binary=devin defaultModel=swe-1.7
opencode: binary=opencode defaultModel=(none) defaultAgent=(none)
muse -> meta/muse-spark-1.1
pi: binary=/opt/homebrew/bin/pi defaultModel=(none)
gemini -> google/gemini-3.6-flash
omp: binary=omp defaultModel=(none)
kimi: binary=/Users/treygoff/.kimi-code/bin/kimi defaultModel=kimi-code/k3
runtime: /Users/treygoff/.delegate/src/delegate_agent/cli.pyEvery message is delivered wrapped in a framing banner reminding the reader that mail is data, not authority — a protocol design that assumes the recipients are persuadable and defends them anyway.
$ post --help
Machine-local mailbox for AI agents
Usage: post [OPTIONS] <COMMAND>
Commands:
send Send mail from --body, FILE, or stdin
inbox List unread mail, oldest first
read Read one unread message by full id or unique prefix
rooms List registered rooms and applicable blocking rules
schema Print the complete machine-readable CLI contract
doctor Diagnose mailbox configuration and state
watch Stream arriving mail as one event per line; runs until killed
help Print this message or the help of the given subcommand(s)
Options:
--json Emit JSON for send/read (inbox/rooms/schema/doctor are already JSON)
--pretty Pretty-print JSON output
-h, --help Print help
-V, --version Print versionTools that make AI output provable — sources with receipts, facts that survive checking, architecture that can't erode silently.
Built on the observation that fast, cheap inference changes what verification can afford: a research answer arrives already audited, with hard caps on both dollars and seconds. In the capture below, two claims lost their verifier to a rate limit mid-run — and shipped as no_source rather than bluffing.
$ receipts ask "Who first proposed taxing land values rather than labor and capital, and in what work?" --depth quick --max-dollars 0.40 --brief | jq '{brief: .data.brief, verdicts: [.data.claims[] | {claim, verdict}][0:4], cost: .costDollars.total}'
{
"brief": "Henry George proposed taxing land values exclusively as an alternative to taxing labor and capital [[https://www.britannica.com/biography/Henry-George]]. While other thinkers—including Adam Smith, Tom Paine, David Ricardo, and John Stuart Mill—argued for the theoretical merit, justice, or economic neutrality of taxing land rent [[https://henrygeorge.org/pchp34.htm], [https://ora.ox.ac.uk/objects/uuid:7a11d268-be0b-4ecd-a30c-64bf48e3597e/files/r9c67wn83n]], George is the figure associated with the specific proposal to replace taxes on labor and capital with a land value tax. Uncertainty: The provided text does not specify the title of the work in which Henry George first proposed this system.",
"verdicts": [
{
"claim": "Henry George proposed taxing land values exclusively rather than taxing labor and capital.",
"verdict": "supported"
},
{
"claim": "Henry George detailed his proposal in his work, Progress and Poverty: An Inquiry into the Cause of Industrial Depressions and of Increase of Want with Increase of Wealth: The Remedy.",
"verdict": "no_source"
},
{
"claim": "Progress and Poverty was published in 1879.",
"verdict": "no_source"
},
{
"claim": "Henry George proposed a 'single tax' on the economic rent of land to replace all other taxes, specifically income taxes and taxes on buildings or improvements.",
"verdict": "unsupported"
}
],
"cost": 0.08549525
}Every fact in a brief is machine-checked against a verbatim quote from a real file, so a hallucinated claim cannot survive the pipeline. It also refuses to overspend: the capture below is Scout declining a job that would have blown its budget, having spent nothing.
$ scout index ~/Code/radiant --max-dollars 1 --pretty
scout index estimate before spend: 154 files to card, ~$1.4531
{
"schema": "scout.cli.response.v1",
"state": "budget_hit",
"command": "index",
"root": "/Users/treygoff/Code/radiant",
"data": {
"estimated_usd": 1.4530880499999999,
"max_dollars": 1.0
},
"spend": {
"in_tok": 0,
"out_tok": 0,
"usd": 0.0,
"calls": 0,
"retries": 0
},
"skipped_count": 97,
"skipped_examples": [
{
"path": ".claude",
"reason": "harness_meta"
},
{
"path": ".npmrc",
"reason": "sensitive"
},
{
"path": ".vscode",
"reason": "harness_meta"
}
]
}The rules themselves are versioned: an agent can't weaken an architectural constraint without the weakening itself becoming a reviewable diff.
$ specgate --help
Machine-checkable architectural intent for TypeScript projects
Usage: specgate <COMMAND>
Commands:
check Run the full policy pipeline and emit verdict JSON
validate Validate spec/config files only
init Initialize starter config/spec scaffolding
doctor Diagnostics and parity checks
baseline Generate a baseline file for current violations
policy-diff Compare `.spec.yml` policy snapshots between git refs
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print versionEyes, ears, and a voice for the machine — images, speech, sound, and documents, mostly without leaving the laptop.
Captions every image once with a fast vision model, then answers any query by handing the entire index to a single model call. The capture below is Lens searching this site's own book covers — it surfaced Moby Dick for "a lighthouse, a ship, or the sea" from the cover art alone.
$ lens find "a lighthouse, a ship, or the sea" | jq '{hits: [.data.hits[] | {cover: .relPath, description}][0:3], cost: .costDollars.total}'
{
"hits": [
{
"cover": "moby-dick.jpg",
"description": "A minimalist book cover for Moby Dick by Herman Melville, featuring a large whale tail emerging from the ocean with a small boat in the distance."
},
{
"cover": "the-edge-of-the-world.jpg",
"description": "Book cover for 'The Edge of the World' by Michael Pye, featuring stylized blue and white illustrations of a viking ship, a whale, and coastal life. The art style is reminiscent of traditional woodcuts or linocuts."
},
{
"cover": "the-cold-start-problem.jpg",
"description": "The cover of the book 'The Cold Start Problem' by Andrew Chen, featuring a deep blue color palette and an image of ocean waves."
}
],
"cost": 0.023164
}Where the official integration exposes a handful of tools, elv compiles the whole surface: every operation callable, every response in one stable JSON envelope an agent can parse blind.
$ elv capabilities | jq '{cli: .data.cli, spec: {total_operations, callable_operations, paths}}'
{
"cli": {
"name": "elv",
"version": "0.2.0",
"envelope_version": 1
},
"spec": {
"total_operations": 339,
"callable_operations": 338,
"paths": 268
}
}
$ elv ops search tts | jq -r ".data[].operation_id" | head -4
text_to_speech_full
text_to_speech_full_with_timestamps
text_to_speech_stream
text_to_speech_stream_with_timestampsKeeping a machine full of agents honest — triage, complaints, spend caps, and the small daemons that guard the defaults.
Agents were silently eating the same workflow defects for months; giving them a one-command way to complain surfaced real bugs no human had noticed. The capture below lists two complaints filed moments earlier in a sandbox, so the real complaint box stays honest.
$ papercuts list | jq '{count: .data.count, items: [.data.items[] | {agent, text, tags, severity, status}]}'
{
"count": 2,
"items": [
{
"agent": "claude-code",
"text": "rg -r is replace, not recursive; output looked real and was entirely fabricated",
"tags": [
"shell"
],
"severity": "major",
"status": "open"
},
{
"agent": "claude-code",
"text": "delegate run-output prints a stale report when the alias moved; had to check 'delegate runs' first",
"tags": [
"delegate"
],
"severity": "minor",
"status": "open"
}
]
}It never kills an agent, no matter how suspicious the process looks; it names them and lets the human decide. Orphaned dev servers and headless browsers get no such courtesy.
$ morning --no-kill --fast
☀️ morning — 2026-07-21T12:35:43
MEMORY free 82% swap 0 MB pressure 1 uptime 2.0d
AGENTS 30 running, 18 suspicious (never auto-killed)
[... 15 more idle delegate worktrees ...]
pid 41604 2.0h 43 MB cpu 0.0% transcript 377.4h ago
work / model ? /Users/treygoff/Code/personal-agent-benchmark
WOULD KILL (2, run without --no-kill):
pid 59155 /Users/treygoff/.agent-browser/browsers/chrome-149.0.7827.115/Google Chrome for Testing.ap
pid 59159 /Users/treygoff/.agent-browser/browsers/chrome-149.0.7827.115/Google Chrome for Testing.ap
HOGS (report-only)
pid 1809 167 MB cpu 97% /opt/homebrew/bin/biome __run_server --watcher-kind=recommended --watc
DOCKER daemon not running
✅ NO RESTART NEEDED
• 18 idle agent session(s) worth a lookTools built for a life, not a pipeline — the D&D table, the replay files, the house that might get built.
A fully offline replay pipeline — Rust parser under a Python analysis layer — that would rather emit a machine-readable diagnostic than silently guess at a corrupted frame. Coaching advice you can audit.
The rest of the shop, one line each. Tools marked experiment are live questions, not finished answers.
Beyond the workshop
Public affairs and governance for Honduras's first ZEDE — the world's most ambitious charter city. First full-time employee; now chief of staff & director of public affairs.
governance · charter cities · economics
Turning institutional experiments into legible, repeatable models other jurisdictions can study, adapt, and adopt — so a good idea doesn't have to be reinvented from scratch each time.
institutional design · policy