OPEN DECISIONS
Consolidated. This note's findings now live in
../MIN-STUDIES.md§12. The original is kept for its measurements; do not re-derive from it.
Open decisions for Young — ALL CLOSED
✅ D1–D5 are all CLOSED, and so are the four earlier rulings.
Re-verified individually against live state on 2026-10-10. Each was checked against the filesystem, not carried forward from this document.
Full records:
young-rulings-2026-10-10-four.md·young-rulings-2026-10-10-second.md
D1–D5 — status
| # | Decision | Status | Evidence it was re-verified |
|---|---|---|---|
| D1 | The registry is a declarative file | ✅ CLOSED | the tree settled it — cortex/registry/ holds agents.yaml and no registry.py |
| D2 | Cortex owns the contract; a database is the store | ✅ CLOSED | V2's core/queue.py intact at 61,390 bytes — working code, not relocated |
| D3 | Plane by default, per-agent override | ✅ CLOSED | creates Stage 4.1 — the agent record has capabilities but no skills field yet |
| D4 | SDK migration | ✅ CLOSED — superseded | a2a-sdk 1.2.2; Young ruled the official SDK, so there is no hand-rolled server to run alongside |
| D5 | Stage 0/1 first | ✅ CLOSED | .solos has 0 .py files — nothing has started |
Nothing in D1–D5 remains open.
The six still genuinely open — all named, all owned
| # | Item | Owner |
|---|---|---|
| 1 | Where .solos gets pushed — a new GitHub repo, or under the existing one? | Young |
| 2 | The backup cadence, and the acceptable data-loss window | Mira + Young |
| 3 | The retention classifier's home — does this task touch vault content? | Mira + Min |
| 4 | The MCP ruling — keep or defer; the one conflict not resolvable by evidence | Young |
| 5 | spec/ — 18 MB untracked in solos2, one git clean from gone | Young |
| 6 | Does the V3 fleet use V2's ports? | Young |
⚠️ Item 1 carries a caution from the vault's own rule: "a deletion committed here propagates there." The vault's
prodremote points at the production host, which LAB rules put off-limits for Min. So.solos's destination needs a deliberate choice, not a copy of the vault's remote list.
The four earlier rulings (for the record)
| Was open | Ruling |
|---|---|
| Stage 5's owner | Min (build), Sol proves it |
a2a-sdk vs Hermes' plugin | the official a2a-sdk 1.2.2 |
| The stuck number | 300 s |
| GO hard/soft + ordering | SOFT — rolls over to ZEN; per model |
The second set
| Was open | Ruling |
|---|---|
| V3's own repo | yes — the root .solos itself (no solos3) |
| Who owns the V3 build | Min, plus coordination |
| Cost of a stuck task | Mira — Stage 6.7–6.9 |
| A skill curator | Min — Stage 4.8 |
| The gates | a per-model allowance — confirmed |
.solos has no remote | add Git — Stage 9.1 |
D1 — Where does the registry live?
Options
cortex/registry/agents.yaml— a declarative file. The registry is data.- A Python module (
cortex/registry/registry.py) — the registry is code. cortex/personas/AGENT_IDENTITIESabsorbs the role andcortex/registryis retired.
Recommendation: a declarative file. Identity, ports, lanes, skills and tools
are configuration, not logic. A file can be read by anything — Python, a shell
script, the Hermes config generator, a test — without importing the app. V2's
cortex/registry was Python and nothing imported it.
Open question: cortex/registry/registry.py already exists (orphaned). Keep,
absorb, or delete it?
D2 — Where do tasks live?
Options
- Move the whole task store into
cortex/tasks/(V3 owns everything). - Keep a database as the store; cortex owns the contract (vocabulary + wire mapping).
Recommendation: the contract, not the store. V2's core/queue.py is the one
component that works correctly — atomic claim with BEGIN IMMEDIATE, a sound
state machine, separation-of-duties enforcement. Relocating it is a large
refactor of working code to satisfy a diagram. Cortex should own the states and
the mapping; the storage engine is an implementation detail.
D3 — How is a skill assigned to an agent?
Options
- By plane — brain skills to brain agents, heart to heart. Simple.
- By agent — an explicit list per agent. Precise, verbose.
- By capability — a skill declares capabilities; an agent declares capabilities; they match. Flexible, needs both sides maintained.
Recommendation: plane by default, with a per-agent override. Plane covers most cases and cannot drift (it is one field). The override handles the genuine exceptions — only atlas gets fleet-reconcile.
D4 — SDK migration: replace or run both?
Options
- Full replacement — retire the hand-rolled server in one move.
- Run both, prove with the Inspector, then migrate per agent.
Recommendation: both, then migrate. The Inspector should prove the SDK version is more compliant before the fleet depends on it. That converts the migration from a belief into a measurement — and it is exactly the discipline whose absence produced V2's non-spec states.
Sol's finding makes this materially safer than I knew
Verified 2026-10-10 in the SDK's own source: a2a.compat.v0_3.JsonRpc03Adapter
accepts our exact current method names.
src/a2a/compat/v0_3/types.py:1559 method: Literal['message/send'] = 'message/send'
src/a2a/compat/v0_3/types.py:1212 method: Literal['tasks/get'] = 'tasks/get'
src/a2a/compat/v0_3/types.py:1125 method: Literal['tasks/cancel'] = 'tasks/cancel'
src/a2a/compat/v0_3/types.py:979 method: Literal['tasks/resubscribe'] = 'tasks/resubscribe'
So the migration is a compatibility flag, not a rewrite. Nothing that speaks to Heart must change on day one — which removes the main risk of running both.
This strengthens the recommendation: adopt the SDK with v0.3 compat on, prove conformance with the Inspector, then flip to v1.0 method names and re-prove. Two proofs instead of one leap.
D5 — Phase 0 first?
Phase 0 is the registry, and it is independent of the SDK work.
Recommendation: yes, immediately. It is small, it is load-bearing, and it fixes the one defect V3 must not reproduce — V2's misaddressed A2A peers, where three ports formed a rotation and returned success from the wrong agent.
Also worth a ruling
| Question | Why it matters |
|---|---|
Does V3 get its own code repo (solos3)? | V3 has no code yet. solos2 is 735 MB and holds V2's history. |
Is spec/ (18 MB of official A2A repos) copied to V3, or referenced? | It is currently untracked in solos2 — one git clean from gone. |
| Does the V3 fleet run on the same ports as V2? | Same numbers is simpler; different numbers allows both to run side by side during migration. |
| Who owns the V3 build — Sol, or Min? | Sol owns engineering; Min coordinates. This is a full build, not a patch. |
Lanes, and who answers Young
Young, 2026-10-11: "Let set the rules on responsible and respond to my message to avoid clashing between Brain Unit."
The loophole — and how to close it
Young: "Look like the .env on opencode CLI already included on LAB and production. Heart agents just connected and execute on it with their preferred models. This a loophole need to address and how to keep track with spending. Work with Mira on it."

