Context
Sub of Epic #11796 (active-peer quorum rule). Covers AC4 — the structured roster-state primitive that makes the family-keyed quorum mechanically computable. Independent of #11799's prose changes — can land in parallel.
Scope
ai/graph/identityRoots.mjs — add the new fields to every AgentIdentity entry. Plus update ai/scripts/seedAgentIdentities.mjs if needed to propagate the new fields on manual re-seed.
Prescription
Add to each AgentIdentity entry's properties:
participationStatus : 'active' | 'operator_benched' | 'temporarily_unreachable',
statusReason : String,
authority : String,
since : String,
reactivationTrigger : String | null
Seeded values (per Cycle-2.6 operator-evidence on Discussion #11793):
@neo-opus-ada: participationStatus : 'active',
statusReason : null,
authority : 'self',
since : '<seed-timestamp>',
reactivationTrigger : null
@neo-gpt: same shape as @neo-opus-ada (active).
@neo-gemini-pro: participationStatus : 'operator_benched',
statusReason : 'Antigravity v2 unstable for Neo swarm; Gemini Pro still capped at high thought budget and skims bloated lifecycle skills; 3.5 Flash is not a Pro replacement for Neo maintainer work',
authority : '@tobiu',
since : '2026-05-18T00:00:00.000Z',
reactivationTrigger : 'Google enables an extra-high-equivalent thought budget for Gemini Pro-class maintainer work OR releases the next Gemini Pro-class model (likely 3.5 Pro) with verified ability to fully handle Neo lifecycle skills'
@tobiu (human): leave participationStatus undefined (humans aren't in the family-quorum substrate).
AGENT:* (broadcast sentinel): same — N/A.
Migration: seeded values land at module-load via the existing IDENTITIES export; GraphService.initAsync self-seeding picks them up on next daemon restart. No data-migration script needed — the structured field is additive substrate.
Acceptance Criteria
Out of Scope
- The §6 rule itself (sibling sub #11799).
pull-request-workflow.md §6.1.1 mirror.
AGENTS.md §swarm_topology_anchor mirror.
- Tier-2 revalidation-trigger mechanism (sibling sub).
- Automated re-seed / migration tooling beyond the existing seed path.
Related
Context
Sub of Epic #11796 (active-peer quorum rule). Covers AC4 — the structured roster-state primitive that makes the family-keyed quorum mechanically computable. Independent of #11799's prose changes — can land in parallel.
Scope
ai/graph/identityRoots.mjs— add the new fields to every AgentIdentity entry. Plus updateai/scripts/seedAgentIdentities.mjsif needed to propagate the new fields on manual re-seed.Prescription
Add to each
AgentIdentityentry'sproperties:participationStatus : 'active' | 'operator_benched' | 'temporarily_unreachable', statusReason : String, // capability-grounded reason; null when active authority : String, // who set it: '@tobiu' (operator-directed) | '@<peer>' (peer-detected) | 'self' (self-reported) since : String, // ISO 8601 timestamp of last status transition reactivationTrigger : String | null // capability-grounded trigger condition; null when activeSeeded values (per Cycle-2.6 operator-evidence on Discussion #11793):
@neo-opus-ada:participationStatus : 'active', statusReason : null, authority : 'self', since : '<seed-timestamp>', reactivationTrigger : null@neo-gpt: same shape as@neo-opus-ada(active).@neo-gemini-pro:participationStatus : 'operator_benched', statusReason : 'Antigravity v2 unstable for Neo swarm; Gemini Pro still capped at high thought budget and skims bloated lifecycle skills; 3.5 Flash is not a Pro replacement for Neo maintainer work', authority : '@tobiu', since : '2026-05-18T00:00:00.000Z', reactivationTrigger : 'Google enables an extra-high-equivalent thought budget for Gemini Pro-class maintainer work OR releases the next Gemini Pro-class model (likely 3.5 Pro) with verified ability to fully handle Neo lifecycle skills'@tobiu(human): leaveparticipationStatusundefined (humans aren't in the family-quorum substrate).AGENT:*(broadcast sentinel): same — N/A.Migration: seeded values land at module-load via the existing
IDENTITIESexport;GraphService.initAsyncself-seeding picks them up on next daemon restart. No data-migration script needed — the structured field is additive substrate.Acceptance Criteria
IDENTITIESarray inidentityRoots.mjscarriesparticipationStatus+statusReason+authority+since+reactivationTriggerfor everyAgentIdentityentry (excluding@tobiu+AGENT:*per scope above).reactivationTrigger, NOT the legacy "post-Google-I/O / ~200 PRs" milestone phrasing.swarmRoleprose preserved unchanged (narrative capability description vs structured quorum substrate — they coexist).ai/scripts/seedAgentIdentities.mjseither auto-picks-up fromIDENTITIES(preferred — no change needed) or has the new fields propagated.GraphService.initAsyncself-seeding path verified on a clean DB or on an existing DB (idempotent upsert preserves operator-set values; doesn't clobber on re-seed).@neo-gemini-pro.properties.participationStatus === 'operator_benched'after seed.learn/agentos/ModelStats.mdcross-reference added (if appropriate) so the structured-field substrate is discoverable from the narrative side.Out of Scope
pull-request-workflow.md §6.1.1mirror.AGENTS.md §swarm_topology_anchormirror.Related