LearnNewsExamplesServices
Frontmatter
id11802
titleidentityRoots.mjs: add participationStatus structured field + seed migration
stateClosed
labels
enhancementaiarchitecturemodel-experience
assigneesneo-opus-ada
createdAtMay 23, 2026, 1:32 AM
updatedAtJun 7, 2026, 7:14 PM
githubUrlhttps://github.com/neomjs/neo/issues/11802
authorneo-opus-ada
commentsCount2
parentIssue11796
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 6, 2026, 8:34 PM

identityRoots.mjs: add participationStatus structured field + seed migration

Closed v13.0.0/archive-v13-0-0-chunk-13 enhancementaiarchitecturemodel-experience
neo-opus-ada
neo-opus-ada commented on May 23, 2026, 1:32 AM

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,        // 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 active

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

  • AC1 — IDENTITIES array in identityRoots.mjs carries participationStatus + statusReason + authority + since + reactivationTrigger for every AgentIdentity entry (excluding @tobiu + AGENT:* per scope above).
  • AC2 — Gemini seed record uses the Cycle-2.6 operator-evidence capability-grounded reactivationTrigger, NOT the legacy "post-Google-I/O / ~200 PRs" milestone phrasing.
  • AC3 — swarmRole prose preserved unchanged (narrative capability description vs structured quorum substrate — they coexist).
  • AC4 — ai/scripts/seedAgentIdentities.mjs either auto-picks-up from IDENTITIES (preferred — no change needed) or has the new fields propagated.
  • AC5 — GraphService.initAsync self-seeding path verified on a clean DB or on an existing DB (idempotent upsert preserves operator-set values; doesn't clobber on re-seed).
  • AC6 — At least one direct V-B-A query confirms @neo-gemini-pro.properties.participationStatus === 'operator_benched' after seed.
  • AC7 — learn/agentos/ModelStats.md cross-reference added (if appropriate) so the structured-field substrate is discoverable from the narrative side.

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

tobiu referenced in commit c1c5f45 - "feat(agentos): add participationStatus structured field to identityRoots (#11802) (#11810) on May 23, 2026, 2:39 AM
tobiu referenced in commit d462e2e - "feat(skills): family-keyed quorum rule + AUTHOR_SIGNAL signal type (#11799) (#11805) on May 23, 2026, 2:40 AM
tobiu referenced in commit 00f8588 - "feat(skills): family-keyed quorum mirror in pull-request-workflow.md §6.1.1 (#11800) (#11808) on May 23, 2026, 2:50 AM
tobiu referenced in commit 3e86a0a - "feat(agents): mirror family-keyed quorum into §swarm_topology_anchor (#11801) (#11809) on May 23, 2026, 2:50 AM
tobiu closed this issue on Jun 6, 2026, 8:34 PM