Canonical user-story catalog. Used for Playwright tests (via MCP inspector pattern) + Claude Design input for a future visualization UI (likely hosted on RuneFort).
Scope: Continual-learning knowledge-graph engine. MCP-only today; web visualizer planned. Unit-test surface covered: test/** (573 tests).
Persona: Device manufacturer embedding LLMs on IoT hardware
Goal: Deploy a 3B-param model on edge that improves over time without retraining
Prerequisite: Model on device; SQLite local; MCP stdio available
Steps:
Initialize Graphonomous: mix run -- --db ~/.graphonomous/knowledge.db
Agent receives query: "How do I set the temperature?"
Retriever injects relevant graph context (prior queries, procedures, facts)
LLM generates response (inference external — Graphonomous doesn't run it)
Learner extracts entities/relationships → new nodes, updated edges
System records outcome signal (success? user satisfied?)
Success: After ~100 queries, graph contains domain-specific knowledge; similar questions answered faster
Covers: retriever.ex, learner.ex, novelty_detector.ex, graph CRUD, SQLite storage, outcome ingestion — ~80 unit tests
UI status: mcp-only; Phoenix LiveView dashboard planned for server mode
Claude Design hook: Graph growth timeline (node/edge count over N queries) with topic clusters
Persona: Scheduling agent learning meeting coordination
Goal: Catch when learned policies conflict; adjust confidence based on outcomes
Prerequisite: Graph contains contradictory semantic nodes (e.g. "book 9am slots" vs "9am always full")
Steps:
Agent retrieves policy nodes for next booking
Commits action based on retrieved confidences
Runtime reports outcome via learn.from_outcome
Graphonomous creates :outcome node + updates causal parents
Consolidator flags contradiction via belief.contradictions
Success: Conflicting nodes flagged; both decrease confidence; agent requests clarification
Covers: outcome grounding, causal attribution, learn.from_outcome, contradiction detector — ~40 unit tests
UI status: mcp-only
Claude Design hook: Contradiction report showing conflicting nodes + confidence delta
Persona: Fleet admin rolling out proven maintenance procedure across machines
Goal: Install a SkillCandidate from FleetPrompt; replay the learned workflow on destination agent
Prerequisite: SkillCandidate stored (via consolidation); agent-browser body available
Steps:
Call body.browser.replay(Trace) on destination agent
For each state hash in trace: perceive + verify state match
On mismatch: fail-fast; on match: execute next action
Agent emits SurpriseSignal if forward model prediction diverges
Success: Workflow executes on new machine; state hashes match; skill becomes persistent in destination graph
Covers: trace replay, state_hash validation, SurpriseSignal emission, episodic node creation — ~30 unit tests
UI status: mcp-only
Claude Design hook: Side-by-side trace diff (Machine A original vs Machine B replay) with hash-match indicators
Persona: Backend service operator managing memory footprint
Goal: Decay old knowledge, merge duplicates, promote stable facts
Prerequisite: Graph running; idle period detected (30s+); low-confidence nodes present
Steps:
Consolidator detects idle period
Decay: apply time-based decay to all nodes
Prune: remove nodes/edges below threshold
Merge: nodes with >0.95 embedding similarity merged
Promote: reinforce fast-memory facts to slow-memory
Success: Graph shrinks 10-30%; memory stays stable; most-accessed facts survive
Covers: consolidator.ex, decay logic, pruner.ex, merger.ex, promoter.ex, embedder similarity — ~50 unit tests
UI status: mcp-only
Claude Design hook: Consolidation timeline with before/after counts + pinned "stable core" facts
Persona: Governance-aware agent approving contract modifications
Goal: Before destructive action, check if graph has adequate knowledge; escalate if gaps
Prerequisite: Task description available; relevant semantic nodes (may be sparse)
Steps:
Agent calls coverage_query("approval of contract clause C1")
Returns: relevant_nodes, coverage_score (0-1), knowledge_gaps, recommendation
If coverage ≥ 0.85 + recommendation="act" → proceed
If coverage < 0.85 + recommendation="learn_first" → retrieve more context
If recommendation="escalate" → route to Delegatic or human
Success: High-stakes decisions gated by epistemic readiness; escalations prevent irreversible errors
Covers: coverage_query, confidence mean, gap detection — ~15 unit tests
UI status: mcp-only
Claude Design hook: Coverage gauge (0-100%) with gap tooltip listing missing topics
Tests to implement first (MCP-only, no UI required): Story 1 (inspector-style render of a real query → store → retrieve round-trip). Story 4 is the most visually compelling (graph shrink animation).
Recommended host for web viz: RuneFort (runefort.com) — specced as the spatial-cognition visualizer for continual-learning agents.