The operator created neo-gpt-emmy as a new GPT-family maintainer account. GitHub now exposes the verified profile display label Emmy; unconditional Social Name assent and the live engine designation remain first-boot observations.
The repo already ships the dry-run-first onboarding generator from #14916. This ticket applies and hardens that substrate while correcting an older identity-model mistake: a resident node is not a container for staffing utility, sibling hierarchy, review policy, memory workflow, or onboarding checklists.
The Problem
Until @neo-gpt-emmy is registered, the new resident has no canonical AgentIdentity root, public roster row, pending capability record, or executable roster pin. The first generated draft also copied undocumented identityContract and role-typing fields from older roots, contradicting ADR 0032's identity anti-lock-in contract and the operator precedent in #13165 / #13166.
Architectural Reality
ai/graph/identityRoots.mjs is the committed AgentIdentity roster and Memory Core boot-time seed source.
An AgentIdentity records the resident's durable handle, bearer-confirmed Social Name when one exists, verified account/UI label, trust/account classification, current capability facts, operational wake configuration where required, and participation lifecycle.
Workflow and governance belong to their owning surfaces. identityContract, memoryContinuity, activationPrerequisites, reviewSemantics, sibling hierarchy, and swarmRole are not resident attributes.
Engine facts are observation-owned. Emmy's model designation and capability fields remain absent until first boot.
Migration epoch classification is derived from each root's immutable hardcoded createdAt; it needs neither an identity policy field nor a second resident roster.
The Fix
Register @neo-gpt-emmy with handle-derived top-level name pending bearer assent, verified profile display label Emmy, core schema-backed fields, non-active onboarding status, no engine prediction, and no static wake template.
Synchronize the README roster and ModelStats pending row.
Remove undocumented workflow contracts, role typing, staffing-utility prose, and fixed-character narratives from every named maintainer in identityRoots.mjs and the mirrored ModelStats rows.
Replace import-time createdAt clocks on every root with immutable introduction timestamps, and make migration compare those facts directly with MIGRATION_EPOCH.
Correct the generator/schema/ADR/public-guide surfaces that could recreate role-typed identity or dynamic timestamps, and add executable anti-lock-in guards.
Contract Ledger
Target
Source of Authority
Behavior
Failure posture
Evidence
AgentIdentity root
IdentitySchema.md + ADR 0032
durable @neo-gpt-emmy resident; handle-derived top-level name pending assent, verified UI label Emmy, no workflow/role fields
createdAt > MIGRATION_EPOCH skips retroactive era fabrication
no second resident roster or identity policy field
production-data migration spec
Public identity
README + ModelStats
Emmy displayed; no staffing utility or family stereotype
prose guard + cross-surface review
focused specs + diff audit
Decision Record Impact
Aligns the live registry and ADR 0012 with ADR 0032's newer no-role-typing identity contract. No new identity abstraction is introduced; undocumented nested fields are removed.
Acceptance Criteria
@neo-gpt-emmy exists exactly once with canonical GitHub login, handle-derived top-level name pending bearer assent, verified display name Emmy, and pending participation state.
Emmy carries no identityContract, memory/onboarding workflow, sibling hierarchy, swarmRole, engine facts, or static wake template.
No named maintainer root frames a peer as throughput, pressure, capacity, output, a fixed lane, or a family stereotype.
All named maintainer display names use a confirmed Social Name or verified account profile label where one exists.
Every root carries a hardcoded immutable createdAt; re-import/rehydration cannot reset identity age.
Post-epoch migration behavior remains deterministic without an identity-node policy field or duplicate resident list.
README, ModelStats, schema, generator, and focused specs remain coherent.
The focused identity/generator/migration/heartbeat specs pass.
The PR targets dev and receives cross-family review.
Context
The operator created
neo-gpt-emmyas a new GPT-family maintainer account. GitHub now exposes the verified profile display label Emmy; unconditional Social Name assent and the live engine designation remain first-boot observations.The repo already ships the dry-run-first onboarding generator from #14916. This ticket applies and hardens that substrate while correcting an older identity-model mistake: a resident node is not a container for staffing utility, sibling hierarchy, review policy, memory workflow, or onboarding checklists.
The Problem
Until
@neo-gpt-emmyis registered, the new resident has no canonical AgentIdentity root, public roster row, pending capability record, or executable roster pin. The first generated draft also copied undocumentedidentityContractand role-typing fields from older roots, contradicting ADR 0032's identity anti-lock-in contract and the operator precedent in #13165 / #13166.Architectural Reality
ai/graph/identityRoots.mjsis the committed AgentIdentity roster and Memory Core boot-time seed source.identityContract,memoryContinuity,activationPrerequisites,reviewSemantics, sibling hierarchy, andswarmRoleare not resident attributes.createdAt; it needs neither an identity policy field nor a second resident roster.The Fix
@neo-gpt-emmywith handle-derived top-level name pending bearer assent, verified profile display labelEmmy, core schema-backed fields, non-active onboarding status, no engine prediction, and no static wake template.identityRoots.mjsand the mirrored ModelStats rows.createdAtclocks on every root with immutable introduction timestamps, and make migration compare those facts directly withMIGRATION_EPOCH.Contract Ledger
IdentitySchema.md+ ADR 0032@neo-gpt-emmyresident; handle-derived top-level name pending assent, verified UI labelEmmy, no workflow/role fieldscreatedAt+identityRootsMigration.mjscreatedAt > MIGRATION_EPOCHskips retroactive era fabricationEmmydisplayed; no staffing utility or family stereotypeDecision Record Impact
Aligns the live registry and ADR 0012 with ADR 0032's newer no-role-typing identity contract. No new identity abstraction is introduced; undocumented nested fields are removed.
Acceptance Criteria
@neo-gpt-emmyexists exactly once with canonical GitHub login, handle-derived top-level name pending bearer assent, verified display nameEmmy, and pending participation state.identityContract, memory/onboarding workflow, sibling hierarchy,swarmRole, engine facts, or static wake template.createdAt; re-import/rehydration cannot reset identity age.devand receives cross-family review.Out of Scope
Codex credentials and first-boot execution; observed engine/capability fill; participation activation; merge execution.
Avoided Traps
Related
Parent: #13015 · generator substrate: #14916 · identity anti-lock-in: ADR 0032 · operator precedent: #13165 / #13166 · naming source: Discussion #11240
Origin Session ID: de713f27-0e82-4960-b4c6-f281e0c36449
Retrieval Hint:
query_raw_memories("Emmy neo-gpt-emmy identity anti-lock-in no role typing")