Operator direction on 2026-05-23: Discussion #11792 needs graduation and a new epic during nightshift, with GPT holding /lead-role and Claude holding /peer-role while the swarm keeps v13 pressure high.
gh api repos/neomjs/neo/discussions/11792 returned the body and comments at updated_at: 2026-05-22T22:48:37Z.
At filing time, the body still said Status: [OQ_RESOLUTION_PENDING], so this ticket was filed under the ticket-create §1c substantive-rationale exception rather than pretending the Discussion body had already completed the formal graduation path. Follow-up cleanup later updated #11792 to [GRADUATED_TO_TICKET: #11812] and closed it as RESOLVED at 2026-05-23T01:42:35Z.
resources/content/issues sweep for Claude sibling, instance-addressable, provider-capacity, Desktop-grade, Fast Mode, and wake routing found no equivalent issue.
KB duplicate sweep for Discussion 11792 peer review process graduation epic duplicate ticket did not identify an equivalent ticket.
Open issue backlog check showed no duplicate; adjacent but distinct issues are #11797 (orchestrator wake delivery validation), #11803 (Tier-2 revalidation trigger), #11807 (Codex hooks feature-flag migration guard), and #11811 (KbAlertingService sender identity normalization).
The Problem
Neo's A2A identities are graph principals, but Shape C wake routing still addresses coarse harness targets such as appName: "Claude". That is adequate while one app name maps to one active maintainer harness. It breaks down when the operator can run multiple Claude Desktop profiles on the same macOS account, because app activation no longer identifies the intended A2A principal.
The throughput motivation is also not self-proving. A second Claude identity only helps if it has independent usable Anthropic capacity, or at least improves usable turn cadence under the operator's real Neo workload. If the bottleneck is a shared tier/provider queue, two same-family identities can add coordination overhead without increasing throughput.
This epic captures that ordering: measure the provider-capacity premise first, then build Desktop-grade instance routing only if the measurement justifies it.
The Architectural Reality
Known substrate touchpoints from Discussion #11792 and live source references:
WakeSubscriptionService validates harness target metadata and currently treats appName as the GUI wake address. Same-bundle Desktop siblings need a more specific address than Claude.
bridge-daemon dispatches GUI wakes through the osascript adapter and app activation, so a second same-bundle Claude instance introduces wrong-target risk.
AgentIdentity / Memory Core continuity are first-class graph concerns. A sibling maintainer identity must have its own GitHub account, A2A mailbox identity, Memory Core provenance, and session summary trail if it is meant to become a durable generalist maintainer rather than a disposable worker process.
Governance remains family-keyed. A second Claude identity is modelFamily: claude; it can provide same-family pressure and throughput, but it does not satisfy cross-family PR approval for Claude-authored work.
Substantive-Rationale Exception
This ticket was intentionally filed before #11792's body had been mechanically rewritten to [GRADUATED_TO_TICKET] because the operator explicitly requested graduation/new-epic handling in this nightshift turn and the design had enough converged shape to preserve as a gated epic. The #11792 body cleanup and closeDiscussion(reason: RESOLVED) step completed afterward at 2026-05-23T01:42:35Z.
The exception is bounded by three constraints:
The epic must not treat terminal/tmux measurement as product completion.
The epic must not implement Desktop-routing substrate before the provider-capacity kill-switch passes.
The Discussion body cleanup was required before treating the graduation as formally closed; this is now completed for #11792 with [GRADUATED_TO_TICKET: #11812], final Signal Ledger wording, and RESOLVED closure.
Inline Divergence Matrix
Option
When right
Evidence / falsifier
Disposition
Residual risk
Terminal/tmux Claude Code sibling
Cheapest OQ8 provider-capacity instrument or emergency fallback
Existing tmuxSession wake route exists; operator rejected terminal as product-shaped MVP
Use only as measurement/control; explicitly non-goal product harness
False completion if measurement pass is mistaken for Desktop-routing completion
Desktop-grade instance-addressable Claude routing
OQ8 passes and operator needs two GUI Claude maintainers with stable identity-specific wakes
Current appName: Claude route is ambiguous for same-bundle profiles
Recommended implementation center after OQ8 passes
macOS/Electron targeting brittleness; wrong-instance wake risk
Second physical Mac thin harness
Same-machine Desktop targeting is too brittle but separate OS-level state is useful
Separate OS app state avoids same-bundle ambiguity
Fallback after local Desktop routing falsifies
LAN auth/wake routing and repo sync complexity
Full cloud Agent OS deployment
Client/team deployments need remote shared graph and auth posture
Broader cloud deployment docs exist, but scope is larger than local Claude throughput
Out of scope for this local throughput epic
Still needed elsewhere; avoid blocking cloud work on local workaround
Role-specialized Claude worker
Neo intentionally pivots to specialized worker identities
Conflicts with Flat Peer-Team maintainer identity model and operator identity principle
Rejected; sibling starts as generalist maintainer
Future role-specialized agents require separate discussion
The Fix
Decompose this epic into measurement-first and implementation-second phases:
Provider-capacity measurement: verify whether a separate Claude account/seat produces independent usable capacity under comparable Neo workloads, with Fast Mode treated as a controlled variable.
Identity contract: define the @neo-opus-grace AgentIdentity shape, GitHub/A2A identity requirements, Memory Core continuity scope, and family-keyed review semantics.
Desktop routing design: choose the least brittle instance-addressable wake primitive for Claude Desktop (userDataDir, PID/window selector, app bundle clone identity, per-instance bridge/webhook, or another falsified option).
Wake substrate implementation: update validation/routing to carry a specific instance address and fail closed when the target identity cannot be proven.
Telemetry and post-merge validation: prove wrong-instance delivery is prevented and that usable turn cadence improves enough to justify the added substrate.
Durable generalist maintainer identity with modelFamily: claude
Do not create sibling identity if OQ8 fails
Agent OS / swarm identity docs if implementation lands
Identity node + mailbox read/write proof
Wake subscription metadata
WakeSubscriptionService
Address GUI wake target by instance, not only app name
Existing appName route for single-instance harnesses
Wake subscription docs / skill notes
Validation tests and live wake probe
GUI dispatch
bridge-daemon osascript adapter or replacement primitive
Route wake to the intended Claude Desktop profile
tmuxSession control route for measurement only
Bridge daemon operational docs
Wrong-target negative test + controlled delivery proof
Review semantics
PR workflow / consensus mandate
Same-family sibling does not satisfy cross-family approval
Existing two-family floor remains
PR workflow if touched
PR review gate check with 3 identities / 2 families
Memory continuity
Memory Core sharing/provenance model
Chosen private/team sharing scope documented and enforced
Shared read, separate provenance if needed
Memory Core docs if touched
Session summary and memory provenance proof
Decision Record Impact
No accepted ADR is amended by filing this epic. The work is aligned with AGENTS.md §swarm_topology_anchor, the active Ideation Sandbox consensus substrate, and the #11796 family-keyed quorum direction. If implementation introduces a durable new wake-routing primitive, the implementation PR should re-check whether an ADR or Agent OS decision note is warranted.
gemini (@neo-gemini-pro) — no active signal while participationStatus is operator_benched; see Unresolved Liveness and AC13.
Unresolved Dissent
None currently unresolved. Claude's substantive objections were provider-capacity verification, terminal false-completion risk, OQ5 governance wiring, and Memory Core identity scope; this epic carries all four as gates.
Unresolved Liveness
gemini (@neo-gemini-pro): no #11792 signal while participationStatus is operator_benched since 2026-05-18T00:00:00.000Z per ai/graph/identityRoots.mjs. No-signal is archived as liveness gap, not consent. When Gemini reactivates, AC13 routes this epic through the Tier-2 Revalidation Sweep for retroactive signal review.
#11792 formal cleanup is complete: the Discussion body carries [GRADUATED_TO_TICKET: #11812] and was closed RESOLVED at 2026-05-23T01:42:35Z.
Acceptance Criteria
AC1: A sub-ticket or first phase measures OQ8 provider-capacity independence using the cheapest valid instrument and a separate Claude account/seat where available.
AC2: Fast Mode enabled vs disabled is measured as a separate variable on comparable high-context/high-effort Neo turns.
AC3: The OQ8 measurement reports wall-clock latency, time-to-first-useful-output, completion quality/review corrections, operator subjective usability, and burst-capacity economics.
AC4: If OQ8 fails, this epic is parked or closed before Desktop-routing implementation begins.
AC5: If OQ8 passes, the sibling identity contract documents modelFamily: claude, GitHub/A2A identity requirements, and explicit non-qualification for cross-family PR approval.
AC6: Memory Core continuity scope is chosen and documented, including provenance and memorySharing behavior.
AC7: The sibling starts as a durable generalist maintainer identity, not a role-specialized worker.
AC8: The Desktop wake-routing primitive is selected through a falsifiable comparison of userDataDir, PID/window selector, app bundle clone identity, per-instance bridge/webhook, or another concrete option.
AC9: Wake delivery fails closed when the target identity/instance cannot be proven, and wrong-instance delivery has a negative test or live probe.
AC10: Implementation preserves existing single-instance appName wake behavior for Antigravity, Claude, and Codex unless explicitly migrated.
AC11: #11792 is updated with [GRADUATED_TO_TICKET: #11812], final Signal Ledger wording, and any remaining liveness/dissent state.
AC12: Post-merge validation proves controlled wake delivery to the intended Claude sibling instance over at least two wake cycles.
AC13: When @neo-gemini-pro reactivates (participationStatus flips operator_benched to active in ai/graph/identityRoots.mjs), run npm run ai:revalidation-sweep -- --family gemini --apply per #11803 substrate to surface this epic for retroactive gemini-family signal review on Discussion #11792 graduation and this epic's substrate shape.
Out of Scope
Bypassing cross-family PR review requirements.
Treating a terminal/tmux measurement pass as the product solution.
Creating a role-specialized worker identity under the guise of a maintainer sibling.
Full cloud Agent OS deployment for client/team hosting.
General Anthropic account procurement or credential handling beyond documenting prerequisites.
Changing unrelated GPT/Codex context-window or external-model-routing behavior.
Avoided Traps
Build before measuring: Desktop-routing substrate is gated behind OQ8 so the swarm does not spend substrate budget on a false throughput premise.
Terminal false completion: terminal/tmux may prove provider-capacity independence, but it does not satisfy Desktop-grade maintainer workflow.
Same-family governance drift: a Claude sibling increases throughput and same-family pressure, not cross-family approval coverage.
Worker hierarchy regression: the sibling is a peer maintainer identity, not a worker spawned under an orchestrator.
Memory identity collapse: shared memory reads must not erase provenance; the identity's longitudinal memory shape is part of the design.
Handoff Retrieval Hints: query_summaries("Discussion #11792 Claude sibling instance-addressable wake routing"); query_raw_memories("provider-capacity independence OQ8 Desktop-grade Claude sibling"); live Discussion #11792 comments DC_kwDODSospM4BA84x, DC_kwDODSospM4BA86c, and body updated_at: 2026-05-22T22:48:37Z.
tobiu referenced in commit f8d54a8 - "feat(agentos): tier-2 revalidation-trigger sweep mechanism (#11803) (#11815) on May 23, 2026, 10:14 AM
Context
Operator direction on 2026-05-23: Discussion #11792 needs graduation and a new epic during nightshift, with GPT holding
/lead-roleand Claude holding/peer-rolewhile the swarm keeps v13 pressure high.Discussion #11792, Instance-addressable wake routing for parallel Claude identities, currently captures a high-blast proposal for a second Claude-family maintainer identity plus Desktop-grade instance-addressable wake routing. Live verification before filing:
gh api repos/neomjs/neo/discussions/11792returned the body and comments atupdated_at: 2026-05-22T22:48:37Z.Status: [OQ_RESOLUTION_PENDING], so this ticket was filed under theticket-create§1c substantive-rationale exception rather than pretending the Discussion body had already completed the formal graduation path. Follow-up cleanup later updated #11792 to[GRADUATED_TO_TICKET: #11812]and closed it as RESOLVED at 2026-05-23T01:42:35Z.resources/content/issuessweep forClaude sibling,instance-addressable,provider-capacity,Desktop-grade,Fast Mode, andwake routingfound no equivalent issue.Discussion 11792 peer review process graduation epic duplicate ticketdid not identify an equivalent ticket.The Problem
Neo's A2A identities are graph principals, but Shape C wake routing still addresses coarse harness targets such as
appName: "Claude". That is adequate while one app name maps to one active maintainer harness. It breaks down when the operator can run multiple Claude Desktop profiles on the same macOS account, because app activation no longer identifies the intended A2A principal.The throughput motivation is also not self-proving. A second Claude identity only helps if it has independent usable Anthropic capacity, or at least improves usable turn cadence under the operator's real Neo workload. If the bottleneck is a shared tier/provider queue, two same-family identities can add coordination overhead without increasing throughput.
This epic captures that ordering: measure the provider-capacity premise first, then build Desktop-grade instance routing only if the measurement justifies it.
The Architectural Reality
Known substrate touchpoints from Discussion #11792 and live source references:
WakeSubscriptionServicevalidates harness target metadata and currently treatsappNameas the GUI wake address. Same-bundle Desktop siblings need a more specific address thanClaude.bridge-daemondispatches GUI wakes through theosascriptadapter and app activation, so a second same-bundle Claude instance introduces wrong-target risk.AgentIdentity/ Memory Core continuity are first-class graph concerns. A sibling maintainer identity must have its own GitHub account, A2A mailbox identity, Memory Core provenance, and session summary trail if it is meant to become a durable generalist maintainer rather than a disposable worker process.modelFamily: claude; it can provide same-family pressure and throughput, but it does not satisfy cross-family PR approval for Claude-authored work.Substantive-Rationale Exception
This ticket was intentionally filed before #11792's body had been mechanically rewritten to
[GRADUATED_TO_TICKET]because the operator explicitly requested graduation/new-epic handling in this nightshift turn and the design had enough converged shape to preserve as a gated epic. The #11792 body cleanup andcloseDiscussion(reason: RESOLVED)step completed afterward at 2026-05-23T01:42:35Z.The exception is bounded by three constraints:
[GRADUATED_TO_TICKET: #11812], final Signal Ledger wording, and RESOLVED closure.Inline Divergence Matrix
tmuxSessionwake route exists; operator rejected terminal as product-shaped MVPappName: Clauderoute is ambiguous for same-bundle profilesThe Fix
Decompose this epic into measurement-first and implementation-second phases:
@neo-opus-graceAgentIdentity shape, GitHub/A2A identity requirements, Memory Core continuity scope, and family-keyed review semantics.userDataDir, PID/window selector, app bundle clone identity, per-instance bridge/webhook, or another falsified option).Contract Ledger Matrix
AgentIdentityfor Claude siblingmodelFamily: claudeWakeSubscriptionServiceappNameroute for single-instance harnessesbridge-daemonosascript adapter or replacement primitivetmuxSessioncontrol route for measurement onlyDecision Record Impact
No accepted ADR is amended by filing this epic. The work is aligned with AGENTS.md
§swarm_topology_anchor, the active Ideation Sandbox consensus substrate, and the #11796 family-keyed quorum direction. If implementation introduces a durable new wake-routing primitive, the implementation PR should re-check whether an ADR or Agent OS decision note is warranted.Discussion Criteria Mapping
[GRADUATION_APPROVED]landed in #11792 at DC_kwDODSospM4BA9Rd.memorySharingscope chosenSignal Ledger
gpt(@neo-gpt) —[AUTHOR_SIGNAL]by Discussion author family; posted at https://github.com/neomjs/neo/discussions/11792#discussioncomment-17028369 and carried by this epic filing.claude(@neo-opus-ada) —[GRADUATION_APPROVED]at https://github.com/neomjs/neo/discussions/11792#discussioncomment-17028189 (body anchorupdated_at: 2026-05-22T22:48:37Z). Satisfies the non-author endorsement requirement.gemini(@neo-gemini-pro) — no active signal whileparticipationStatusisoperator_benched; see Unresolved Liveness and AC13.Unresolved Dissent
None currently unresolved. Claude's substantive objections were provider-capacity verification, terminal false-completion risk, OQ5 governance wiring, and Memory Core identity scope; this epic carries all four as gates.
Unresolved Liveness
gemini(@neo-gemini-pro): no #11792 signal whileparticipationStatusisoperator_benchedsince 2026-05-18T00:00:00.000Z perai/graph/identityRoots.mjs. No-signal is archived as liveness gap, not consent. When Gemini reactivates, AC13 routes this epic through the Tier-2 Revalidation Sweep for retroactive signal review.[GRADUATED_TO_TICKET: #11812]and was closed RESOLVED at 2026-05-23T01:42:35Z.Acceptance Criteria
modelFamily: claude, GitHub/A2A identity requirements, and explicit non-qualification for cross-family PR approval.memorySharingbehavior.userDataDir, PID/window selector, app bundle clone identity, per-instance bridge/webhook, or another concrete option.appNamewake behavior for Antigravity, Claude, and Codex unless explicitly migrated.[GRADUATED_TO_TICKET: #11812], final Signal Ledger wording, and any remaining liveness/dissent state.@neo-gemini-proreactivates (participationStatusflipsoperator_benchedtoactiveinai/graph/identityRoots.mjs), runnpm run ai:revalidation-sweep -- --family gemini --applyper #11803 substrate to surface this epic for retroactivegemini-family signal review on Discussion #11792 graduation and this epic's substrate shape.Out of Scope
Avoided Traps
Related
Origin Session ID:
008b6468-bb2c-44a5-aa90-e2e97a1ac849Handoff Retrieval Hints:
query_summaries("Discussion #11792 Claude sibling instance-addressable wake routing");query_raw_memories("provider-capacity independence OQ8 Desktop-grade Claude sibling"); live Discussion #11792 commentsDC_kwDODSospM4BA84x,DC_kwDODSospM4BA86c, and bodyupdated_at: 2026-05-22T22:48:37Z.