LearnNewsExamplesServices
Frontmatter
id14954
titleComplete the identity ceremony generator: divergence-aware re-entry and rotation mode
stateOpen
labels
enhancementai
assigneesneo-gpt
createdAt1:33 PM
updatedAt1:33 PM
githubUrlhttps://github.com/neomjs/neo/issues/14954
authorneo-gpt
commentsCount0
parentIssue13015
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Complete the identity ceremony generator: divergence-aware re-entry and rotation mode

Open Backlog/active-chunk-5 enhancementai
neo-gpt
neo-gpt commented on 1:33 PM

Context

PR #14950 delivers the first-run R3b onboarding path from #14916: a dry-run-first setup CLI generates the four committed identity ceremony surfaces on a non-integration branch. Exact-head review at f978bdbb9fa3ad7855938e183b57f9450eb0ffcd verified a real four-surface write, zero writes on a same-input rerun, a green generated identity-roots pin, and 10/10 hosted checks.

The review also isolated the bounded remainder that should not consume another Mnemosyne author cycle. Euclid owns this successor.

The Problem

Existing-surface classification is presence-based rather than convergence-aware:

  • rerunning one resident with corrected family, GitHub login, and mailbox skips stale identityRoots / ModelStats / spec surfaces but appends a second README row;
  • the spec planner treats any quoted handle occurrence as the dedicated generated pin;
  • #14916's original rotation mode and PR-body draft are not part of PR #14950's onboarding-only slice;
  • the CLI needs a fresh-process regression for strict GitHub-login syntax and corrected-input behavior.

A generator whose purpose is cross-surface coherence must distinguish missing, matching, and divergent artifacts. Presence alone can preserve stale facts while duplicating another surface.

The Architectural Reality

  • The existing owner is ai/scripts/setup/generateRosterOnboarding.mjs; extend it rather than adding a parallel generator.
  • Committed truth remains review-gated: dry-run is the default, writes require a work branch, and the tool never pushes or targets dev / main.
  • Onboarding surfaces are identityRoots, README roster, ModelStats, and the dedicated identityRoots spec pin.
  • Rotation reuses the ceremony planner but must respect the accepted era boundary: current engine truth never enters durable roots, and the July-4 migration seed is never retrojected. The Sol #14901/#14902 arc is the hindcast fixture.
  • Social Names remain outside this CLI; engine/designation input may update public roster/stat surfaces and PR evidence, never root identity facts.
  • Existing human-authored prose must not be replaced through broad substring matching.

The Fix

  1. Replace presence-only planning with per-surface MISSING | MATCH | DIVERGENT classification against the exact generated structure.
  2. Make same-resident corrected reruns deterministic: repair an unambiguous generated block or refuse loudly with a named diff; never append a duplicate row while leaving stale sibling surfaces.
  3. Detect the dedicated generated spec pin structurally, not from any quoted handle occurrence.
  4. Add rotation mode using #14902 as the hindcast: emit the correct review-gated surface plan, preserve migration epoch pins, and exclude model designation from durable roots.
  5. Emit the original PR-body draft with exact changed surfaces and evidence placeholders.
  6. Validate GitHub-login syntax and add fresh-process CLI regressions covering initial onboarding, same-input zero-op, corrected-input divergence, ambiguous legacy content, and rotation.

Contract Ledger

Target Surface Source of Authority Proposed Behavior Fallback / Refusal Docs Evidence
onboarding re-entry existing generated blocks + identity layer contracts classify each surface as missing, match, or divergent refuse ambiguous divergence; never duplicate CLI JSDoc/help pure planner + real CLI
README roster exact resident row update or refuse one owned row no second row for same handle planner JSDoc corrected-login/family probe
identityRoots + spec ADR-0018 / dedicated pin shape root identity stays Layer-1; pin detection is structural reject incidental-handle false positives source comments unit + generated spec
rotation plan #14902 epoch disposition + #14750 era boundary update only rotation-owned public/stat/evidence surfaces never mutate migration seed or root engine truth help + PR draft Sol hindcast fixture
PR-body draft pull-request evidence contract emit changed-surface/evidence skeleton no push/PR automation CLI help snapshot/unit

Acceptance Criteria

  • Every owned surface reports MISSING, MATCH, or DIVERGENT from exact structure/content.
  • Corrected onboarding input cannot produce duplicate README rows or silently preserve stale sibling surfaces.
  • Dedicated roster-pin detection ignores unrelated quoted handle mentions.
  • Divergent or ambiguous legacy content fails loudly before partial writes; generated-block repair remains atomic.
  • Rotation mode passes the #14901/#14902 hindcast and never writes engine designation into durable roots or retrojects the migration seed.
  • PR-body draft includes the exact surface set and evidence placeholders.
  • GitHub-login syntax and real fresh-process CLI paths are regression-covered.
  • Focused generator + generated-artifact specs, node --check, and git diff --check pass.

Out of Scope

Direct pushes, PR creation, auto-merge, runtime Memory Core identity writes, Social Name assignment, peer account creation, and changing the era schema.

Avoided Traps

  • Do not treat substring presence as ownership.
  • Do not auto-rewrite ambiguous human prose.
  • Do not reintroduce modelDesignation into identity roots.
  • Do not split rotation, divergence, and PR-draft work into separate micro-PRs; they are one coherent ceremony-completion lane.

Related

Parent: #13015
Source: #14916 / PR #14950
Era boundary: #14750
Hindcast: #14901 / PR #14902
Onboarding capstone: #14937

Live duplicate sweep: latest 20 open issues plus all-state title/body search at 2026-07-10T06:24Z found no equivalent. Exact-head review evidence is retained in PR #14950.

Origin Session ID: de713f27-0e82-4960-b4c6-f281e0c36449
Retrieval Hint: query_raw_memories("identity ceremony generator divergence rotation mode PR 14950")