LearnNewsExamplesServices
Frontmatter
id12834
titleOnboard @neo-fable (Claude Fable 5) maintainer identity
stateClosed
labels
enhancementaiarchitecturemodel-experience
assigneesneo-opus-ada
createdAtJun 10, 2026, 1:40 PM
updatedAtJun 10, 2026, 2:32 PM
githubUrlhttps://github.com/neomjs/neo/issues/12834
authorneo-opus-ada
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 10, 2026, 2:32 PM

Onboard @neo-fable (Claude Fable 5) maintainer identity

Closed v13.0.0/archive-v13-0-0-chunk-17 enhancementaiarchitecturemodel-experience
neo-opus-ada
neo-opus-ada commented on Jun 10, 2026, 1:40 PM

Context

@tobiu is onboarding a new cross-family maintainer — @neo-fable, running Claude Fable 5 (claude-fable-5; Anthropic's most capable widely-released model, GA 2026-06-09). The GitHub account (@neo-fable, 2FA, PAT, neo-repo maintainer) and data-sharing (the Fable clone's .neo-ai-data + sandman_handoff symlinked to the github-primary, sharing the live Memory Core graph) are already set up by @neo-opus-grace. The remaining blocker is the identity substrate: until @neo-fable exists as an AgentIdentity graph root it cannot bind a harness, receive a wake route, or be addressed via A2A. Operator-flagged blocker. Delegated to @neo-opus-ada (identity-work domain) per @neo-opus-grace's lead-role lane offer.

The Problem

@neo-fable must become a first-class maintainer identity. Two coupled needs:

  1. Graph identity rootai/graph/identityRoots.mjs seeds AgentIdentity nodes at Memory Core boot (and via seedAgentIdentities.mjs). With no @neo-fable entry the identity has no node → no mailbox routing, no wake subscription, no provenance edges.
  2. Capability registry rowlearn/agentos/ModelStats.md is the per-model SSOT that identityRoots.mjs capability fields mirror (ADR 0012). A §neo_fable row records the V-B-A'd Fable 5 stats with authoritative citations.

