Young's Mind
03 Decisions

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

#DecisionStatusEvidence it was re-verified
D1The registry is a declarative file✅ CLOSEDthe tree settled it — cortex/registry/ holds agents.yaml and no registry.py
D2Cortex owns the contract; a database is the store✅ CLOSEDV2's core/queue.py intact at 61,390 bytes — working code, not relocated
D3Plane by default, per-agent override✅ CLOSEDcreates Stage 4.1 — the agent record has capabilities but no skills field yet
D4SDK migration✅ CLOSED — supersededa2a-sdk 1.2.2; Young ruled the official SDK, so there is no hand-rolled server to run alongside
D5Stage 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

#ItemOwner
1Where .solos gets pushed — a new GitHub repo, or under the existing one?Young
2The backup cadence, and the acceptable data-loss windowMira + Young
3The retention classifier's home — does this task touch vault content?Mira + Min
4The MCP ruling — keep or defer; the one conflict not resolvable by evidenceYoung
5spec/ — 18 MB untracked in solos2, one git clean from goneYoung
6Does 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 prod remote 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 openRuling
Stage 5's ownerMin (build), Sol proves it
a2a-sdk vs Hermes' pluginthe official a2a-sdk 1.2.2
The stuck number300 s
GO hard/soft + orderingSOFT — rolls over to ZEN; per model

The second set

Was openRuling
V3's own repoyes — the root .solos itself (no solos3)
Who owns the V3 buildMin, plus coordination
Cost of a stuck taskMira — Stage 6.7–6.9
A skill curatorMin — Stage 4.8
The gatesa per-model allowance — confirmed
.solos has no remoteadd 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_IDENTITIES absorbs the role and cortex/registry is 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

QuestionWhy 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.
Copyright © 2026