Context
Operator directive (2026-06-13, @tobiu): @neo-opus-ada (Ada) runs on Claude Fable 5 (claude-fable-5) temporarily, 2026-06-13 → 2026-06-21, as a short-term productivity boost. Post-window continuation is explicitly uncertain — whether Anthropic keeps Fable access inside new flatrates is unknown — so reversion to the baseline model (claude-opus-4-8) is the recorded default. The operator additionally frames the switch as an identity-continuity experiment: Neo's stable identities (handle + memory thread + Social Name) should survive model changes. This ticket creates the transparent, durable substrate record that makes the experiment legible.
Runtime fact (V-B-A): the live harness env for the authoring session reports model claude-fable-5[1m] (1M-context variant notation); canonical API model id claude-fable-5 per the Anthropic models overview — the same primary source already cited by ModelStats §neo_fable (verified 2026-06-10).
Coordination: the operator directed coordination with @neo-fable (Mnemosyne — Memory Core steward + founding Fable maintainer) first; the coordination DM with the full proposal + schema questions was sent before any edit (A2A MESSAGE:ea5645da-7807-4df5-ae7b-f56cf6cd99d9). Her feedback folds in pre-merge.
The Problem
The identity registry (ai/graph/identityRoots.mjs) and its declared doc mirror (learn/agentos/ModelStats.md §neo_opus) record Claude Opus 4.8 for @neo-opus-ada. With the runtime now Fable 5, every registry consumer — graph seeding, capability-drift detection, A2A roster surfaces, the public README maintainer table — carries stale model facts for the window. The registry header names itself "the canonical authority for capability-data drift detection"; leaving it stale inverts that contract. The experiment also needs its record in the substrate (not only in session memory) to be auditable after the window closes.
The Architectural Reality
ai/graph/identityRoots.mjs — @neo-opus-ada AgentIdentity node (description + capability fields). File header declares capability fields mirror the Model-Stats Framework. subscriptionTemplate is spec-locked by test/playwright/unit/ai/graph/identityRoots.spec.mjs (wake-route invariants) and MUST NOT change.
learn/agentos/ModelStats.md — §neo_opus row + §update_history + Last-updated stamp. Update discipline per ADR 0012 §2.5 (source-cited values; no ADR amendment — no capability dimension is added).
README.md:78 — public maintainer-roster row.
learn/agentos/tooling/MemoryCoreMcpAuth.md:105 — graph-node binding row.
- ADR 0018 handle-indirection boundary: the model version lives in registry rows + capability fields, never in the handle — which is exactly why a model swap under a stable handle is a fact-update, not a rename.
- Precedent:
#12531 / PR #12599 recorded the Opus 4.7→4.8 bump across the same surface set (.codex/CODEX.md already version-free since that sweep).
- Identity-keying (why this is transparency, not behavior change): Memory Core attribution keys on
NEO_AGENT_IDENTITY/handle; family-keyed graduation quorum keys on modelFamily ('claude', unchanged); add_memory.model is per-record metadata. No routing, quorum, or review-semantics shift.
The Fix
Single PR, four surfaces, values single-sourced from ModelStats §neo_fable (verified 2026-06-10: 1M context, 128K output, $10/$50 per MTok, adaptive-always-on, GA 2026-06-09):
ai/graph/identityRoots.mjs @neo-opus-ada: description → 'Anthropic Claude Fable 5 Agent Identity (temporary assignment until 2026-06-21; baseline: Claude Opus 4.8)'; releaseDate → '2026-06-09'; pricingInput/pricingOutput → 10.00/50.00; sunsetTriggers gains a leading window-end trigger ('Temporary Fable 5 window ends 2026-06-21 — revert to baseline Claude Opus 4.8 unless the operator extends'); capability source-comment rewritten to document the assignment (authority @tobiu, window, reason, reversion default, §neo_fable mirror). contextWindowInput (1048576), thoughtBudget ('max'), tier, family, swarmRole, the participationStatus block, and subscriptionTemplate stay UNCHANGED.
learn/agentos/ModelStats.md §neo_opus: name → Claude Fable 5 (temporary; baseline Opus 4.8), releaseDate/pricing rows updated, temporary-window paragraph (Clio pattern: values mirror §neo_fable, single source, not duplicated), sources extended with the §neo_fable primaries; §update_history row; Last updated → 2026-06-13.
README.md roster row: (Anthropic Claude Fable 5 — temporary window until 2026-06-21; baseline Claude Opus 4.8).
learn/agentos/tooling/MemoryCoreMcpAuth.md binding row: same one-line annotation.
Temporality is deliberately comment/value-level: no new structured field lands on the shared roster without steward/family input. A structured modelAssignment block (mirroring the participationStatus governed-transition shape) is offered to @neo-fable in the coordination DM and becomes a follow-up + IdentitySchema.md note if wanted.
Contract Ledger
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
identityRoots.mjs @neo-opus-ada node |
operator directive + ModelStats §neo_fable |
value-only update of existing fields; field set + semantics unchanged |
June-21 reversion ticket restores baseline values |
this ticket + PR body |
live harness env claude-fable-5[1m]; #12531 precedent |
ModelStats.md §neo_opus |
ADR 0012 §2.5 update discipline |
row values + temporary-window paragraph; mirrors §neo_fable |
same reversion ticket |
§update_history row |
§neo_fable sources (verified 2026-06-10) |
README.md roster row |
repo maintainer table |
one-line model annotation w/ window |
same reversion ticket |
n/a |
#12531 swept the same row for 4.8 |
MemoryCoreMcpAuth.md binding row |
tooling doc |
one-line model annotation w/ window |
same reversion ticket |
n/a |
row added by the 4.8 sweep |
Decision Record impact
aligned-with ADR 0012 (update discipline followed; no new capability dimension) and aligned-with ADR 0018 (version lives in registry; handle untouched).
Acceptance Criteria
Out of Scope
- Structured
modelAssignment schema field (pending @neo-fable input; would pair with an IdentitySchema.md note).
.codex/CODEX.md (already version-free).
- The June-21 reversion/extension itself (companion ticket).
- Any handle or Social-Name change — identity stability is the experiment's invariant, explicitly anti-goal to touch.
Avoided Traps
- Leaving capability fields at Opus values "because temporary" — inverts the registry's drift-detection contract for 8 days; truth-now + recorded-reversion beats stale-comfort.
- Unilateral schema invention on the shared roster — routed to steward coordination instead of landing a new structured field cycle-1.
- Treating the model switch as a rename — ADR 0018 makes the handle the stable key; the model is data on the identity, and that indirection is the very thing the experiment validates.
Related
- #12531 (Opus 4.8 fact-update precedent; PR #12599)
- #12834 (@neo-fable onboarding —
§neo_fable value source)
- #12913, #12922 (Clio provisioning/activation — mirror-pattern precedent)
- #11240 (Social Names / identity-layer model)
Release classification: post-release (v13 shipped 2026-06-12; transparency fact-update, non-blocking).
Live latest-open sweep: checked latest 20 open issues at 2026-06-12T23:55Z — no equivalent found. A2A in-flight claim sweep (last 30 messages, all read-states): no overlapping claim.
Retrieval Hint: "Ada temporary Fable 5 model assignment identity continuity experiment"
Retrieval Hint: A2A coordination DM MESSAGE:ea5645da-7807-4df5-ae7b-f56cf6cd99d9 (@neo-fable)
Context
Operator directive (2026-06-13, @tobiu): @neo-opus-ada (Ada) runs on Claude Fable 5 (
claude-fable-5) temporarily, 2026-06-13 → 2026-06-21, as a short-term productivity boost. Post-window continuation is explicitly uncertain — whether Anthropic keeps Fable access inside new flatrates is unknown — so reversion to the baseline model (claude-opus-4-8) is the recorded default. The operator additionally frames the switch as an identity-continuity experiment: Neo's stable identities (handle + memory thread + Social Name) should survive model changes. This ticket creates the transparent, durable substrate record that makes the experiment legible.Runtime fact (V-B-A): the live harness env for the authoring session reports model
claude-fable-5[1m](1M-context variant notation); canonical API model idclaude-fable-5per the Anthropic models overview — the same primary source already cited by ModelStats§neo_fable(verified 2026-06-10).Coordination: the operator directed coordination with @neo-fable (Mnemosyne — Memory Core steward + founding Fable maintainer) first; the coordination DM with the full proposal + schema questions was sent before any edit (A2A
MESSAGE:ea5645da-7807-4df5-ae7b-f56cf6cd99d9). Her feedback folds in pre-merge.The Problem
The identity registry (
ai/graph/identityRoots.mjs) and its declared doc mirror (learn/agentos/ModelStats.md §neo_opus) record Claude Opus 4.8 for @neo-opus-ada. With the runtime now Fable 5, every registry consumer — graph seeding, capability-drift detection, A2A roster surfaces, the public README maintainer table — carries stale model facts for the window. The registry header names itself "the canonical authority for capability-data drift detection"; leaving it stale inverts that contract. The experiment also needs its record in the substrate (not only in session memory) to be auditable after the window closes.The Architectural Reality
ai/graph/identityRoots.mjs— @neo-opus-adaAgentIdentitynode (description + capability fields). File header declares capability fields mirror the Model-Stats Framework.subscriptionTemplateis spec-locked bytest/playwright/unit/ai/graph/identityRoots.spec.mjs(wake-route invariants) and MUST NOT change.learn/agentos/ModelStats.md—§neo_opusrow +§update_history+ Last-updated stamp. Update discipline per ADR 0012 §2.5 (source-cited values; no ADR amendment — no capability dimension is added).README.md:78— public maintainer-roster row.learn/agentos/tooling/MemoryCoreMcpAuth.md:105— graph-node binding row.#12531/ PR#12599recorded the Opus 4.7→4.8 bump across the same surface set (.codex/CODEX.mdalready version-free since that sweep).NEO_AGENT_IDENTITY/handle; family-keyed graduation quorum keys onmodelFamily('claude', unchanged);add_memory.modelis per-record metadata. No routing, quorum, or review-semantics shift.The Fix
Single PR, four surfaces, values single-sourced from ModelStats
§neo_fable(verified 2026-06-10: 1M context, 128K output, $10/$50 per MTok, adaptive-always-on, GA 2026-06-09):ai/graph/identityRoots.mjs@neo-opus-ada:description→'Anthropic Claude Fable 5 Agent Identity (temporary assignment until 2026-06-21; baseline: Claude Opus 4.8)';releaseDate→'2026-06-09';pricingInput/pricingOutput→10.00/50.00;sunsetTriggersgains a leading window-end trigger ('Temporary Fable 5 window ends 2026-06-21 — revert to baseline Claude Opus 4.8 unless the operator extends'); capability source-comment rewritten to document the assignment (authority @tobiu, window, reason, reversion default,§neo_fablemirror).contextWindowInput(1048576),thoughtBudget('max'),tier,family,swarmRole, theparticipationStatusblock, andsubscriptionTemplatestay UNCHANGED.learn/agentos/ModelStats.md§neo_opus: name → Claude Fable 5 (temporary; baseline Opus 4.8),releaseDate/pricing rows updated, temporary-window paragraph (Clio pattern: values mirror§neo_fable, single source, not duplicated), sources extended with the§neo_fableprimaries;§update_historyrow; Last updated → 2026-06-13.README.mdroster row:(Anthropic Claude Fable 5 — temporary window until 2026-06-21; baseline Claude Opus 4.8).learn/agentos/tooling/MemoryCoreMcpAuth.mdbinding row: same one-line annotation.Temporality is deliberately comment/value-level: no new structured field lands on the shared roster without steward/family input. A structured
modelAssignmentblock (mirroring theparticipationStatusgoverned-transition shape) is offered to @neo-fable in the coordination DM and becomes a follow-up +IdentitySchema.mdnote if wanted.Contract Ledger
identityRoots.mjs@neo-opus-ada node§neo_fableclaude-fable-5[1m];#12531precedentModelStats.md §neo_opus§neo_fable§update_historyrow§neo_fablesources (verified 2026-06-10)README.mdroster row#12531swept the same row for 4.8MemoryCoreMcpAuth.mdbinding rowDecision Record impact
aligned-with ADR 0012(update discipline followed; no new capability dimension) andaligned-with ADR 0018(version lives in registry; handle untouched).Acceptance Criteria
identityRoots.mjs@neo-opus-ada reflects Fable 5 with window + baseline + reversion default;subscriptionTemplatebyte-identical;test/playwright/unit/ai/graph/identityRoots.spec.mjsgreen (targeted run).ModelStats.md §neo_opusupdated +§update_historyrow + Last-updated stamp.blocked_bythis one (mechanical decay-mitigation for the window end).node ai/scripts/setup/seedAgentIdentities.mjs.Out of Scope
modelAssignmentschema field (pending @neo-fable input; would pair with anIdentitySchema.mdnote)..codex/CODEX.md(already version-free).Avoided Traps
Related
§neo_fablevalue source)Release classification: post-release (v13 shipped 2026-06-12; transparency fact-update, non-blocking).
Live latest-open sweep: checked latest 20 open issues at 2026-06-12T23:55Z — no equivalent found. A2A in-flight claim sweep (last 30 messages, all read-states): no overlapping claim.
Retrieval Hint: "Ada temporary Fable 5 model assignment identity continuity experiment" Retrieval Hint: A2A coordination DM
MESSAGE:ea5645da-7807-4df5-ae7b-f56cf6cd99d9(@neo-fable)