# Graph Report - ratatoskr  (2026-06-15)

## Corpus Check
- 61 files · ~157,407 words
- Verdict: corpus is large enough that graph structure adds value.

## Summary
- 2045 nodes · 4675 edges · 152 communities (124 shown, 28 thin omitted)
- Extraction: 66% EXTRACTED · 34% INFERRED · 0% AMBIGUOUS · INFERRED: 1582 edges (avg confidence: 0.52)
- Token cost: 0 input · 0 output

## Graph Freshness
- Built from commit: `335c8358`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).

## Community Hubs (Navigation)
- [[_COMMUNITY_TuiPresenterState Management|TuiPresenterState Management]]
- [[_COMMUNITY_EventSource SSE Consumer|EventSource SSE Consumer]]
- [[_COMMUNITY_Parsed CLI Arguments Handling|Parsed CLI Arguments Handling]]
- [[_COMMUNITY_Agent Information Management|Agent Information Management]]
- [[_COMMUNITY_TUI Tests and Contract Verification|TUI Tests and Contract Verification]]
- [[_COMMUNITY_CLI Arguments Parsing Contract|CLI Arguments Parsing Contract]]
- [[_COMMUNITY_Sync Entry Point and Session Resolution|Sync Entry Point and Session Resolution]]
- [[_COMMUNITY_Stream Turn Rendering and Cancellation|Stream Turn Rendering and Cancellation]]
- [[_COMMUNITY_Worldtree Session Client|Worldtree Session Client]]
- [[_COMMUNITY_Tier 3 Agent Lifecycle Client|Tier 3 Agent Lifecycle Client]]
- [[_COMMUNITY_CLI Presenter State Management|CLI Presenter State Management]]
- [[_COMMUNITY_Ratatoskr Application Argument Handling|Ratatoskr Application Argument Handling]]
- [[_COMMUNITY_Stream Turn Event Processing|Stream Turn Event Processing]]
- [[_COMMUNITY_Local Tier 3 Agent Index Management|Local Tier 3 Agent Index Management]]
- [[_COMMUNITY_Ratatoskr Application Core|Ratatoskr Application Core]]
- [[_COMMUNITY_Async Main Orchestrator|Async Main Orchestrator]]
- [[_COMMUNITY_Contract Parsing and Function Extraction|Contract Parsing and Function Extraction]]
- [[_COMMUNITY_Behavioral Guidelines Documentation|Behavioral Guidelines Documentation]]
- [[_COMMUNITY_Session API Client|Session API Client]]
- [[_COMMUNITY_Tier 3 Error Handling|Tier 3 Error Handling]]
- [[_COMMUNITY_Web Packaging and CLI Argument Tests|Web Packaging and CLI Argument Tests]]
- [[_COMMUNITY_Conversation API Specification|Conversation API Specification]]
- [[_COMMUNITY_CLI Command Rendering and Usage|CLI Command Rendering and Usage]]
- [[_COMMUNITY_TUI Shell Implementation|TUI Shell Implementation]]
- [[_COMMUNITY_Contract Amendments for Presenter States|Contract Amendments for Presenter States]]
- [[_COMMUNITY_Session Creation API|Session Creation API]]
- [[_COMMUNITY_Web Server Endpoint Handling|Web Server Endpoint Handling]]
- [[_COMMUNITY_SSE ID Parsing|SSE ID Parsing]]
- [[_COMMUNITY_Persona State Retrieval|Persona State Retrieval]]
- [[_COMMUNITY_Agent Deletion and Authentication|Agent Deletion and Authentication]]
- [[_COMMUNITY_Agent Listing Client|Agent Listing Client]]
- [[_COMMUNITY_Browser SSE Stream Parsing|Browser SSE Stream Parsing]]
- [[_COMMUNITY_Canonical Sync Documentation|Canonical Sync Documentation]]
- [[_COMMUNITY_Conversation API Contract Details|Conversation API Contract Details]]
- [[_COMMUNITY_Design Brief and Architecture Decisions|Design Brief and Architecture Decisions]]
- [[_COMMUNITY_System Prompt Constraints|System Prompt Constraints]]
- [[_COMMUNITY_Mood and Emotion Tracking|Mood and Emotion Tracking]]
- [[_COMMUNITY_Web Server Functional Tests|Web Server Functional Tests]]
- [[_COMMUNITY_Upload Management and Capabilities|Upload Management and Capabilities]]
- [[_COMMUNITY_Tier 3 Agent Patching Tests|Tier 3 Agent Patching Tests]]
- [[_COMMUNITY_Agent Documentation and Attribution|Agent Documentation and Attribution]]
- [[_COMMUNITY_Tier 3 Module Contract|Tier 3 Module Contract]]
- [[_COMMUNITY_Web Server Contract Updates|Web Server Contract Updates]]
- [[_COMMUNITY_Turn Cancellation via SSE|Turn Cancellation via SSE]]
- [[_COMMUNITY_Web Server Contract Version 16|Web Server Contract Version 16]]
- [[_COMMUNITY_SSE Event Types and Tooling|SSE Event Types and Tooling]]
- [[_COMMUNITY_Cross-User Isolation and Task Management|Cross-User Isolation and Task Management]]
- [[_COMMUNITY_Task Query Parameters and Results|Task Query Parameters and Results]]
- [[_COMMUNITY_TUI Contract Amendments|TUI Contract Amendments]]
- [[_COMMUNITY_Session ID Support Contract|Session ID Support Contract]]
- [[_COMMUNITY_TUI Startup Error Visibility|TUI Startup Error Visibility]]
- [[_COMMUNITY_TUI Contract Invariants and Amendments|TUI Contract Invariants and Amendments]]
- [[_COMMUNITY_Turn Cancellation and Logging|Turn Cancellation and Logging]]
- [[_COMMUNITY_Mock Client Factory for Persona State|Mock Client Factory for Persona State]]
- [[_COMMUNITY_Turn Cancellation Endpoint|Turn Cancellation Endpoint]]
- [[_COMMUNITY_Admin Event Stream and Tools|Admin Event Stream and Tools]]
- [[_COMMUNITY_BM25 Search Ranking and API|BM25 Search Ranking and API]]
- [[_COMMUNITY_Presentation Contract JSON|Presentation Contract JSON]]
- [[_COMMUNITY_Monkey Patching for Local Agents|Monkey Patching for Local Agents]]
- [[_COMMUNITY_Contract Format Specification|Contract Format Specification]]
- [[_COMMUNITY_Contract Version 2.1 Amendments|Contract Version 2.1 Amendments]]
- [[_COMMUNITY_Agent and Session Management Endpoints|Agent and Session Management Endpoints]]
- [[_COMMUNITY_Character Lifecycle and Management|Character Lifecycle and Management]]
- [[_COMMUNITY_Development Methodology|Development Methodology]]
- [[_COMMUNITY_Model Response and Usage Tracking|Model Response and Usage Tracking]]
- [[_COMMUNITY_Local Agents Path Resolution|Local Agents Path Resolution]]
- [[_COMMUNITY_Project README Overview|Project README Overview]]
- [[_COMMUNITY_Function Block Contract Syntax|Function Block Contract Syntax]]
- [[_COMMUNITY_Admin Event Stream Specification|Admin Event Stream Specification]]
- [[_COMMUNITY_Spec Pinning Documentation|Spec Pinning Documentation]]
- [[_COMMUNITY_Turn Status and Timing Data|Turn Status and Timing Data]]
- [[_COMMUNITY_Error Code and Worker Phase Handling|Error Code and Worker Phase Handling]]
- [[_COMMUNITY_CLI and TUI Contract Amendments|CLI and TUI Contract Amendments]]
- [[_COMMUNITY_Admin API Key Management|Admin API Key Management]]
- [[_COMMUNITY_CLI Contract Details|CLI Contract Details]]
- [[_COMMUNITY_Description Synthesis for Picker|Description Synthesis for Picker]]
- [[_COMMUNITY_Canonical Sync Pinning Utility|Canonical Sync Pinning Utility]]
- [[_COMMUNITY_Malformed SSE Frame Testing|Malformed SSE Frame Testing]]
- [[_COMMUNITY_Session Creation Endpoint Tests|Session Creation Endpoint Tests]]
- [[_COMMUNITY_Turn Submission Endpoint Tests|Turn Submission Endpoint Tests]]
- [[_COMMUNITY_Server-Side End User ID Handling|Server-Side End User ID Handling]]
- [[_COMMUNITY_Application Creation and Routing|Application Creation and Routing]]
- [[_COMMUNITY_Frontmatter and Dependency Management|Frontmatter and Dependency Management]]
- [[_COMMUNITY_User Agent Versioning|User Agent Versioning]]
- [[_COMMUNITY_Architecture Overview|Architecture Overview]]
- [[_COMMUNITY_Session Lifecycle Amendment|Session Lifecycle Amendment]]
- [[_COMMUNITY_Ad-Hoc Session Lifecycle|Ad-Hoc Session Lifecycle]]
- [[_COMMUNITY_Cursor Envelope and Pagination|Cursor Envelope and Pagination]]
- [[_COMMUNITY_SSE Client Contract|SSE Client Contract]]
- [[_COMMUNITY_Session Lifecycle Contract|Session Lifecycle Contract]]
- [[_COMMUNITY_Development Principles|Development Principles]]
- [[_COMMUNITY_Default Agent Routing Amendment|Default Agent Routing Amendment]]
- [[_COMMUNITY_Stream Turn Enhancements|Stream Turn Enhancements]]
- [[_COMMUNITY_Rate Limiting and Token Management|Rate Limiting and Token Management]]
- [[_COMMUNITY_Client Reconnect Guidance|Client Reconnect Guidance]]
- [[_COMMUNITY_Ephemeral Session Continuity|Ephemeral Session Continuity]]
- [[_COMMUNITY_Session CRUD Operations|Session CRUD Operations]]
- [[_COMMUNITY_Session Failure Modes and Responses|Session Failure Modes and Responses]]
- [[_COMMUNITY_Community 99|Community 99]]
- [[_COMMUNITY_Event Metadata|Event Metadata]]
- [[_COMMUNITY_Persistent Memory Overview|Persistent Memory Overview]]
- [[_COMMUNITY_Contract Drift Check|Contract Drift Check]]
- [[_COMMUNITY_SSE Empty Data Handling|SSE Empty Data Handling]]
- [[_COMMUNITY_Stream Turn Endpoint Tests|Stream Turn Endpoint Tests]]
- [[_COMMUNITY_Upstream Turn ID Cancellation|Upstream Turn ID Cancellation]]
- [[_COMMUNITY_Triadic Block Routing|Triadic Block Routing]]
- [[_COMMUNITY_Constraints and Subsections|Constraints and Subsections]]
- [[_COMMUNITY_Authorization Model for Agents|Authorization Model for Agents]]
- [[_COMMUNITY_SSE Content Data|SSE Content Data]]
- [[_COMMUNITY_Cancelled Message Handling|Cancelled Message Handling]]
- [[_COMMUNITY_Implicit Tool Call Narration|Implicit Tool Call Narration]]
- [[_COMMUNITY_Canonical Drift Calculation|Canonical Drift Calculation]]
- [[_COMMUNITY_Agent Source vs Live Editing|Agent Source vs Live Editing]]
- [[_COMMUNITY_Agent Context Discriminator|Agent Context Discriminator]]
- [[_COMMUNITY_SSE No ID Frame Handling|SSE No ID Frame Handling]]
- [[_COMMUNITY_Local Settings Permissions|Local Settings Permissions]]
- [[_COMMUNITY_MCP Tool Annotations on STEPS|MCP Tool Annotations on STEPS]]
- [[_COMMUNITY_External Invariants Frontmatter|External Invariants Frontmatter]]
- [[_COMMUNITY_Scenario Trace Test Categorization|Scenario Trace Test Categorization]]
- [[_COMMUNITY_OpenSpec Revisions Frontmatter|OpenSpec Revisions Frontmatter]]
- [[_COMMUNITY_Flexibility Annotation on STEPS|Flexibility Annotation on STEPS]]
- [[_COMMUNITY_Issue-Scoped Frontmatter Shape|Issue-Scoped Frontmatter Shape]]
- [[_COMMUNITY_Plan Revision Huginn Pattern|Plan Revision Huginn Pattern]]
- [[_COMMUNITY_Admin Session Inspection Amendment|Admin Session Inspection Amendment]]
- [[_COMMUNITY_Pending Task Visibility Amendment|Pending Task Visibility Amendment]]
- [[_COMMUNITY_SSE Phase Events Amendment|SSE Phase Events Amendment]]
- [[_COMMUNITY_Tier 3 Consumer-Defined Agents Amendment|Tier 3 Consumer-Defined Agents Amendment]]
- [[_COMMUNITY_No Worldtree Imports Test|No Worldtree Imports Test]]
- [[_COMMUNITY_Ratatoskr Worldtree API TUI|Ratatoskr Worldtree API TUI]]
- [[_COMMUNITY_Ratatoskr Web Browser Debug Companion|Ratatoskr Web Browser Debug Companion]]
- [[_COMMUNITY_Community 132|Community 132]]
- [[_COMMUNITY_Community 133|Community 133]]
- [[_COMMUNITY_Community 134|Community 134]]
- [[_COMMUNITY_Community 135|Community 135]]
- [[_COMMUNITY_Community 136|Community 136]]
- [[_COMMUNITY_Community 137|Community 137]]
- [[_COMMUNITY_Community 138|Community 138]]
- [[_COMMUNITY_Community 139|Community 139]]
- [[_COMMUNITY_Community 140|Community 140]]
- [[_COMMUNITY_Community 141|Community 141]]
- [[_COMMUNITY_Community 142|Community 142]]
- [[_COMMUNITY_Community 143|Community 143]]
- [[_COMMUNITY_Community 144|Community 144]]
- [[_COMMUNITY_Community 145|Community 145]]
- [[_COMMUNITY_Community 146|Community 146]]
- [[_COMMUNITY_Community 147|Community 147]]
- [[_COMMUNITY_Community 148|Community 148]]
- [[_COMMUNITY_Community 149|Community 149]]
- [[_COMMUNITY_Community 150|Community 150]]
- [[_COMMUNITY_Community 151|Community 151]]

