Put the registry at the center and the coder at the front

99787707aa44 · AtlantisPleb · · parent 029ccafbbc63

Put the registry at the center and the coder at the front

Record the strategy synthesis behind the current push: the plugin
registry as the network, verified usage on a centralized cloud as its
moat, consent tiers as its legitimacy, and the forge as its substrate
(registry-network-strategy). Make the coder and its web cloud
complements first-class, adopting T3 Code's projection kernel and
snapshot-to-live protocol while fixing its best-effort effect plane
with a durable outbox and six distinct acknowledgment milestones
(coder-first-cloud-complements). Cross-link the plugin assessment and
add a resequencing note to the episode triage: the recruitment
station's registry moves to the center; its settlement doctrine stands.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GoYpb8FEmdxVErsv7ABCYi
Co-Authored-By
Claude Fable 5 <noreply@anthropic.com>

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

pushed
by user · WAL seq 294 · 2026-08-24T19:21:24.682706Z

Changed files

  • added docs/2026-08-24-coder-first-cloud-complements.md
  • added docs/2026-08-24-registry-network-strategy.md
  • modified docs/2026-08-24-triage-and-plugin-model-assessment.md
  • modified docs/episode-triage.md

Diff

4 files changed, +591 -1

docs/2026-08-24-coder-first-cloud-complements.md added +254

@@ -0,0 +1,254 @@

1
# Coder first: the terminal agent and its cloud complements
2
3
Date: 2026-08-24
4
5
Status: product assessment
6
7
The go-to-market wedge is coding. This document makes `openagents coder`
8
and its web-based cloud complements — the thread UI, cloud computers, and
9
trace viewing — first-class, and grounds the plan in the teardown corpus,
10
especially T3 Code, whose ambitions are the closest to ours
11
(`openagents/docs/teardowns/2026-07-13-t3-code-teardown.md`, the 2026-07-27
12
projection-consistency architecture doc, the 2026-07-17 full-catalog
13
synthesis, and the 2026-08-23 Entire and coder-TUI docs). It composes with
14
`docs/2026-08-24-registry-network-strategy.md` (why the cloud is central)
15
and `docs/2026-08-24-triage-and-plugin-model-assessment.md` (the plugin
16
mechanism).
17
18
## 1. Summary
19
20
- The market has converged on one supervision shape: engine outside the
21
  renderer, a versioned event seam, worktree-parallel agents, desktop and
22
  mobile continuity, remote steering. The full-catalog synthesis's verdict
23
  stands: that shape is table stakes now, and "OpenAgents wins on the trust
24
  half or not at all."
25
- T3 Code shipped the supervision half — five wrapped harnesses, an
26
  event-sourced projection kernel, a full mobile controller — and left the
27
  authority half unclaimed: no receipts, default-YOLO execution,
28
  environment-local threads that can never move, best-effort effect
29
  delivery that can lose committed work.
30
- OpenAgents' structural position is the unclaimed middle on session
31
  identity: T3 threads are trapped in one environment, Cursor's continuity
32
  is their-cloud-only, Amp's transcripts are cloud-canonical. A
33
  forge-owned thread — durable, addressable at a URL, receipted,
34
  consent-tiered, and exportable operator-blind — is the thing no
35
  competitor is structurally able to copy.
36
- The plan: finish the thread plane with T3's projection protocol and a
37
  durable effect outbox T3 lacks; ship the web thread UI as a viewer
38
  first and a steering surface second; make cloud computers a second
39
  launcher behind the one delegation contract; and render traces from
40
  receipts, never from Git-branch transcripts.
