Young's Mind
03 Decisions

D1–D5, re-verified one at a time

Young, 2026-10-10: "re-verify D1–D5 individually."

D1–D5, re-verified one at a time

Young, 2026-10-10: "re-verify D1–D5 individually."

Why re-verify. These five decisions were written when nothing existed. Since then: the registry gained three fields (model, billing_instrument, retention), the one-workspace ruling landed, the SDK ruling landed, the stuck number was ruled then corrected, and .solos became the root. A recommendation made against an empty tree is not automatically the same recommendation made against a populated one. Each is checked below against disk, not against the original reasoning.

One thing I found before starting: OPEN-DECISIONS.md's banner records the stuck number as 3600 s. Young corrected it to 300 s in a later message, and mira-opencode-budget-trace.md records that. The banner is stale and it is the authority doc. Flagged for Min at the end.


D1 — Where does the registry live?

Original recommendation: a declarative file, cortex/registry/agents.yaml.

Verified against disk: ✅ the recommendation is holding, and the file is live.

EvidenceState
.solos/cortex/registry/agents.yamlexists, 253 lines, 11 agents, 3 planes
Carries id, name, plane, role, pronouns, host, port, endpoint, capabilities, boundaries✅ every agent
Carries model, billing_instrument, retention✅ added 2026-10-10 — the three fields that did not exist when D1 was written
Any second roster source?none found. No a2a_fleet.py, no fleet.json, no port literal

The registry's own note records why, and it is the V2 defect in one line:

"V2 held the model in the personas, where all 8 agents carried the same PAID model — the cost defect itself."

Verdict: D1's recommendation stands, now with evidence it did not have. The declarative file gained precisely the three fields that make it worth declaring.

Open sub-question D1 left: registry.py already exists (orphaned) — keep, absorb, or delete? No registry.py in .solos/cortex/registry/ — it exists in V2's tree, not V3's. The question is answered by not porting it. Recorded so nobody re-asks.


D2 — Where do tasks live?

Original recommendation: cortex owns the contract (states + wire mapping); a database stays the store.

Verified against disk: ✅ the recommendation stands, and the state vocabulary file it implies does not exist yet.

EvidenceState
cortex/tasks/states.yamlabsent — nothing to verify against
The stuck ruleRULED: 300 s (Young's correction; the authority banner still says 3600 s — stale)
V2's core/queue.pyatomic claim with BEGIN IMMEDIATE, sound machine, separation of duties — the one component that worked

Verdict: stands. Relocating working code to satisfy a diagram is still the wrong trade, and three months of evidence has not changed that.

What D2 needs now, which it did not need when written: a decision on the state vocabulary's two forms. a2a-sdk's TaskState is protobuf — its JSON serialisation is TASK_STATE_CANCELED, and the wire value is canceled. The same state, two strings. states.yaml must record both or Stage 3.1's mapping encodes the wrong one. This was unverifiable when D2 was written, because the SDK was not installed then.


D3 — How is a skill assigned to an agent?

Original recommendation: plane by default, per-agent override.

Verified against disk: ✅ the recommendation stands, and the mechanism now exists where it did not.

EvidenceState
cortex/skills/README.mddeclares "each declares: planes, capabilities"
Skills actually declaredone — onboard-a-new-agent, which declares no planes field
Agents carry plane + capabilities✅ all 11, in the registry
V2's other skill system (config/a2a_skills.json)not ported — V3 has one skill source

Verdict: stands. Plane is the default and it is a one-field decision that cannot drift.

But this re-verification found a real gap: the one skill that exists does not declare its planes. So the filter D3 describes has nothing to filter. The skill I wrote last turn is the proof of the gap — it is plane-blind, which means it would pass every agent's index.

Action, mine: add planes (and capabilities) to cortex/skills/onboard-a-new-agent/SKILL.md. It is my lane and my file, so this is a fix not a report.


D4 — SDK migration: replace or run both?

Original recommendation: both, prove with the Inspector, then migrate.

Verified against disk: ✅ superseded by Young's ruling — the official a2a-sdk 1.2.2. The question is no longer whether to run both; it is settled.

What the re-verification adds: the compat finding that made D4's recommendation attractive is now moot for a different reason — and worth recording so nobody re-uses it:

D4 relied onReality
"the v0.3 compat adapter accepts our exact method names, so running both is safe"Young ruled fresh on v1.0. V3 has no v0.3 peers to be compatible with — the compat bridge would be a second dialect to police for no benefit

Verdict: D4's recommendation was sound and is now unnecessary. Adopt the SDK; leave compat off. The Inspector proof survives as the acceptance test, which is the part worth keeping.

The unverified part D4 always carried: the Inspector has never run here, and opencode.ai/docs/go/ truncation this week showed me how a doc can fail to deliver its own section. Stage 2.4's proof is the first experiment to run, not a step to assume.


D5 — Phase 0 first?

Original recommendation: yes, immediately.

Verified against disk: ✅ stands, and the case is now stronger.

EvidenceState
.solos rootexists, 253-line registry, structure — and 0 .py files
Every stage's proofnone has run
The V2 defect D5 protects againstthe misaddressed A2A peers — still live in Hermes' config (Sol measured all 8 on wrong ports, three rotating)

Verdict: stands, unambiguously. Stage 0 is not just first — it is the only stage whose proof can run before any other stage exists, because it exists to detect the thing every other stage produces. It is the cheapest and it should not slip.


Summary

#DecisionRe-verified verdict
D1Registry = declarative file✅ stands — and gained the 3 fields that justify it
D2Cortex owns the contract✅ stands — plus a new trap found (two strings per state)
D3Plane by default, override✅ stands — but the one existing skill declares no plane. My file, my fix
D4Run both, prove, migrate✅ superseded by the SDK ruling. Compat finding now moot — fresh v1.0, compat off
D5Phase 0 first✅ stands, stronger. Only stage whose proof can run first

Four hold, one superseded, none overturned.


Flagged, not mine to edit

  1. OPEN-DECISIONS.md's banner records the stuck number as 3600 s. Young corrected to 300 s. The authority doc is stale on a ruled value. Min's file — reported.
  2. cortex/tasks/states.yaml still does not exist, so D2's contract has no artefact. Min's lane.
Copyright © 2026