## God Nodes (most connected - your core abstractions)
1. `TuiPresenterState` - 84 edges
2. `Done` - 78 edges
3. `Cancelled` - 78 edges
4. `ParsedArgs` - 77 edges
5. `SseId` - 75 edges
6. `LocalAgentEntry` - 74 edges
7. `RatatoskrApp` - 73 edges
8. `Text` - 71 edges
9. `WorkerPhase` - 68 edges
10. `ToolStart` - 67 edges

## Surprising Connections (you probably didn't know these)
- `test_build_app_from_env_builds_app_with_routes()` --calls--> `build_app_from_env()`  [INFERRED]
  tests/test_provider_serve.py → src/ratatoskr/provider/serve.py
- `test_build_app_from_env_requires_heimdall_key()` --calls--> `build_app_from_env()`  [INFERRED]
  tests/test_provider_serve.py → src/ratatoskr/provider/serve.py
- `test_get_absent_returns_none()` --calls--> `open_affect_store()`  [INFERRED]
  tests/test_provider_affect.py → src/ratatoskr/provider/affect_store.py
- `test_open_advertises_capability_and_schema()` --calls--> `open_affect_store()`  [INFERRED]
  tests/test_provider_affect.py → src/ratatoskr/provider/affect_store.py
- `test_reopen_existing_file_is_idempotent()` --calls--> `open_affect_store()`  [INFERRED]
  tests/test_provider_affect.py → src/ratatoskr/provider/affect_store.py