41
42
## 2. The competitive read
43
44
Three sources, three conclusions.
45
46
**T3 Code** (pinned at `pingdotgg/t3code`, ~531k lines TS) is a
47
provider-neutral control plane over other vendors' coding agents: one
48
local server per environment, event-sourced CQRS in SQLite, web, Electron,
49
and Expo clients over one hand-written RPC contract. What it proves: the
50
demand for one durable server-owned model consumed by every client, a
51
worktree-parallel default, and a phone that is a full controller (files,
52
diffs, Git, PTY, approvals, durable outbox) rather than a status app. What
53
it refuses to build: any authority story. `DEFAULT_RUNTIME_MODE =
54
"full-access"` maps to approval policy `never`; there are no execution or
55
delivery receipts; its "cloud" deliberately cannot execute or store
56
content — identity, reachability, and push only; and threads bind to one
57
environment forever.
58
59
**Cursor** validated the market for most of the 2025 demand list and then
60
demonstrated the trust failures to position against: two pricing crises
61
(usage truth invisible before the bill), an undisclosed base-model
62
substitution users treated as a broken contract, defaults that evangelize,
63
and continuity that only works through their cloud. The teardown's
64
sequencing lesson: mobile and continuity turned out to be the
65
differentiating floor, not the marketplace.
66
67
**Entire** proves demand for "why does this commit exist" trace viewing —
68
and proves the storage anti-pattern. It writes agent transcripts to shadow
69
Git branches, default-public on GitHub. Harvest the join shape (a commit
70
trailer linking SHA to evidence), reject the store: transcripts belong in
71
the database under visibility policy, and the forge WAL already carries
72
push receipts.
73
74
## 3. The thread plane: adopt T3's kernel, fix its weak half
75
76
The Phoenix server already owns the right objects: `threads`,
77
append-only `thread_events`, grants fenced by generation, THREAD-001. The
78
T3 projection doc supplies the protocol to finish the plane, and its own
79
failure analysis supplies the half to do differently.
80
81
**Adopt (T3's strong half):**
82
83
1. **One forge-owned model for every surface.** The doc's summary of its
84
   own strongest idea — "one environment-owned model for every client" —
85
   restated for us: CLI, web, and later mobile all consume the same thread
86
   projections. No second transcript store anywhere.
87
2. **The snapshot-to-live handoff.** Attach the live subscriber before
88
   reading the snapshot; read the snapshot and its sequence in one
89
   transaction; deliver snapshot, then buffered events, then an explicit
90
   synchronized marker, then live. Resume with `afterSequence`; overlap is
91
   resolved by monotonic-sequence dedup — possible duplication instead of
92
   possible loss. The thread events cursor that already shipped is the
93
   seed of this; the completion marker and the same-transaction snapshot
94
   are the parts to add.
95
3. **Shell/detail projection split.** Sidebar rows (status, latest turn,
96
   pending-approval count) as a denormalized shell projection so list
97
   surfaces never load transcripts; token streams must not starve shell
98
   updates.
99
4. **Durable admission with fingerprinted receipts.** Client-minted
100
   command ids recorded before execution make retries and offline outboxes
101
   honest — with the fix T3 skipped: a payload fingerprint, so a reused id
102
   with different content is rejected instead of silently answered with
103
   the first result.
104
5. **Steer, queue, and interrupt as three explicit verbs**, on the wire
105
   and in the composer. T3's implicit-steer keyboard seam is the named
106
   failure; Amp's gesture set and Codex's compare-and-set steer are the
107
   references.
108
6. **Client data states.** Connection health and data health are different
109
   things: `empty / cached / synchronizing / live`, cached state rendered
110
   during reconnect, session generations fencing stale sockets.
111
112
**Fix (T3's weak half):** provider effects in T3 ride a hot in-memory bus
113
with no durable cursor — a crash between "turn requested" committed and
114
the provider firing strands the turn forever; the teardown's verdict is
115
"best-effort live reactor system." The prescription, which Postgres and
116
OTP make natural for us: a **durable effect outbox committed in the same
117
transaction as the intent event** (effect id, source sequence, payload
118
digest, attempts, lease, status), leased workers with deterministic
119
idempotency keys, durable per-reactor cursors, and event schema versions
120
with upcasters instead of in-place event mutation. And the doc's deepest
121
rule, which maps directly onto receipts vocabulary: one sequence number
122
must never conflate the six milestones — command admitted, event
123
committed, effect claimed, effect completed, turn quiesced, work verified.
124
A `thread_events` sequence is a transcript position, not an execution
125
claim and not a completion claim.
126
127
## 4. The web complements, first-class
128
129
### 4.1 Thread UI
130
131
Every thread gets a URL on openagents.com, viewable live: transcript,
132
reasoning, tool calls, fleet state, budget. Read-only viewing ships first
133
— it exercises the whole projection protocol with no authority questions —
134
then steering (send, steer, queue, interrupt), then approvals from the
135
web with the same typed decision objects the CLI uses. The attention inbox
136
(what needs a human: approvals, questions, finished work) is the second
137
screen. Notifications are never completion authority.
138
139
This is the surface T3 cannot ship without ceasing to be local-only and
140
Cursor cannot ship without opening their cloud: a durable thread you can
141
open from any device *because the forge owns it*, under consent tiers
142
*because visibility policy already exists*, and exportable *because the
143
operator-blind export already ships*.
144
145
### 4.2 Trace viewing as the trust surface
146
147
The trace viewer renders receipts, not Git transcripts. Three joins make
148
it work: thread → issue (#10's linkage), commit → thread (an
149
`OpenAgents-Thread:` commit trailer, harvesting Entire's join shape onto
150
forge push receipts, so any SHA resolves to its evidence in one lookup),
151
and thread → plugin runs (digest-carrying `tool.ran` events feeding the
152
registry's usage counters). Public visibility follows the artifact's
153
transparency tier; the changelog's words-plus-receipts pattern extends to
154
threads. This is also where the usage-truth lesson from Cursor lands as
155
product: requested versus effective model rendered on every turn — #160
156
(silent model substitution) is not a bug fix, it is the trust surface's
157
first brick.
158
159
### 4.3 Cloud computers
160
161
A cloud computer is a second launcher behind the same delegation contract,
162
never a second work record. The coder TUI port plan's sequencing holds:
163
task registry, then fleet rendering, then tool renderers, with local
164
children first (they need no server change) and the sandbox-computer
165
launcher as the final slice, quota-accounted (the 275 broker shape:
166
leases, budgets, checkpoints, recoverable commands). The T3 projection
167
doc's cloud chapter names the two authority modes to keep distinct:
168
**owner-hosted** (the cloud stores links, grants, and awareness only —
169
T3 Connect's honest shape) and **managed cloud environment** (the cloud
170
is the environment authority owning the event log, receipts, and
171
workspace leases — what T3 never built and our cloud-computer lane is).
172
Workspace provisioning is fenced durable states, not a script.
173
174
The open architecture question the port plan already names must be
175
answered on the server, not worked around in the CLI: N delegated
176
children cannot share the account's single chat turn (TURN-001). The
177
durable answer is the nested-thread ledger — spawn, resume, cancel,
178
complete as thread-plane operations — which also gives delegation
179
receipts their home.
180
181
### 4.4 Onboarding and import
182
183
`npx` is the front door standard (T3's bar), and meeting users inside
184
their existing tool history is the import lane (Cursor's compiled-in
185
Claude Code import). For us that is #198 — foreign session resume — with
186
grok-build's caution made law: an import is a typed adapter with a source
187
digest and a loss report, never a skill prompt masquerading as lossless
188
resume, and it never activates foreign credentials or authority. As a
189
plugin, it is also the first proof of the registry.
190
191
## 5. Trust posture: the differentiators to ship early
192
193
From the synthesis's refusal list and Cursor's trust drops, the ones that
194
are cheap now and expensive to retrofit:
195
196
1. **Usage and model truth** on every surface: requested versus effective
197
   model, spend against grant ceilings, no silent substitution (#160).
198
2. **Fail-closed approvals** with typed decisions; no `/bypass/i`
199
   options; plugin capability declarations enforced by the sandbox
200
   (`docs/2026-08-24-triage-and-plugin-model-assessment.md` section 4.4).
201
3. **Receipts where competitors have none**: turn receipts, push
202
   receipts, plugin invocation receipts, and — once the outbox exists —
203
   effect receipts distinct from transcript events.
204
4. **Portable, exportable threads**: the forge owns the canonical copy,
205
   the owner can always take it out, and visibility is a dial, not a
206
   default.
207
5. **Signed releases with a public trust ledger** — four torn-down
208
   products ship broken signing; the forge's WAL anchoring work (#151) is
209
   the same instinct applied to ourselves.
210
6. **Subagent topology rendered, not hidden** — the synthesis calls the
211
   full agent tree "the cheapest large differentiator in the catalog";
212
   the coder's task registry and the web fleet view are the two renderers
213
   over one canonical graph.
214
215
## 6. Sequence
216
217
Ordered, composing with the strategy doc's priorities (its items 1–2
218
are this list's items 1 and 3):
219
220
1. **Thread persistence and resume in the CLI** — the client writes
221
   `turn.user`, `turn.reasoning`, `tool.ran`, `turn.assistant`; `--resume`
222
   replays through the cursor. (Unblock monorepo #19 first.)
223
2. **Web thread viewer** — read-only thread pages over the same
224
   projections, with the snapshot-to-live protocol and shell/detail
225
   split. Fixes #164's class of gap (reasoning and tools visible) on the
226
   web at the same time.
227
3. **Plugin contract v1 and pilot** — per the plugin assessment; runs
228
   land as receipted thread events feeding the trace viewer and registry.
229
4. **Durable effect outbox and the six milestones** — the thread plane's
230
   execution half, prerequisite for honest delegation receipts.
231
5. **Web steering and approvals** — the composer verbs (send, steer,
232
   queue, interrupt) and approval decisions from the browser.
233
6. **Nested-thread ledger** — server-side spawn/resume/cancel/complete;
234
   delegation receipts become real.
235
7. **Cloud computer launcher** — the port plan's final slice behind the
236
   delegation contract, quota-brokered, with the owner-hosted versus
237
   managed-environment authority split explicit.
238
8. **Trace viewer and commit-trailer join** — receipts rendered publicly
239
   under tiers; any SHA resolves to its thread.
240
9. **Mobile controller** — last, on the same projections and outbox
241
   pattern; T3's mobile teardown is the reference for breadth, our
242
   authority model for the difference.
243
244
## 7. Relation to other documents
245
246
- `docs/2026-08-24-registry-network-strategy.md` — why the centralized
247
  cloud and the registry are the strategic center this product plan feeds.
248
- `docs/2026-08-24-triage-and-plugin-model-assessment.md` — the plugin
249
  mechanism, the owned WASM host, and the 2026-08-24 backlog triage.
250
- `docs/2026-08-23-openagents-coder-cli-spec.md` and
251
  `docs/2026-08-24-coder-account-integration-audit.md` — the coder's
252
  architecture and the account-integration gaps this plan sequences.
253
- `openagents/docs/teardowns/2026-08-23-openagents-coder-tui-agent-fleet-port-plan.md`
254
  — the CLI-side fleet plan this document adopts and extends server-side.
docs/2026-08-24-registry-network-strategy.md added +323

@@ -0,0 +1,323 @@

1
# The registry is the network
2
3
Date: 2026-08-24
4
5
Status: strategy synthesis
6
7
This document records the strategic synthesis behind the current push: a
8
centralized cloud whose network effect comes from consensually collected
9
usage data feeding a central plugin registry that grows and evolves on that
10
data — with the coder as the wedge, the forge as the substrate, and WASM
11
plugins as the unit of accumulated capability. It extends
12
`docs/2026-08-24-triage-and-plugin-model-assessment.md` (the mechanism) with
13
the strategy that motivates it, and it resequences one conclusion of
14
`docs/episode-triage.md` (section 12). Sources: the full episode triage,
15
the 2024 plugin-economy arc (episodes 048–102, 165), the last-mover thesis
16
(episode 269), the Pylon history and its surviving code, the Omega-era
17
plugin tool specification
18
(`openagents/docs/omega-agent/2026-07-27-plugin-tool-spec.md`), and the
19
economics analysis in
20
`openagents/docs/fable/2026-07-19-some-simple-economics-of-agi-deepdive.md`.
21
22
## 1. Summary
23
24
- Every failed OpenAgents market broke one leg of the same three-legged
25
  stool: a named buyer, verifiable usage, and settlement. The centralized
26
  cloud supplies the two legs the 2024 Agent Store lacked — verifiable usage
27
  and a real buyer — and the coder is that buyer.
28
- The moat variable is verified network scale: usage counters that are
29
  receipts, not claims. Only a center of ground truth produces that.
30
- The Codifier's Curse gives the recruiting pitch: expertise is being
31
  codified into someone's training data regardless; the registry is the
32
  attribution ledger that makes codification pay its author instead.
33
- The registry needs no new service. A plugin is a forge repository with a
34
  typed manifest and a digest-pinned release. The forge already provides
35
  identity, versions, receipts, issues, and — later — bounty rails.
36
- One plugin contract serves three hosts (TypeScript CLI, BEAM server, Rust
37
  substrate), on an owned, reduced-surface WASM host rather than a
38
  dependency on any third-party plugin framework.
39
- One npm install carries the whole loop: spend (coder), contribute
40
  (plugins), and eventually earn (wallet plus provider mode, rebuilt from
41
  the surviving Pylon code under the pay-for-verified-work laws).
42
- Payments stay deferred, with one deliberate exception: a single
43
  end-to-end bounty settlement proof, run once before any royalty plumbing.
44
45
## 2. What the failed markets settled
46
47
Read across episodes 199–275, each dead market isolates one missing leg:
48
49
| Attempt | What it had | What killed it |
50
| --- | --- | --- |
51
| GPutopia (2023) | Sellers | No buyer |
52
| Pay-for-online mining | Payment | No verification; gamed within days, retired in episode 224 |
53
| 2024 Agent Store (episodes 048–102) | Supply, payouts, 20 paid developers | No demand: "we didn't really have the use case for which people were willing to actually pay" (episode 165) |
54
| tbDEX | Protocol | No runnable operator software |
55
56
The standing laws distilled from these (all already on the record in
57
`docs/episode-triage.md`): name the buyer first; rewards follow verified
58
work, never presence or volume; authority stays inspectable and exit stays
59
possible.
60
61
A registry that "grows and evolves on shared data" is a market, and it needs
62
all three legs. That is the argument for the center.
63
64
## 3. Verified thickness: why the cloud is the moat
65
66
The economics analysis identifies the durable platform variable as
67
**verified network scale** — the share of activity credibly authenticated as
68
real, times raw scale. "Apparent thickness can often be generated with
69
compute, but verified thickness cannot."
70
71
A decentralized registry of signed listings — the shape proposed in episode
72
066 — produces raw scale: anyone can list. It produces nothing on the
73
verified share, because no one can observe usage. A centralized cloud where
74
every plugin run lands as a `tool.ran` event on a durable thread transcript,
75
carrying the plugin's digest, makes every usage counter a receipt. The
76
registry's data advantage is not "the most plugins." It is "usage numbers
77
that are true," in an ecosystem where everyone else's are unverifiable.
78
79
This is also why the coder's thread persistence work is not just UX: the
80
thread transcript is the unit of consensual data collection. Nothing
81
accrues until the CLI writes its transcript to the server
82
(`docs/2026-08-24-coder-account-integration-audit.md` already decided the
83
server copy is the only copy).
84
85
## 4. The Codifier's Curse and the attribution ledger
86
87
The same economics paper names the dynamic that supplies the registry's
88
recruiting pitch. Every act of expert work with an AI system codifies that
89
expert's tacit knowledge into someone's training data, and withholding is
90
irrational — codification is a global prisoner's dilemma that proceeds with
91
or without the expert's consent.
92
93
Episode 269 found the answer before the paper named the problem: "solve a
94
painful problem once ($30 of compute and an hour), package it as a plugin
95
all future agents reuse, get paid when paid workflows route through it."
96
97
Stated as a pitch: your expertise is being codified either way — into a
98
frontier lab's weights as anonymous gradient dust, or into a digest-pinned
99
plugin with your name on it and a royalty hook. The registry is the
100
**attribution ledger** that turns the curse into the dividend economy
101
episodes 200 and 223 promised (skill royalties, data royalties, compute
102
dividends). Attribution accrues now, from the first recorded run;
103
settlement over that record resumes later without a schema change.
104
105
## 5. Consent is applied policy, not a new build
106
107
"Consensually collected" does not require new machinery. The pieces exist:
108
109
- **Transparency tiers** (episode 272): Dark, Pulse, Ledger, Glass —
110
  designed as a per-artifact visibility dial.
111
- **Opt-in trace licensing**: the triage's own simplification of episode
112
  245's trace economy ("simplify to opt-in trace licensing tied to
113
  visibility policy before any royalty plumbing exists").
114
- **Operator-blind export**: `GET /data/export/account?recipient=age1…`
115
  ships (#178), proving the exit half of the consent story.
116
117
The work is applying the existing tier model to two new artifact classes —
118
thread transcripts and plugin usage — and building the opt-in gate before
119
the collection volume, not after. Consent-first is what makes the
120
centralized cloud defensible rather than extractive; it is the difference
121
between the registry and the curse.
122
123
## 6. How the registry evolves: three loops
124
125
"Grows and evolves based on shared data" means three concrete feedback
126
loops, in order of arrival:
127
128
1. **Selection loop.** Usage receipts plus outcome signals tune which
129
   plugin the capability selector surfaces for which request. Optimization
130
   is bounded and offline in the DSE/GEPA style, under the standing law:
131
   an optimizer output is a candidate, never a deployment.
132
2. **Gap loop** — the network-effect engine. A capability search that finds
133
   nothing is a demand signal. File it as a scoped forge issue
134
   automatically; price it as a bounty when settlement resumes; a
135
   contributor — human or agent — builds the plugin; the registry grows
136
   exactly where demand proved out. This is episode 211's
137
   record-feature-request tool generalized from features to capabilities,
138
   and it is only possible when search, issues, bounties, and the registry
139
   share one database.
140
3. **Promotion loop.** The long ladder: plugin → model-directed plugin use →
141
   distilled specialization. Aggregate invocation traces are the training
142
   data for eventually moving popular plugin-orchestration patterns into
143
   model behavior. Only a centralized trace corpus makes that trainable.
144
145
## 7. Why the forge is load-bearing
146
147
1. **The forge supplies the buyer the 2024 store never had.** The coder
148
   works against forge issues; repository → issues → code → plugin is one
149
   graph in one authority domain. Coding is the proven
150
   willingness-to-pay category — episode 165's own retrospective says it is
151
   why OpenAgents went to coding agents.
152
2. **Plugins are forge repositories.** A plugin is a repo with a manifest
153
   and a digest-pinned release artifact. The forge already gives identity,
154
   versioning, history, WAL-anchored receipts, issues, and later bounty
155
   rails, per repository, for free. The registry is a typed index over
156
   forge releases plus semantic search in the CLI — not a new backend.
157
3. **GitHub parity is the consensual data on-ramp.** One-command import
158
   brings the code and the issue graph to the center with the user's
159
   intent, not by scraping. `gh` and octokit compatibility means existing
160
   agents already know how to operate the surface.
161
4. **Receipts land where the work happens.** The triage's clearing-house
162
   thesis states it: the forge wins "because it is where all five clauses
163
   can share one database, one audit trail, and one public API."
164
5. **Exit legitimizes the center.** AGPL, mirrors, encrypted exports, the
165
   exit rehearsals. The episode 230 ideal — no single front door — survives
166
   as a later federation option on the relay/provider-daemon/skeptical-client
167
   market shape, once there is verified thickness worth federating. The
168
   center wins by being better, not by locking.
169
170
## 8. One plugin contract, three hosts
171
172
The plugin contract adopted in
173
`docs/2026-08-24-triage-and-plugin-model-assessment.md` is the same
174
contract the Omega plugin tool specification distilled from the 2024
175
economy, and it holds across every host:
176
177
- The model owns decision logic: which plugin, which export, what
178
  arguments, when to retry, when to stop.
179
- The runtime owns the execution contract: loading, digest verification,
180
  capability mediation, time and memory ceilings, cancellation, receipts,
181
  typed refusals.
182
- The plugin owns the black-box capability implementation, behind typed
183
  input and output schemas.
184
- Identity is content-addressed: plugin id, version, artifact digest,
185
  export, ABI version. No invocation is attributable without them.
186
- Discovery may be semantic; invocation is an exact name from the
187
  installed catalog. A plugin result is evidence, never write authority.
188
189
The payoff of one contract: **one artifact, three hosts.** The TypeScript
190
CLI (the coder), the BEAM server (server-side execution for chat), and the
191
Rust substrate all speak the same packet ABI against the same digest-pinned
192
artifact. The registry serves all three.
193
194
### Own the host
195
196
Extism — the runtime the 2024 economy ran on — is no longer a dependency to
197
build on; the direction is an owned, reduced-surface host, adapting Extism
198
source where useful (BSD-3-Clause permits it with attribution). The reduced
199
surface:
200
201
- One ABI: `handle_packet(bytes) -> bytes | typed refusal`, schema ids
202
  layered above, versioned (`packet.v1`).
203
- One guest path: an owned Rust PDK. Other guest languages only if demand
204
  appears.
205
- Host imports, total: log, allowlisted HTTP, KV get/put, read-only path
206
  mounts. Nothing else.
207
- Three thin hosts: Node (plain `WebAssembly` API plus owned shims),
208
  Elixir (a small wasmtime NIF), Rust (wasmtime directly), behind a
209
  host-owned engine abstraction so no engine is load-bearing forever.
210
- Enforcement: digest verification before load, timeout/memory/fuel
211
  ceilings, typed refusals, a receipt per invocation.
212
213
The contract is the owned thing; engines stay swappable.
214
215
## 9. One install, the whole loop
216
217
The target: `npm i -g @openagentsinc/cli` delivers spend, contribute, and
218
earn through one identity.
219
220
- **Spend**: the coder — clone, traverse, turn intent into issues, code,
221
  use plugins — against forge threads and receipts.
222
- **Contribute**: build and publish plugins as forge repositories; the gap
223
  loop hands contributors pre-validated demand.
224
- **Earn**: a wallet and, later, provider mode — the machine serves
225
  verified work while its owner is away, and gets paid.
226
227
The earn half is proven code, not a dream. The Pylon arc (episodes
228
201–224, 236–238, 244–245) shipped and validated, at 1,300+ nodes and over
229
1M sats paid:
230
231
- A presence/capacity service that already encodes the
232
  capacity-as-quantity lesson (advertise amounts, not existence).
233
- A complete claim → lease → submit-trace → validate → settle loop, with
234
  the right doctrine attached: a lease is not an earning claim; only a
235
  settlement receipt is.
236
- One-seed identity: BIP-39 → Nostr keypair plus deterministic wallet,
237
  confirm-before-spend.
238
- A multi-earning ledger (modeled/observed/pending/paid/settled), inert by
239
  default.
240
- A local serving runtime (Apple Foundation Models bridge,
241
  OpenAI-compatible client, digest-verified model installer).
242
- The distribution pattern itself: paste-into-your-agent enrollment.
243
244
Constraints any revival inherits from the do-not-build register: never
245
presence-based rewards; no hosted custody; no NIP-90/DVM revival — an open
246
market transport, when it comes, uses the relay/provider-daemon/
247
skeptical-client shape; buyer first. The first buyer for idle machines is
248
OpenAgents' own operation: delegation children from other users' coders,
249
validator-replay jobs (verification is ideal away-from-keyboard work), and
250
the registry's own service jobs — embedding manifests for semantic search,
251
replaying plugin receipts, running conformance and eval suites. The
252
registry creates the compute demand that pays the machines that verify the
253
registry.
254
255
One open decision to make explicitly rather than inherit: the wallet rail.
256
Episode 235 retired hosted custody for the self-custodial stack, while the
257
shipped Pylon v1.0 made the deterministic Spark wallet primary and a later
258
owner decision preserved it as a live rail. The keeper either way is the
259
one-seed derivation; the rail needs a named decision.
260
261
## 10. What is newly possible now that was not in 2024
262
263
1. **Demand exists.** The coder is buyer number one; coding agents are the
264
   proven willingness-to-pay category.
265
2. **Ground truth exists.** Threads, receipts, the forge WAL — usage is
266
   observable server-side, so the verified share is real.
267
3. **Consent machinery exists.** Tiers, licensing framing, operator-blind
268
   exports.
269
4. **Settlement exists, dormant.** Self-custodial wallets, the treasury,
270
   tips proven end to end (episode 235). The plumbing survives; only the
271
   policy is paused.
272
5. **Distribution collapsed to one command.** 2024 needed a web platform;
273
   2026 rides npm plus paste-into-your-agent.
274
6. **The window is open.** Episode 269's reading strengthens monthly:
275
   models, harnesses, and chat surfaces commoditize; nobody has a network.
276
   A verified capability registry is a network, and the last-mover position
277
   only works if the ledger is accruing while everyone else fights over
278
   harness features.
279
280
## 11. Priorities
281
282
In order:
283
284
1. **Thread persistence and resume** (in flight). The transcript is the
285
   data substrate; nothing accrues until the CLI writes it. Monorepo #19
286
   (the failed-closed release gate) blocks everything here and goes first.
287
2. **Plugin contract v1, owned host, pilot.** The packet-ABI contract, the
288
   reduced Extism-derived host, and foreign session resume (#198) as the
289
   first real plugin.
290
3. **Consent and usage receipts before scale.** Plugin runs as
291
   digest-carrying thread events; transparency tiers applied to threads
292
   and usage; sharing opt-in.
293
4. **Registry on the forge.** Plugins as repositories, digest-pinned
294
   releases, a typed index, semantic capability search in the CLI, and the
295
   gap loop: failed searches file issues.
296
5. **One settlement proof.** One bounty-labeled issue, priced in sats,
297
   claimed, verified, paid end to end — once. This deliberately reopens a
298
   sliver of the economy lane closed in the 2026-08-24 triage, as a proof,
299
   not a program.
300
6. **Wallet and identity in the CLI.** One seed → identity plus wallet;
301
   rail decision made explicitly; receiving before spending.
302
7. **Provider mode.** Port the Pylon presence and claim/validate/settle
303
   loop into the CLI; OpenAgents fleet as first buyer; verification jobs
304
   first, inference second; pay-for-verified-work only.
305
8. **Selection-policy evolution.** Tune capability search from usage data
306
   once volume exists — candidates, never auto-promotions.
307
308
Deferred on purpose: open federation of the registry, third-party royalty
309
programs at scale, and anything shaped like five markets on a weekly
310
cadence.
311
312
## 12. Resequencing note against the episode triage
313
314
`docs/episode-triage.md` contains every piece of this synthesis — the six
315
stations, the episode 269 dust-off, the do-not-build register — but files
316
the skill/plugin registry as the furthest-out station ("recruitment"),
317
gated behind everything else. This document moves it to the center: the
318
registry is the thing the coder, the forge, the consent machinery, and
319
eventual settlement all feed, and its non-monetary half (attribution,
320
usage receipts, the gap loop) starts accruing value now. The stations
321
stand; the sequencing changes. The triage's settlement doctrine — royalties
322
only after settlement works once at bounty scale — is preserved as
323
priority 5 above.
docs/2026-08-24-triage-and-plugin-model-assessment.md modified +5 -1

@@ -2,7 +2,11 @@

2 2
3 3
Date: 2026-08-24
4 4
5
Status: initial assessment
5
Status: initial assessment. The strategy that motivates the plugin model —
6
the registry as the network, the centralized cloud as its verification
7
substrate, and the coder as the wedge — is recorded separately in
8
`docs/2026-08-24-registry-network-strategy.md`, which also resequences the
9
priorities in section 6 of this document.
6 10
7 11
This document records two things done together on 2026-08-24: a triage pass
8 12
over every open issue in `OpenAgentsInc/openagents.com` and
docs/episode-triage.md modified +9

@@ -1487,6 +1487,15 @@ issue priced in sats, claimed, completed, verified, and paid from the

1487 1487
treasury — end to end, once — then the loop becomes policy instead of
1488 1488
stunt.
1489 1489
1490
> **Resequencing note (2026-08-24).** The recruitment station below files
1491
> the plugin/skill registry as the furthest-out surface, gated behind the
1492
> others. `2026-08-24-registry-network-strategy.md` moves it to the
1493
> center: its non-monetary half (typed manifests, digest-pinned versions,
1494
> usage receipts on thread transcripts, capability-gap issue filing)
1495
> starts now and feeds the coder, the forge, and consent work directly.
1496
> The settlement doctrine below — royalties only after one bounty settles
1497
> end to end — is unchanged.
1498
1490 1499
**Recruitment station: the flywheel surface.** Verified outcomes recruit both
1491 1500
humans and agents when they are visible and portable: public traces under the
1492 1501
visibility policy, licensable later (228, 215); the leaderboard (260, 270);

This page updates live while a promote is in flight · changelog