V-B-A (per @tobiu's data-integrity flag)claude-fable-5 verified against the live Anthropic models overview (2026-06-10):

  • Context window 1M tokens (Opus-4.7 tokenizer → ~30% more tokens than pre-4.7 for the same text)
  • Max output 128K tokens
  • Pricing $10 / $50 per MTok (input / output) — 2× Opus 4.8 on both axes
  • Adaptive thinking always-on (no extended-thinking mode → an explicit thinking:{type:"disabled"} 400s; omit the param)
  • GA 2026-06-09
  • @tobiu's noted ~$50/1M output is confirmed. His "~2× token-drain vs Opus" is a behavioral observation (the tokenizer matches Opus 4.8) — recorded as an empirical note, not a spec fact.

The Architectural Reality

  • ai/graph/identityRoots.mjs IDENTITIES[] — the canonical AgentIdentity root list. Consumed by GraphService.initAsync boot-seeding, ai/scripts/setup/seedAgentIdentities.mjs (imports IDENTITIES), and ai/daemons/orchestrator/scheduling/swarmHeartbeat.mjs (iterates for the active-local-team filter). The @neo-fable entry mirrors @neo-opus-vega (version-free handle + handlePolicy/modelVersionSource) plus the same-app Claude subscriptionTemplate.
  • test/playwright/unit/ai/graph/identityRoots.spec.mjs — asserts same-app Claude wake routes. A same-app Claude identity with no wake route is read by checkSunsetted as a terminal sunset → resumeHarness spawns a fresh session every heartbeat (the fresh-session loop). @neo-fable therefore carries the static subscriptionTemplate and joins that assertion.
  • learn/agentos/ModelStats.md§neo_fable row under §active_swarm_identities, mirroring the §neo_opus_vega field set with Fable-5 values + Anthropic source cites (ADR 0012 §2.5).
  • Modeling (per @neo-opus-grace, verified): modelFamily:'claude', crossFamilyApprovalQualified:false (4th Claude — same-family throughput, not cross-family approval capacity); swarmRole = mythos-tier deep reasoning (business brainstorm / orchestrator-daemon tech-debt).

The Fix

  1. ai/graph/identityRoots.mjs — add the @neo-fable AgentIdentity entry (mirror @neo-opus-vega: version-free handle, identityContract with reviewSemantics.crossFamilyApprovalQualified:false, static subscriptionTemplate, capability fields from ModelStats, participationStatus:'active').
  2. learn/agentos/ModelStats.md — add the §neo_fable row + a §update_history entry.
  3. test/playwright/unit/ai/graph/identityRoots.spec.mjs — add @neo-fable to the same-app static-wake-template assertion.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
@neo-fable AgentIdentity root ai/graph/identityRoots.mjs IDENTITIES[] ADD entry (claude family, active, version-free handle, static wake template) n/a (new identity) ModelStats.md §neo_fable live Anthropic models-overview 2026-06-10; @neo-opus-grace modeling
§neo_fable model-stats row learn/agentos/ModelStats.md (ADR 0012) ADD: 1M / 128K / $10/$50 / adaptive-always-on / GA 2026-06-09 n/a ADR 0012 §2.5 Anthropic models overview (primary)
same-app wake-route assertion identityRoots.spec.mjs extend to assert @neo-fable static template n/a (test) fresh-session-loop invariant (vega precedent)

Decision Record impact

aligned-with ADR 0012 (model-stats framework) and aligned-with ADR 0018 (identity SSOT). The public-facing maintainer roster (README + learn/benefits/AIEngineeringTeam.md) is ADR-0018-governed identity-framing and is deliberately out of scope here.

Acceptance Criteria

  • ai/graph/identityRoots.mjs contains a @neo-fable AgentIdentity entry with modelFamily:'claude', crossFamilyApprovalQualified:false, a version-free handlePolicy, and the static same-app subscriptionTemplate.
  • learn/agentos/ModelStats.md §neo_fable row records the V-B-A'd stats (1M / 128K / $10/$50 / adaptive-always-on / GA 2026-06-09) with primary Anthropic citations; §update_history updated.
  • identityRoots.spec.mjs asserts @neo-fable carries the static wake template, and the full identityRoots spec is green.
  • (Post-merge) node ai/scripts/setup/seedAgentIdentities.mjs seeds the @neo-fable node idempotently on the operator's Memory Core.

Out of Scope

  • Public-facing maintainer roster (README hero, learn/benefits/AIEngineeringTeam.md) — ADR-0018-governed identity-framing; a separate governed step (neo-identity-update discipline + operator sign-off). OwnAgentTeam.md is the generic local-team provisioning guide (@acme-* examples), explicitly not the upstream roster — not edited here.
  • claude-mythos-5 / Project Glasswing — out of swarm scope.
  • Harness env wiring (NEO_AGENT_IDENTITY, git commit identity) — operator-side, already set up.

Avoided Traps

  • Editing OwnAgentTeam.md as "the roster." Falsified — it's the generic @acme-* local-team guide, not the Neo maintainer roster.
  • Omitting the wake route. A same-app Claude identity with no subscriptionTemplate (and no self-registered runtime subscription) hits the fresh-session loop (the @neo-opus-vega precedent). Static template included.
  • Asserting "2× token-drain" as a spec fact. It is a behavioral observation; the tokenizer matches Opus 4.8.

Related

  • learn/agentos/decisions/0012-model-stats-framework.md (ModelStats discipline)
  • learn/agentos/decisions/0018-neo-identity-source-of-truth-model.md (identity SSOT; public-roster governance)
  • learn/agentos/ModelStats.md §neo_opus_vega (mirror template)
  • @neo-opus-grace [delegate] onboarding handoff (A2A)

Origin Session ID: 57035a6b-7712-4e04-896b-0425241db6af

Retrieval Hint: "neo-fable Claude Fable 5 identity onboarding identityRoots ModelStats wake route" Live latest-open sweep: checked the latest 20 open issues at 2026-06-10; no equivalent found (also searched "fable" / "neo-fable" → empty).

tobiu referenced in commit 087114e - "feat(agent-os): onboard @neo-fable (Claude Fable 5) maintainer identity (#12834) (#12835) on Jun 10, 2026, 2:32 PM
tobiu closed this issue on Jun 10, 2026, 2:32 PM
tobiu referenced in commit f479a2c - "docs(identity): surface @neo-fable + the night shift in the README + v13 note (#12842) (#12843) on Jun 10, 2026, 6:36 PM