## Import Cycles
- None detected.

## Communities (152 total, 28 thin omitted)

### Community 0 - "TuiPresenterState Management"
Cohesion: 0.05
Nodes (40): Per-turn presenter state for TUI mode (issue #12).      See `docs/contracts/issu, TuiPresenterState, _make_tui_done(), _mounted_renderables(), current_invokes_callback_with_snapshot: AffectUpdate(current, snapshot), scheduled_does_not_invoke_callback: status=scheduled has no snapshot,         so, callback_exception_swallowed: a raising callback does NOT crash the         pres, done_label_styled_success [v0.9.0]: [done] label mounts as Static         carryi (+32 more)

### Community 1 - "EventSource SSE Consumer"
Cohesion: 0.08
Nodes (14): Sync entry point — delegates to the async resolve-then-run flow.      Per issue, run_tui(), happy_new_session_resolve [happy]: --new path through _resolve_then_run., happy_new_with_end_user_id_resolve [happy]: args.end_user_id threads into POST b, user_agent_header_sent [trace]: outbound requests carry the ratatoskr User-Agent, alt_screen_never_opens_on_resolve_error [trace]: 404 → run_tui=12; run_async unh, session_api_failed_on_resolve [error]: --new + 500 → [session_api_failed] stderr, network_error_on_resolve [error]: --new + ConnectError → [network_error] stderr. (+6 more)

### Community 2 - "Parsed CLI Arguments Handling"
Cohesion: 0.14
Nodes (73): NamedTuple, ParsedArgs, Resolved CLI invocation. Post-validation: exactly one of session_id / new is set, AgentInfo, Worldtree agent envelope from GET /agents (issue #8).      INV-005: required fie, AffectUpdate, AwaitingLlmFirstToken, Cancelled (+65 more)

### Community 3 - "Agent Information Management"
Cohesion: 0.08
Nodes (86): AgentInfo, ComposeResult, EventSource, Exception, FileResponse, _ArgparseError, _AuthError, Raised when no API key is resolvable; mapped to exit code 11 by main(). (+78 more)

### Community 4 - "TUI Tests and Contract Verification"
Cohesion: 0.13
Nodes (17): _args_existing(), Type content into the input and submit; wait for worker to finish., happy_text_done_no_double_print [happy,tracer, v0.9.0]:         Text("hello") mo, raw_flag_skips_markdown_render [trace, v0.9.0]:         With --raw, the response, error_terminal_returns_to_idle [happy]: …, cancelled_terminal_returns_to_idle [happy]: …, active_turn_id_set_on_first_event [trace]: …, connection_dropped_returns_to_idle [error]: … (+9 more)

### Community 5 - "CLI Arguments Parsing Contract"
Cohesion: 0.04
Nodes (26): main(), _parse_args(), argparse + env-fallback + xor-validation per the contract., Sync entry point. Maps UsageError/_AuthError to exit codes BEFORE the event loop, happy_existing_session: --send --session --api-key → ParsedArgs with session_id., api_key_from_env: WORLDTREE_API_KEY env var fills in when --api-key omitted., server_default: no --server, no WORLDTREE_API_URL → http://localhost:8000., server_env_fallback: WORLDTREE_API_URL fills in when --server omitted. (+18 more)

### Community 6 - "Sync Entry Point and Session Resolution"
Cohesion: 0.17
Nodes (7): POST a message and yield typed Events. See contract FN stream_turn., stream_turn(), session_not_found: 404 -> SseConnectFailed(status=404)., malformed_id_no_seq: id `42` (missing :seq) -> MalformedSseId; no event yielded., malformed_id_alpha: id `foo:bar` -> MalformedSseId., INV-001: empty stream (no events at all) -> SseConnectionDropped(None)., ERROR_ROUTING: SseConnectFailed.body is truncated to <= 1024 bytes.

### Community 7 - "Stream Turn Rendering and Cancellation"
Cohesion: 0.05
Nodes (53): _amain(), Drive stream_turn, render events, race against sigint_event for mid-stream cance, Async orchestrator: create-session (if --new) → SIGINT install → _run_turn → cle, Raised on argument violations; mapped to exit code 10 by main()., _run_turn(), UsageError, SSE event `text_boundary`: speakable breakpoint after a `text` event., TextBoundary (+45 more)

### Community 8 - "Worldtree Session Client"
Cohesion: 0.04
Nodes (47): AgentNotAvailable, AuthScopeDenied, get_persona_state(), InvalidCursor, list_sessions(), PersonaNotConfigured, Worldtree Conversation API session-lifecycle client.  Implements docs/contracts/, Raised on HTTP 404 `agent_not_available` from GET persona_state.      The agent_ (+39 more)

### Community 9 - "Tier 3 Agent Lifecycle Client"
Cohesion: 0.08
Nodes (19): _args_new(), Construct RatatoskrApp with pre-resolved state (issue #6 lifecycle).      Produc, happy_new_session_mount [happy,tracer]: identity populated from pre-resolved sta, footer_identity_visible_first_frame [trace]: identity widget rendered first fram, main_row_is_horizontal [tracer]: compose() yields Horizontal#main-row., left_column_content_only [v0.9.0]: left column = transcript-scroll         Verti, right_column_has_tabbed_content_with_tools_tab: #side-panes + TabPane#tools-tab., tools_log_inside_tools_tab: tools-transcript RichLog is a descendant of tools-ta (+11 more)

### Community 10 - "CLI Presenter State Management"
Cohesion: 0.11
Nodes (36): Any, Connection, build_affect_provider_app(), _ctx_actor(), open_affect_store(), RatatoskrAffectStore, SQLite-backed, conduit-opaque affect store (Bifrost affect plane, v1).  Contract, Read-back of the stored snapshot (tests / future rehydrate-seed). (+28 more)

### Community 11 - "Ratatoskr Application Argument Handling"
Cohesion: 0.07
Nodes (26): CliPresenterState, _format_duration_ms(), Auto-scale duration formatting per issue #12 INV-006. Locale-blind., Per-turn presenter state for `--send` mode (issue #12).      See `docs/contracts, Render one Worldtree SSE event with editorial hierarchy + coalescing., _make_done(), Tests for the new CliPresenterState — per issue #12 contract., thinking_coalesce_single_run [happy,tracer]:         Thinking("hello") + Thinkin (+18 more)

### Community 12 - "Stream Turn Event Processing"
Cohesion: 0.14
Nodes (8): happy_one_text_done: text then done; same turn_id; iter ends after done., error_terminal: text then error; iteration ends; error_code populated., connection_drop: RemoteProtocolError after one text -> SseConnectionDropped((42,, no_text_aggregation: consumer yields each text event separately; no concat., Compose one SSE event in wire format. Trailing blank line per spec., current_status_parsed_with_snapshot [tracer]: status=current carries         the, scheduled_status_parsed_no_snapshot [trace]: status=scheduled carries         no, _sse_chunk()

### Community 13 - "Local Tier 3 Agent Index Management"
Cohesion: 0.07
Nodes (43): LocalAgentEntry, Namespace, add_local_agent(), load_local_agents(), _local_agents_path(), LocalAgentEntry, make_description(), Local index of tier-3 agents defined via `python -m ratatoskr.tier3`.  Workaroun (+35 more)

### Community 14 - "Ratatoskr Application Core"
Cohesion: 0.07
Nodes (19): _cancel_via_sse(), Populate identity widget from pre-resolved state; set idle hint.          Per is, Hydrate persona-header + Persona pane via GET /agents/{id}/persona_state., Render an italic-dim placeholder in the Persona pane; keep header empty., v0.6.0: turn-ID headers across every pane for cross-pane         correlation. v0, Set the hint state attribute AND update the visible Static widget., Write a timestamped audit line to the debug pane.          v0.10.0: shared sink, Set self.state with debug-pane audit log.          Every state machine transitio (+11 more)

### Community 15 - "Async Main Orchestrator"
Cohesion: 0.17
Nodes (7): happy_submit_echoes_and_spawns [happy,tracer]: …, empty_submit_no_op [trace]: '' + Enter → no change; no worker spawned., submit_during_streaming_shows_busy_notice [adversarial]: …, submit_during_cancelling_shows_busy_notice [adversarial]: …, sse_connect_failed_returns_to_idle [error]: …, Patch RichLog.write AND VerticalScroll.mount to record every renderable     or m, _spy_writes()

### Community 16 - "Contract Parsing and Function Extraction"
Cohesion: 0.10
Nodes (34): Contract, ErrorSpec, _extract_function_blocks(), FunctionBlock, _is_issue_scoped(), main(), _parse_body_sections(), parse_contract() (+26 more)

### Community 17 - "Behavioral Guidelines Documentation"
Cohesion: 0.06
Nodes (29): 1. Think Before Coding, 2. Simplicity First, 3. Surgical Changes, 4. Goal-Driven Execution, Architecture map, BEHAVIORAL GUIDELINES, Canonical Corviduo specifications, Contract-first workflow (+21 more)

### Community 18 - "Session API Client"
Cohesion: 0.07
Nodes (16): _parse_sse_id(), Parse the SSE wire `id:` as composite `{turn_id}:{seq}`. See contract FN _parse_, negative_seq [adversarial]: '42:-1' -> ValueError., trailing_whitespace [adversarial]: '42:3 ' -> ValueError (strict; no strip)., truncation [security]: 5000-char no-colon -> ValueError msg contains only raw[:6, PRE-001 hard: raw is a string -- isinstance check before parse., happy_simple [happy,tracer]: '42:3' -> SseId(turn_id=42, seq=3)., happy_seq_one: smallest valid id per spec — first event of first turn. (+8 more)

### Community 19 - "Tier 3 Error Handling"
Cohesion: 0.25
Nodes (5): _args_new_no_agent(), ParsedArgs for bare --new (no --agent) — TUI-mode picker entry., picker_happy_path [happy,tracer]: agents fetched → picker exits with id → create, picker_esc_clean_exit: picker returns None → exit 0; no create_session; no main, list_agents 500 → stderr [session_api_failed]; exit 20; picker NOT opened.

### Community 20 - "Web Packaging and CLI Argument Tests"
Cohesion: 0.07
Nodes (23): ArgumentParser, Packaging + lazy-import discipline tests for ratatoskr.web per issue #16.  - `in, FN main argparse + serve-loop traces (contract TESTS)., default_host_is_zero [trace]: argv=[] → host == '0.0.0.0'., port_zero_supported [trace]: argv=['--port','0'] → port == 0., static/index.html is locatable via importlib.resources.      INV-009 packaging d, happy_argv [tracer]: env set + uvicorn.run mocked → main returns 0., open_flag_calls_webbrowser [trace]: --open → webbrowser.open called. (+15 more)

### Community 21 - "Conversation API Specification"
Cohesion: 0.07
Nodes (26): Admin inspection endpoints, Appendix: `agent.ui_hints` config block, Authentication, Base URL, Client Implementation Guide, Custom exception handler status-code mapping, Endpoints, Error Codes (+18 more)

### Community 23 - "TUI Shell Implementation"
Cohesion: 0.15
Nodes (12): _format_usage(), Natural-language usage formatting per issue #12 INV-007.      `arrow="->"` for C, _audit_line(), _plain_label(), Ratatoskr Textual TUI shell — interactive primary presenter.  Implements docs/co, Pre-flight session resolution then App.run_async() inside one event loop.      E, Pre-amendment labeled-line shape for INV-009 render-exception fallback.      Use, HH:MM:SS.fff wall-clock timestamp for debug-pane log lines. (+4 more)

### Community 24 - "Contract Amendments for Presenter States"
Cohesion: 0.09
Nodes (22): Acceptance, `_amain` STEPS amended, Architecture, `CLASS CliPresenterState` (NEW), `CLASS TuiPresenterState` (NEW), Constraints, Context, Data flow (+14 more)

### Community 25 - "Session Creation API"
Cohesion: 0.05
Nodes (22): create_session(), list_agents(), POST /sessions to create a new session. See contract FN create_session.      Per, GET /agents — list available agents. See contract FN list_agents (issue #8)., AsyncClient, validation_failed: 422 -> SessionApiFailed(status=422); body truncated., unexpected_status_truncates: 500 + 5000-byte body -> SessionApiFailed; body == 1, empty_agent_id [adversarial]: '' -> AssertionError; no HTTP issued. (+14 more)

### Community 26 - "Web Server Endpoint Handling"
Cohesion: 0.09
Nodes (33): JSONResponse, Request, v0.16.0 — cancel paths must target the UPSTREAM turn_id, not the     browser-loc, A registered handle whose local turn_id (1) differs from its         captured up, A handle with upstream_turn_id still None (turn never opened the         upstrea, stream_turn_endpoint INV-005 — browser disconnect mid-stream triggers     upstre, TestDisconnectCancel, TestUpstreamTurnIdCancel (+25 more)

### Community 27 - "SSE ID Parsing"
Cohesion: 0.19
Nodes (17): _check(), _load_fixture(), Drift-detection between TUI presentation discipline and web JS presenter per iss, Assert (event_type, data) for `event` matches the fixture entry., test_affect_update_matches_fixture(), test_awaiting_llm_first_token_matches_fixture(), test_cancelled_matches_fixture(), test_done_matches_fixture() (+9 more)

### Community 29 - "Agent Deletion and Authentication"
Cohesion: 0.50
Nodes (3): lifespan_shutdown FN — INV-006: drain turn_registry within 5s budget., happy [tracer]: 2 in-flight turns + shutdown → upstream cancels called., TestLifespanShutdown

### Community 31 - "Browser SSE Stream Parsing"
Cohesion: 0.14
Nodes (16): _parse_browser_sse(), AsyncByteStream, Response, Tests for ratatoskr.web.server per docs/contracts/issues/16.contract.md.  The Te, SSE response backed by a live AsyncByteStream (for gated/hanging     streams in, Parse a server-to-browser SSE stream into [{"event": str, "data": dict}, ...]., happy [tracer]: respx mock one text+done → SSE stream yields text + done events., The stream generator captures upstream turn_id from the first         event's ss (+8 more)

### Community 32 - "Canonical Sync Documentation"
Cohesion: 0.12
Nodes (16): As a canonical consumer (you pin against someone else's spec), As a canonical publisher (your project owns a spec others should pin), Bump procedures, Canonical-sync — the pattern, the tooling, and the documented adopters, Cross-references, Decision rule (which path?), Documented adopters, How to adopt (+8 more)

### Community 33 - "Conversation API Contract Details"
Cohesion: 0.12
Nodes (16): Amendment — Admin Event Stream (issue #127), Bifrost MCP-in-Reverse Binding (issue #160), Constraints, Context, Data flow, Ephemeral Template Surface (issue #161), Function-level contracts: Search (issue #122), Function-level contracts: Tool-Call Persistence (issue #123) (+8 more)

### Community 34 - "Design Brief and Architecture Decisions"
Cohesion: 0.12
Nodes (16): 1. TUI framework — recommend Textual, 2. Repo placement and version-skew strategy, 3. SSE consumption pattern — recommend `httpx-sse`, 4. Session model — recommend (a) single-session, auto-resume, plus a startup picker, 5. Debug-observability surface — recommend multi-pane log dashboard, 6. Scope creep guards — frame is correct, one narrowing, 7. Naming — locked: Ratatoskr, 8. Terminal-mechanics and shape decisions (per Volva's fresh-look) (+8 more)

### Community 35 - "System Prompt Constraints"
Cohesion: 0.12
Nodes (15): BEHAVIORAL CONSTRAINTS, CORE DIRECTIVE, EMOTIONAL TEMPERATURE, FAILURE & RESURFACING, FORM ASSUMPTION, GENDER CONSTRAINT, GRATIFICATION & MOMENTUM, IDENTITY (+7 more)

### Community 36 - "Mood and Emotion Tracking"
Cohesion: 0.12
Nodes (16): arousal, dominance, pleasure, snapshot, arousal_delta, valence_delta, arousal, dominance (+8 more)

### Community 37 - "Web Server Functional Tests"
Cohesion: 0.50
Nodes (3): root_endpoint FN + /static mount — index.html + static asset serving., happy [tracer]: GET / → 200, content-type text/html, body contains '<html'., TestStaticServing

### Community 38 - "Upload Management and Capabilities"
Cohesion: 0.13
Nodes (15): Agent capability: `accepts_uploads`, Attaching uploads to messages, Auth scopes, Capability vocabulary, DELETE /uploads/{upload_id}, Dispatch channels, Endpoints, Example JavaScript client (upload-then-reference) (+7 more)

### Community 39 - "Tier 3 Agent Patching Tests"
Cohesion: 0.22
Nodes (8): Concurrency, Constraints, Context, Data flow, Division of labor (library vs store), Integration points, Invariants, Out of scope (deferred — do NOT flag as drift)

### Community 40 - "Agent Documentation and Attribution"
Cohesion: 0.14
Nodes (13): Attribution, Bootstrap protocol, Branch + PR conventions, Communication, Cross-references, Guardrails, Out-of-scope for you (Codex), Persistent memory (+5 more)

### Community 41 - "Tier 3 Module Contract"
Cohesion: 0.14
Nodes (13): CLI surface (`python -m ratatoskr.tier3`), Context, ERROR_ROUTING (module + CLI), Exception classes, FN define_agent, FN delete_agent, FN patch_agent, Functions (+5 more)

### Community 42 - "Web Server Contract Updates"
Cohesion: 0.14
Nodes (13): CLI surface change (ratatoskr.cli amendment), Context, Data flow, ERROR_ROUTING (tui startup), FN list_agents, Functions, Invariants, Modified: _resolve_then_run (+5 more)

### Community 44 - "Web Server Contract Version 16"
Cohesion: 0.15
Nodes (12): Console script, Constraints, Context, Function blocks, Invariants, Module shape, Public functions, Public surface (+4 more)

### Community 45 - "SSE Event Types and Tooling"
Cohesion: 0.17
Nodes (12): affect_update, awaiting_llm_first_token, cancelled, done, error, POST /sessions/{session_id}/turns/{turn_id}/cancel, SSE Event Types, text (+4 more)

### Community 46 - "Cross-User Isolation and Task Management"
Cohesion: 0.17
Nodes (12): Cross-User Isolation (INV-069), Endpoints, In-Memory-Only Persistence (INV-067), `kind` enum (INV-071 — additive), Pending Tasks, PendingTask envelope (INV-070 — stable shape), Query parameters (both endpoints), Rate-Limit Exemption (INV-068) (+4 more)

### Community 47 - "Task Query Parameters and Results"
Cohesion: 0.17
Nodes (12): q, arguments, duration_ms, name, result, n, tool_result, data (+4 more)

### Community 48 - "TUI Contract Amendments"
Cohesion: 0.17
Nodes (11): Context, Data flow, ERROR_ROUTING (unchanged), Invariants, Keybindings (amendment), Layout shape (post-amendment), Layout-spec snapshot (after v0.5.0), Presenter routing (amendment to issue #12) (+3 more)

### Community 49 - "Session ID Support Contract"
Cohesion: 0.17
Nodes (11): Acceptance, Constraints, Context, Data flow, end_user_id support — POST /sessions parameter for per-user agents, In-place amendments (the work), Invariants, Issue #2 (`ratatoskr.sessions`) amendments (+3 more)

### Community 50 - "TUI Startup Error Visibility"
Cohesion: 0.17
Nodes (11): Acceptance, Architecture, Constraints, Context, Data flow, Dependencies, In-place amendments to issue #4 (the work), Invariants (+3 more)

### Community 51 - "TUI Contract Invariants and Amendments"
Cohesion: 0.17
Nodes (11): Acceptance, Constraints, Context, Data flow, In-place amendments (the work), Invariants, Issue #1 (`ratatoskr.sse_client`) amendments, Issue #3 (`ratatoskr.cli`) amendments (+3 more)

### Community 52 - "Turn Cancellation and Logging"
Cohesion: 0.20
Nodes (6): _cancel_and_log(), Ratatoskr CLI — non-interactive `--send` stdout presenter.  Implements docs/cont, Spawn-and-forget cancel that never raises (INV-009)., cancel_already_completed [scenario]: …, cancel_turn_not_found [scenario]: 404 → returns None; stderr CancelTurnNotFound., transport_error_swallowed [error]: …

### Community 53 - "Mock Client Factory for Persona State"
Cohesion: 0.21
Nodes (8): _mock_client_factory(), A client_factory that returns a no-base-url AsyncClient suitable     for respx-m, persona_state_endpoint FN — proxy upstream GET /agents/{id}/persona_state., happy [tracer]: respx 200 → 200 with snapshot., persona_not_configured [error]: 404 + persona_not_configured → 404 envelope., agent_not_available [error]: 404 + agent_not_available → 404 envelope., auth_scope_denied [error]: 403 + auth_scope_denied → 403 envelope., TestPersonaStateEndpoint

### Community 54 - "Turn Cancellation Endpoint"
Cohesion: 0.21
Nodes (8): cancel_turn_endpoint FN — proxy upstream cancel for registered turn., happy [tracer]: registered turn (upstream started) → POST cancel         → 200,, unknown_turn [error]: not in registry → 404., already_completed [race]: upstream 409 → 200 reason=race_or_completed., cancel_failed [error]: upstream 500 → 500 with cancel_failed envelope., TestCancelTurnEndpoint, create_app(), Construct the Starlette app — wire routes + state per FN create_app.      INV-00

### Community 55 - "Admin Event Stream and Tools"
Cohesion: 0.18
Nodes (11): Admin event, Auth, Cancelled-mid-flight semantics, Errors, Example client (JS), `GET /sessions/{session_id}/tool-events`, Opting in, Retention (+3 more)

### Community 56 - "BM25 Search Ranking and API"
Cohesion: 0.18
Nodes (11): BM25 ranking, Endpoint, Error codes, Example: curl, Example: JavaScript pagination loop, FTS5 query syntax, Legacy `created_at` caveat, Query parameters (+3 more)

### Community 57 - "Presentation Contract JSON"
Cohesion: 0.22
Nodes (8): affect_update, data, event_type, _contract_version, status, _provenance, text, event_type

### Community 59 - "Monkey Patching for Local Agents"
Cohesion: 0.18
Nodes (7): MonkeyPatch, local_dedup [scenario]: local entry with same agent_id as upstream → no duplicat, agents_endpoint FN — proxy upstream /agents + merge with local tier3 index., happy [tracer]: respx mock /agents 200 → response merges upstream + local index., upstream_500 [error]: respx 500 → 500 with error_code envelope., network_error [error]: connection refused → 502 with network_error envelope., TestAgentsEndpoint

### Community 60 - "Contract Format Specification"
Cohesion: 0.20
Nodes (9): 4. Module-level contracts, 5. Parsing rules, 6. Audit protocol, 7. Migration from v1.0, 8. When to write a contract, Contract Specification Format, File conventions, Light contract (+1 more)

### Community 61 - "Contract Version 2.1 Amendments"
Cohesion: 0.20
Nodes (10): 2.1.C — Hard/soft invariants with recovery windows, 2.1.F — A2A `agent_card:` frontmatter (multi-agent contracts), 2.1.K — Migration from v2.0 → v2.1, 2.1.L — Operational follow-ups (out-of-format-side, Brokkr-tracked), 2.1.M — R05 survey self-critique flags (for reviewers), Example, Example, Syntax (+2 more)

### Community 62 - "Agent and Session Management Endpoints"
Cohesion: 0.20
Nodes (10): `DELETE /agents/<user_id>:<agent_name>` — `204 No Content`, Endpoints, Error codes (Phase 2.0), `GET /sessions/<session_id>/tools` — owner-scoped tool introspection (#183, Phase 2.0.1), Key-revocation cascade, `PATCH /agents/<user_id>:<agent_name>`, `POST /agents/define`, `POST /sessions` — Tier 3 routing (+2 more)

### Community 63 - "Character Lifecycle and Management"
Cohesion: 0.20
Nodes (10): `DELETE /characters/{character_id}`, Errors, Example client (JS), `GET /characters/{character_id}/state`, `GET /models/available-for-characters`, Lifecycle, PII discipline, `POST /characters` (+2 more)

### Community 64 - "Development Methodology"
Cohesion: 0.20
Nodes (9): 1. Vor (optional), 2. Contract (required), 3. Branch — direct or AFK TDD, 4. Verify against contract, 5. Merge / commit, AFK TDD (sleipnir-shaped), Direct TDD, Methodology (+1 more)

### Community 65 - "Model Response and Usage Tracking"
Cohesion: 0.20
Nodes (10): model, response, usage, done, data, event_type, cached_input_tokens, completion_tokens (+2 more)

### Community 67 - "Project README Overview"
Cohesion: 0.20
Nodes (9): Boundary rule, Consumer-side discoveries, Quickstart, Ratatoskr, Read in this order, Related repos, Status, Version-skew strategy (+1 more)

### Community 68 - "Function Block Contract Syntax"
Cohesion: 0.22
Nodes (9): 3. Function blocks, Error blocks, Field reference, Postcondition syntax, Precondition syntax, State transitions, Step syntax — SCoT-typed, Syntax (+1 more)

### Community 69 - "Admin Event Stream Specification"
Cohesion: 0.22
Nodes (9): Admin Event Stream, Envelope shape, Example JS client, GET /admin/events, Heartbeat, In-memory ring buffer, Last-Event-ID resume semantics, Queue overflow and system.events_dropped (+1 more)

### Community 70 - "Spec Pinning Documentation"
Cohesion: 0.22
Nodes (8): Bump procedure, Conformance smoke check, Current pin, History, Pin history, Vendored artifacts, Why pin?, Worldtree spec pin

### Community 71 - "Turn Status and Timing Data"
Cohesion: 0.15
Nodes (14): awaiting_llm_first_token, data, event_type, cancelled, data, event_type, elapsed_ms_since_building_prompt, partial_message_id (+6 more)

### Community 72 - "Error Code and Worker Phase Handling"
Cohesion: 0.40
Nodes (5): error_code, message, error, data, event_type

### Community 73 - "CLI and TUI Contract Amendments"
Cohesion: 0.22
Nodes (8): Architecture, CLI amendments (issue #3 contract concurrent amendment), Constraints, Context, Data flow, Invariants, Out of scope, TUI shell — Textual app, single chat pane, two-stage Ctrl-C

### Community 74 - "Admin API Key Management"
Cohesion: 0.25
Nodes (8): Admin: API Key Management, Bootstrap: first admin key, DELETE /admin/keys/{key_id}, GET /admin/keys, POST /admin/keys, POST /admin/keys/{key_id}/rotate, Status codes, Trust boundary

### Community 75 - "CLI Contract Details"
Cohesion: 0.25
Nodes (7): Architecture, CLI — Non-interactive --send stdout presenter, Constraints, Context, Data flow, Invariants, Out of scope

### Community 77 - "Canonical Sync Pinning Utility"
Cohesion: 0.36
Nodes (7): main(), SHA-256 hash, first 16 hex chars., Replace the quoted value in a `key = "value"` line, preserving leading     white, Surgically update one pin's `pinned_sha256_16` + `pinned_at` lines in     the ma, _replace_value_preserve_format(), sha256_16(), update_pin_in_manifest_text()

### Community 78 - "Malformed SSE Frame Testing"
Cohesion: 0.25
Nodes (5): SSE frame with id + arbitrary raw data (for testing malformed JSON)., malformed_data_raises [error]: text + bad-JSON → yields Text then MalformedSseDa, whitespace_data_raises [adv]: single-space data → MalformedSseData (NOT skipped), malformed_data_truncation [security]: 5000-char bad data → raw truncated to 200., _sse_raw_chunk()

### Community 79 - "Session Creation Endpoint Tests"
Cohesion: 0.25
Nodes (5): create_session_endpoint FN — proxy POST /sessions to upstream., happy [tracer]: respx mock 201 → endpoint returns 201 with session JSON., unknown_agent [error]: respx 404 → 404 with agent_not_found envelope., missing_agent_id [adversarial]: body without agent_id → 400., TestCreateSessionEndpoint

### Community 80 - "Turn Submission Endpoint Tests"
Cohesion: 0.25
Nodes (5): submit_turn_endpoint FN — allocate turn_id, register in turn_registry., happy [tracer]: POST {"content": "hi"} → 200 with turn_id; registry populated., missing_content [adversarial]: body without content → 400., monotonic_turn_ids [trace]: two submits → second turn_id > first., TestSubmitTurnEndpoint

### Community 81 - "Server-Side End User ID Handling"
Cohesion: 0.25
Nodes (5): v0.16.0 — end_user_id is server-configured (RATATOSKR_END_USER_ID via     create, create_app(end_user_id=...) → POST /api/sessions threads that id         into th, A browser-supplied end_user_id is IGNORED — the server's         configured valu, When create_app gets no end_user_id, the upstream body omits it         (matches, TestServerSideEndUserId

### Community 82 - "Application Creation and Routing"
Cohesion: 0.25
Nodes (5): create_app FN — route registration + state wiring (contract TESTS)., routes_registered [tracer]: app.routes contains all 9 path patterns., state_attached [trace]: app.state.turn_registry is empty dict., factory_stored [trace]: app.state.client_factory is the same callable., TestCreateAppShape

### Community 83 - "Frontmatter and Dependency Management"
Cohesion: 0.29
Nodes (7): 1. Frontmatter, `complexity` guide, `dependencies:` — dispatch-ordering metadata (Sleipnir / preflight), Dependency fields — `depends_on` vs `dependencies`, `depends_on:` — module-architecture metadata, `prd` block — pinning a contract to its source-of-truth, Why two fields

### Community 84 - "User Agent Versioning"
Cohesion: 0.50
Nodes (3): version_endpoint FN — tracer per contract issue #16., happy [tracer]: GET /version → 200, body == {"ratatoskr": "<current-version>"}., TestVersionEndpoint

### Community 85 - "Architecture Overview"
Cohesion: 0.29
Nodes (6): Cross-references, Dependency graph, Execution order, Module map, ratatoskr — architecture, Session-load boundaries

### Community 86 - "Session Lifecycle Amendment"
Cohesion: 0.29
Nodes (7): Acceptance tests for the amendment, Amendment — turn lifecycle infrastructure (INV-033..INV-038), Cancel-registry shape delta, `cancel_turn` — STEPS amendment, Configuration, Storage schema delta, `stream_turn` — STEPS amendment

### Community 87 - "Ad-Hoc Session Lifecycle"
Cohesion: 0.29
Nodes (7): Ad-hoc session lifecycle, Capability requirement, Error responses, Per-Message Bifrost Endpoint Override (issue #166), Reentrancy cap, Request payload extension, Telemetry

### Community 88 - "Cursor Envelope and Pagination"
Cohesion: 0.29
Nodes (7): Cursor envelope, Error code, Forward iteration (client pseudocode), Pagination, Query parameters, Response shape, Semantics

### Community 89 - "SSE Client Contract"
Cohesion: 0.29
Nodes (6): Constraints, Context, Data flow, Invariants, Resume semantics, SSE Client — Worldtree Conversation API turn streaming

### Community 90 - "Session Lifecycle Contract"
Cohesion: 0.29
Nodes (6): Constraints, Context, Data flow, Invariants, Out of scope, Sessions — Worldtree Conversation API session lifecycle

### Community 91 - "Development Principles"
Cohesion: 0.29
Nodes (6): 1. Excellence over uniqueness, 2. Explicit over implicit, 3. Elegance is a byproduct, not a target, 4. Action-relevance over thoroughness, Principles, What this file is, and isn't

### Community 92 - "Default Agent Routing Amendment"
Cohesion: 0.33
Nodes (6): Amendment — Default agent (Lofn) routing (issue #182), Function block, Handoff: no surface added, Invariants, No new storage, no new audit events, Request-model change

### Community 93 - "Stream Turn Enhancements"
Cohesion: 0.33
Nodes (6): Changes to `stream_turn`, Invariants added by issue #166, New ErrorCode, New Request Model, Per-Message Bifrost Endpoint Override (issue #166), Validation and handshake flow (in `send_message` handler)

### Community 94 - "Rate Limiting and Token Management"
Cohesion: 0.33
Nodes (6): 429 Response, Configuration (`config/defaults.yaml`), Rate Limiting, Scopes, Successful response headers (X-RateLimit-*), Token-rate post-charge

### Community 95 - "Client Reconnect Guidance"
Cohesion: 0.33
Nodes (6): Client reconnect guidance, Reconnect flow, Reconnect & Resume, Replay buffer, SSE id format, Status codes for resume requests

### Community 96 - "Ephemeral Session Continuity"
Cohesion: 0.33
Nodes (6): Continuity, Default agent (Lofn) (issue #182), `end_user_id` is required, Matrix bridge, Request shape, What Lofn does

### Community 97 - "Session CRUD Operations"
Cohesion: 0.33
Nodes (6): Creating an ephemeral session, Discovering available templates, Ephemeral Templates (issue #161), Scope, Sending messages to an ephemeral session, What Saga does NOT do

### Community 98 - "Session Failure Modes and Responses"
Cohesion: 0.33
Nodes (6): DELETE /sessions/{session_id}, GET /sessions/{session_id}, GET /sessions/{session_id}/messages, PATCH /sessions/{session_id}, POST /sessions/{session_id}/messages, Session Mutation

### Community 99 - "Community 99"
Cohesion: 0.33
Nodes (6): Failure mode, GET /me, Key resolution rule (best-effort identification), Response fields, Response shapes, Status codes

### Community 100 - "Event Metadata"
Cohesion: 0.33
Nodes (6): char_offset, kind, ts, text_boundary, data, event_type

### Community 101 - "Persistent Memory Overview"
Cohesion: 0.33
Nodes (5): Current state / in-flight, Persistent memory — ratatoskr, Recent decisions, Repo purpose, Tried and abandoned

### Community 102 - "Contract Drift Check"
Cohesion: 0.60
Nodes (5): fetch_issue_state(), load_frontmatter(), main(), Any, sha16()

### Community 103 - "SSE Empty Data Handling"
Cohesion: 0.33
Nodes (4): SSE frame with id but empty data (server-emitted keepalive shape)., empty_data_skipped [trace]: 4 frames in, 3 events out; skip preserves last_sse_i, empty_skip_does_not_advance [trace]: drop-after-empty → last_seen is last real e, _sse_empty_chunk()

### Community 104 - "Stream Turn Endpoint Tests"
Cohesion: 0.33
Nodes (4): stream_turn_endpoint FN — open upstream SSE, proxy events to browser., unknown_turn [error]: GET with turn_id not in registry → 404., upstream_error [error]: respx 500 → synthetic error SSE event., TestStreamTurnEndpoint

### Community 106 - "Triadic Block Routing"
Cohesion: 0.40
Nodes (5): 2.1.A — `ERROR_ROUTING:` triadic block (SHIELDA), Example, Syntax, v2.0 back-compat, Why three axes

### Community 107 - "Constraints and Subsections"
Cohesion: 0.40
Nodes (5): 2. Body, Constraints format, Invariant format, Optional subsections, Required subsections

### Community 108 - "Authorization Model for Agents"
Cohesion: 0.40
Nodes (5): Authorization model — agent invocation, Common pitfalls, Quick decision table for consumers, Tier 1 — foundational agents (no `:` in agent_id), Tier 3 — consumer-defined agents (`:` in agent_id)

### Community 109 - "SSE Content Data"
Cohesion: 0.40
Nodes (6): content, sse_id, data, thinking, data, event_type

### Community 110 - "Cancelled Message Handling"
Cohesion: 0.22
Nodes (8): Concurrency, Constraints, Context, Data flow, Division of labor (library vs store), Integration points, Invariants, Out of scope (deferred — do NOT flag as drift)

### Community 111 - "Implicit Tool Call Narration"
Cohesion: 0.50
Nodes (4): Implicit tool-call narration, `text_boundary` SSE event, `voice.classifier_markers` per-agent config, Voice Harness

### Community 112 - "Canonical Drift Calculation"
Cohesion: 0.60
Nodes (4): main(), Path, SHA-256 hash of file contents, first 16 hex chars., sha256_16()

### Community 113 - "Agent Source vs Live Editing"
Cohesion: 0.50
Nodes (3): agents/, Files, Source-vs-live: editing a file does not change the agent

### Community 114 - "Agent Context Discriminator"
Cohesion: 0.50
Nodes (4): `AgentContext` discriminator, Amendment — AwaitingLLMFirstToken heartbeat (issue #201, INV-201-1..7), Mechanism note, Storage extension

### Community 115 - "SSE No ID Frame Handling"
Cohesion: 0.50
Nodes (3): SSE frame with NO id line + arbitrary data (v0.8.1: keepalive shape)., empty_id_on_first_event_skipped [v0.8.1]: stream starts with an         event ca, _sse_no_id_chunk()

### Community 117 - "MCP Tool Annotations on STEPS"
Cohesion: 0.67
Nodes (3): 2.1.B — MCP tool annotations on STEPS, Example, Syntax

### Community 118 - "External Invariants Frontmatter"
Cohesion: 0.67
Nodes (3): 2.1.D — `external_invariants:` frontmatter, Example, Syntax

### Community 119 - "Scenario Trace Test Categorization"
Cohesion: 0.67
Nodes (3): 2.1.E — Scenario / trace / adversarial / property test categories, Examples, Syntax

### Community 120 - "OpenSpec Revisions Frontmatter"
Cohesion: 0.67
Nodes (3): 2.1.G — OpenSpec-style `revisions:` frontmatter, Example, Syntax

### Community 121 - "Flexibility Annotation on STEPS"
Cohesion: 0.67
Nodes (3): 2.1.H — `flexibility:` annotation on STEPS, Example, Syntax

### Community 122 - "Issue-Scoped Frontmatter Shape"
Cohesion: 0.67
Nodes (3): 2.1.I — Issue-scoped frontmatter shape (codification), Issue-scoped frontmatter, Parser kind-aware branching (parser-side follow-up)

### Community 123 - "Plan Revision Huginn Pattern"
Cohesion: 0.67
Nodes (3): 2.1.J — Plan revision idiom (Huginn pattern), Pattern, When to use

### Community 124 - "Admin Session Inspection Amendment"
Cohesion: 0.67
Nodes (3): Amendment — Admin Session Inspection (issue #176), Function blocks, Invariants added

### Community 125 - "Pending Task Visibility Amendment"
Cohesion: 0.67
Nodes (3): Amendment: Pending-Task Visibility (issue #119), New function blocks, New invariants

### Community 126 - "SSE Phase Events Amendment"
Cohesion: 0.67
Nodes (3): Amendment — SSE phase events (issue #151, INV-053..INV-061), Integration notes, New invariants

### Community 127 - "Tier 3 Consumer-Defined Agents Amendment"
Cohesion: 0.67
Nodes (3): Amendment — Tier 3 consumer-defined agents (issue #181, Phase 2.0), Invariants (Phase 2.0 scope), Persona-state observability (issue #204)

### Community 133 - "Community 133"
Cohesion: 0.14
Nodes (9): _format_persona_detail(), _format_persona_header(), Update sticky header + Persona pane from a fresh snapshot.          Called on bo, One-line persona summary for the sticky header widget.      Shape: `agent_id · d, Multi-line persona detail for the Persona TabPane.      Renders the full v0.28.0, header_compact_summary: agent_id · dominant_emotion · pad(P,A,D) · N emotions., header_singular_emotion: single emotion → '1 emotion active' (no 's')., header_no_emotions_drops_count: empty emotions list → no count suffix. (+1 more)

### Community 135 - "Community 135"
Cohesion: 0.28
Nodes (7): build_app_from_env(), main(), Runnable entrypoint: serve the affect provider as an ASGI app.  For the live neg, Build the affect ASGI app from environment config (testable seam)., Tests for the affect-provider serve entrypoint (ratatoskr.provider.serve).  Only, test_build_app_from_env_builds_app_with_routes(), test_build_app_from_env_requires_heimdall_key()

### Community 143 - "Community 143"
Cohesion: 0.04
Nodes (66): Raised on unexpected response status from /sessions endpoints.      `body` is tr, SessionApiFailed, define_agent(), delete_agent(), _extract_error_code(), _extract_error_field(), _parse_tier3_agent_info(), patch_agent() (+58 more)

## Knowledge Gaps
- **538 isolated node(s):** `Context`, `Data flow`, `Invariants`, `Out of scope`, `Constraints` (+533 more)
  These have ≤1 connection - possible missing edges or undocumented components.
- **28 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.

## Suggested Questions
_Questions this graph is uniquely positioned to answer:_

- **Why does `LocalAgentEntry` connect `Local Tier 3 Agent Index Management` to `TuiPresenterState Management`, `Parsed CLI Arguments Handling`, `Web Server Functional Tests`, `Stream Turn Endpoint Tests`, `Community 143`, `Session Creation Endpoint Tests`, `Server-Side End User ID Handling`, `Application Creation and Routing`, `Turn Submission Endpoint Tests`, `User Agent Versioning`, `Mock Client Factory for Persona State`, `Turn Cancellation Endpoint`, `Web Server Endpoint Handling`, `Monkey Patching for Local Agents`, `Agent Deletion and Authentication`, `Browser SSE Stream Parsing`?**
  _High betweenness centrality (0.081) - this node is a cross-community bridge._
- **Why does `SessionApiFailed` connect `Community 143` to `TuiPresenterState Management`, `Parsed CLI Arguments Handling`, `Agent Information Management`, `Stream Turn Rendering and Cancellation`, `Worldtree Session Client`, `Ratatoskr Application Argument Handling`, `Local Tier 3 Agent Index Management`, `Session Creation API`, `Web Server Endpoint Handling`?**
  _High betweenness centrality (0.044) - this node is a cross-community bridge._
- **Why does `create_app()` connect `Turn Cancellation Endpoint` to `Agent Information Management`, `Web Server Functional Tests`, `Stream Turn Endpoint Tests`, `Session Creation Endpoint Tests`, `Turn Submission Endpoint Tests`, `Server-Side End User ID Handling`, `Application Creation and Routing`, `User Agent Versioning`, `Mock Client Factory for Persona State`, `Web Packaging and CLI Argument Tests`, `Web Server Endpoint Handling`, `Monkey Patching for Local Agents`, `Agent Deletion and Authentication`, `Browser SSE Stream Parsing`?**
  _High betweenness centrality (0.044) - this node is a cross-community bridge._
- **Are the 51 inferred relationships involving `TuiPresenterState` (e.g. with `ParsedArgs` and `AgentInfo`) actually correct?**
  _`TuiPresenterState` has 51 INFERRED edges - model-reasoned connections that need verification._
- **Are the 75 inferred relationships involving `Done` (e.g. with `AgentInfo` and `ComposeResult`) actually correct?**
  _`Done` has 75 INFERRED edges - model-reasoned connections that need verification._
- **Are the 75 inferred relationships involving `Cancelled` (e.g. with `AgentInfo` and `ComposeResult`) actually correct?**
  _`Cancelled` has 75 INFERRED edges - model-reasoned connections that need verification._
- **Are the 73 inferred relationships involving `ParsedArgs` (e.g. with `AgentInfo` and `ComposeResult`) actually correct?**
  _`ParsedArgs` has 73 INFERRED edges - model-reasoned connections that need verification._