MCP
The SWU-MCP is a lifecycle-gated agile-orchestration server. It exposes 59 tools and 14 prompts to any agent that connects, and it refuses whole tools that are called in the wrong mode. This page is a dated public projection of the V1 read-only inspection of that surface. Every figure below is a past-tense observation from that pass, not a live check.
evidence/v1_mcp/catalogue.json in the uni-lab-command estate at commit unknown on 2026-08-02; any claim below is a claim about that moment, not about now.What V1 found, in one paragraph
SWU-MCP is a lifecycle-gated Agile orchestration server (v1.3.0) exposing 59 tools and 14 prompts against a per-program-run scoped state store; the currently bound program run [redacted: programme-run id] is UNI-LAB.MineCraft.Broadcast.Flagellum.UNI.DDNA.UNI.ZOO and sits in INCEPTION mode with 0/6 sessions started and no epics, stories, tickets, sprints, stakeholders or personas [class A]. Enforcement is layered: mode-level allow/block lists refuse whole tools in the wrong mode (verification_manage, uat_manage, cicd_manage, delivery_pipeline, living_docs_manage, ticket_orchestrate, and release_manage non-list actions all returned -32002 in INCEPTION [class A]), and content-level gates emit [BLOCK] messages for undersized/uncompliant Story/Ticket/Epic/RISK/ADR/NFR content per alignment file lines 616-636 [class F]. The Foundation-Enhancement-Assurance-Execution ORCHESTRATE framework wraps every call: many tools append an [ABS:*] persona/guidance banner and a _WORKFLOW footer that self-reports "1/9 required steps complete, blocked by I02..I10" — a hidden state variable not returned by mode_manage.get, which reports blocked_reason as an empty array (an observed disagreement between two authoritative surfaces on the same server [class A]). Reads are cleanly separated from writes for most tools, but seven (agile_plan, backlog_manage, doc_builder, audit_link_external, apikey_issue, apikey_revoke, bulk_manage) expose only mutating actions and were deferred entirely per the uncertain-is-write rule. The state store is program-run isolated (comment_manage on OAS-001 returned "belongs to a different program run" [class A]) and audit_manage.verify_chain reports valid=true, 500 events verified, no broken sequences [class A per INPUT B]. Fourteen calibration-emitted LESSON memory entries reference personas (Vox Novus, Guard Ian, etc.) that do not exist in persona_manage.list — a dangling-reference defect V1 observed but did not repair [class A].
Where the surface stands
88% of the 59 tools were observed by an actual call— V1’s rule was uncertain is write, so any action whose read/write semantics were ambiguous was deferred rather than exercised. The remaining tools carry evidence class C: their behaviour is known only from the schema they declare and from the error messages they returned, never from a body they successfully produced.
The four lifecycle modes, and what they gate
The MCP refuses whole tools that are called in the wrong mode. Transitioning between modes is itself a call, and each mode names the specific gates the next transition must clear. The mode structure below is class B — it comes from the alignment file the server publishes, not from a per-call observation.
INCEPTION class B
Frame problem, validate assumptions, and align stakeholders across sessions S01–S06.
Gates out of INCEPTION:
- All 6 inception sessions must reach COMPLETED (or planning_gate_threshold=60% satisfied)
- Sessions must complete in strict order S01→S02→S03→S04→S05→S06
- Tools blocked while in INCEPTION: work_manage create, sprint_manage create/start, board_manage move, ticket_orchestrate *, bulk_manage, verification_manage, uat_manage, cicd_manage, delivery_pipeline, living_docs_manage, release_manage non-list actions (observed -32002)
- mode_manage.transition target_mode=PLANNING
PLANNING class B
Translate scope into actionable delivery plan with risk/dependency control.
Gates out of PLANNING:
- At least 3 tickets per story (proportional ticket gate)
- At least 2 RAID entries (e.g. 1 risk + 1 assumption/dependency)
- Functional and non-functional specs REQUIRED before DELIVERING
- story_rules ON; TDD not yet enforced
- Blocked: board_manage move, ticket_orchestrate generate, inception_run advance
DELIVERING class B
Execute implementation with TDD discipline and traceable progress.
Gates out of DELIVERING:
- TDD phase advance beyond TODO requires sprint ACTIVE
- A logged comment REQUIRED before each TDD phase advance
- Per-phase evidence min chars: RED 80, VERIFY 50, GREEN 80, REFACTOR 50, VALIDATE 100
- living_docs bind warning if TDD_RED entered without bound documents
- mode_manage.transition target_mode=UAT (typically after tickets DONE)
UAT class B
Verify acceptance criteria, readiness, and stakeholder confidence before release.
Gates out of UAT:
- UAT verdict comment required per story
- uat_manage scenarios saved and executed
- release_manage.check_readiness passes all readiness gates
- ALL stakeholders approve via release_manage.stakeholder_signoff
- audit_manage.verify_chain required
- UAT→DELIVERING transition ALLOWED for rework
Enforcement rules — the [BLOCK] messages the server emits
Two layers of enforcement run on every call. Mode-level allow/block lists refuse whole tools in the wrong mode (a -32002 LIFECYCLE_VIOLATION response). Content-level gates emit [BLOCK] messages when a Story lacks acceptance criteria, a RAID risk lacks a mitigation, an ADR field is too short, and so on. Each row cites the line in the alignment file where the rule is declared.
| Rule | When it fires | Error text the server returns | Alignment file | Observed live? |
|---|---|---|---|---|
| Story without AC class F | Story create/update with no acceptance criteria in description | [BLOCK] Story missing acceptance criteria | line 616 | no — F |
| Story too short class F | Story description under 100 chars | [BLOCK] Story description too short (N chars, min 100) | line 619 | no — F |
| Ticket without DONE class F | Ticket create/update with no DONE criteria | [BLOCK] Ticket missing DONE criteria | line 622 | no — F |
| Ticket too vague class F | Ticket description under 50 chars | [BLOCK] Ticket description too short (N chars, min 50) | line 625 | no — F |
| Epic too short class F | Epic description under 50 chars | [BLOCK] Epic description too short (N chars, min 50) | line 628 | no — F |
| RISK without mitigation class F | RAID RISK entry with mitigation_strategy shorter than 20 chars | [BLOCK] RISK entries require mitigation_strategy (min 20 chars) | line 631 | no — F |
| ADR incomplete class F | ADR create/update where any of title/context/decision/consequences is under 20 chars | [BLOCK] ADR field too short (min 20 chars each) | line 633 | no — F |
| NFR without threshold class F | Non-functional spec created without metric AND threshold | [BLOCK] NFR spec requires metric and threshold | line 636 | no — F |
| LIFECYCLE_VIOLATION mode block class A | Any tool listed as BLOCKED in the current mode is called; observed on verification_manage, uat_manage, cicd_manage, delivery_pipeline, living_docs_manage, ticket_orchestrate and release_manage non-list actions while in INCEPTION | -32002 Tool '<name>' is not available in INCEPTION mode (or: Action '<x>' not allowed in INCEPTION; allowed actions for <name> in INCEPTION: <list>) | line 944 | yes |
| work_manage.query requires query string class A | work_manage called with action=query and no 'query' field | -32602 query is required | line 668 | yes |
| inception_artifact requires artifact_id even for reads class A | inception_artifact called with action=guide or status without artifact_id | -32602 artifact_id required | line 654 | yes |
| Program-run isolation on work items class A | comment_manage / link_manage / work_manage addressed to a work_id that belongs to a different program_run than the currently bound one | Work item <id> belongs to a different program run | line 830 | yes |
The 59 tools, grouped by what they do
The SWU-MCP itself does not declare categories; the grouping below is this page’s, derived from tool names and from the section boundaries in the alignment file (a 1044-line document). Every tool row carries the evidence class V1 assigned to it: class A means a call returned a body; class C means the tool exposes only mutating actions and was deferred entirely under the uncertain is write rule.
Inception (S01–S06) — 2 tools, 2 observed, 0 schema-only
Frame the problem, run the six sessions (S01–S06), record the artifacts a stakeholder can playback and sign off.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| inception_artifact | CRUD inception artifacts (e.g. S01_D01); even nominal reads (guide, status) require artifact_id. | 2 read · 2 write | class A | Reads returned 'artifact_id required' — server enforces even on 'guide'. |
| inception_run | Drive the six-session (S01–S06) inception lifecycle; guide/status are read, initialize/start/advance/answer/start_artifact/complete_artifact/finalize_session/complete are writes. | 2 read · 8 write | class A | All 6 sessions NOT_STARTED; workflow gate 1/9 blocked by I02..I10. |
Planning — 3 tools, 1 observed, 2 schema-only
Turn scope into an agile plan — epics, sprints, backlog items, the story-level rules that gate the transition to delivering.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| agile_plan | Bootstrap an Agile plan (epics + sprints + templates) for a project; no read surface exposed by schema. | 0 read · 1 write | class C | No action enum — invocation itself creates plan. Full defer. |
| backlog_manage | Create/prioritize/groom/promote backlog items — no read verb in schema. | 0 read · 4 write | class C | All 4 actions mutate; deferred entirely. |
| sprint_manage | List/create/start/close/plan sprints; only list is read-only. | 1 read · 5 write | class A | 0 sprints in current program run. |
Work items — 9 tools, 8 observed, 1 schema-only
The unit of work: Epic, Story, Ticket. Boards, columns, links, labels, comments, time, mass edits.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| board_manage | Get/configure kanban/scrum board and swimlanes; move to transition columns. | 2 read · 2 write | class A | Default KANBAN board with 7 TDD columns (TODO→...→DONE). |
| bulk_manage | Mass update/move_to_sprint/assign/delete of work items. | 0 read · 4 write | class C | All actions mutate; deferred entirely. |
| comment_manage | Threaded comments on work items with evidence_class A-G and conflict_with linkage. | 1 read · 4 write | class A | Cross-program isolation observed: OAS-001 rejected as 'belongs to a different program run'. |
| feature_manage | List/get/create/update/delete features under epics/journeys. | 1 read · 4 write | class A | Empty feature registry. |
| label_manage | Autocomplete/search/add/remove labels on work items. | 2 read · 2 write | class A | search timed out; autocomplete returned empty. |
| link_manage | Manage work-item relations (BLOCKS/DEPENDS_ON/RELATES_TO/DUPLICATES/PARENT_OF/CHILD_OF). | 1 read · 2 write | class A | Get requires a real work_id; none exist. |
| ticket_orchestrate | Generate ORCHESTRATE prompts for tickets; preview/validate/generate. | 2 read · 1 write | class A | Entire tool gated OFF in INCEPTION (-32002). |
| time_manage | Log and report on time entries (per work_id). | 2 read · 1 write | class A | get_logged requires work_id; empty program → empty report. |
| work_manage | Universal work-item tool (Epic/Story/Ticket) with search/query/filter reads and create/update/delete/reassign/auto_assign writes. | 3 read · 7 write | class A | search timed out; query requires 'query' string; filter returned empty universe. Limit capped at 100 (class C from error). |
People — 6 tools, 6 observed, 0 schema-only
Who is on the programme — stakeholders, personas, team members, tenants, memberships, journeys.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| client_manage | CRUD tenants/clients (name, slug, is_internal). | 1 read · 3 write | class A | 12 clients including SolutionWright (internal) and ORC Default Tenant. |
| journey_manage | User-journey records (steps + persona). | 1 read · 4 write | class A | 0 journeys. |
| membership_manage | Grant/revoke client membership roles. | 1 read · 3 write | class A | 20 memberships returned. |
| persona_manage | CRUD user personas linked to stakeholders (goals, frustrations, demographics). | 1 read · 3 write | class A | 0 personas — despite 14 LESSON entries naming personas that don't exist here. |
| stakeholder_manage | CRUD stakeholders with influence/interest scoring. | 1 read · 3 write | class A | 0 stakeholders. |
| team_manage | Manage AI team roster + unified persona/program memory (store, attribute_work, assign_persona, recall_memory). | 2 read · 8 write | class A | list_catalog returned 19 built-in personas across core/expert categories. |
Agents — 3 tools, 3 observed, 0 schema-only
Register, authenticate and drive automated agents; assign them scope, leases, branches, coordination zones.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| agent_control | Runtime control plane for agents: leases, file locks, coordination zones, branches, conflicts, work-graph, messages. | 5 read · 13 write | class A | Called only clearly read-only listing/graph/messages actions. |
| agent_dispatch | Spawn/monitor Claude Code CLI agents against tickets; check_auth/status/logs are reads. | 2 read · 2 write | class A | Both attempted reads timed out (-32001) — shape unknown. |
| agent_manage | Register/authenticate/heartbeat/session-manage AI agents; list, list_sessions, get are reads. | 2 read · 9 write | class A | authenticate/review_performance/get_benchmarks deferred under uncertainty. |
Documentation — 8 tools, 7 observed, 1 schema-only
Every long-form artifact — ADRs, RAID, specs, living-doc bindings, generated guides, templates, conventions.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| adr_manage | Architecture Decision Records: list/get/create/update. | 1 read · 2 write | class A | 0 ADRs. |
| convention_manage | Coding/documentation conventions with pattern/anti_pattern; check() validates text. | 2 read · 1 write | class A | 0 conventions registered; check ran 0-checked. |
| doc_builder | Playwright-driven capture + Markdown guide generation and publishing. | 0 read · 5 write | class C | No unambiguously read-only action; preview treated as write. |
| docs_manage | Document CRUD + search + trashbin + usage_guide. | 3 read · 6 write | class A | usage_guide returned 55KB agent manual; 1 APPROVED doc via search. |
| living_docs_manage | Bind documents to work items; sync into L1 knowledge graph. | 2 read · 3 write | class A | Entire tool -32002 in INCEPTION — even reads blocked. |
| raid_manage | Risks/Assumptions/Issues/Dependencies register. | 1 read · 2 write | class A | 0 RAID entries. |
| spec_manage | Functional and non-functional specifications (create_functional/create_nonfunctional/update/delete/get/list). | 1 read · 5 write | class A | 0 specs. |
| template_manage | Reusable templates for work-item creation. | 1 read · 2 write | class A | 0 templates. |
Quality & release — 6 tools, 6 observed, 0 schema-only
Verifications, UAT scenarios, release readiness, CI/CD checks, delivery pipeline records.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| cicd_manage | CI/CD required-checks, pipeline templates, environments, drift detection, promotions, risk calibrations. | 6 read · 8 write | class A | Every action -32002 in INCEPTION. |
| delivery_pipeline | Record CI runs, link tickets, assess change risk. | 2 read · 3 write | class A | Tool blocked in INCEPTION. |
| release_manage | Release records + readiness gates + stakeholder signoff + gate_override. | 2 read · 6 write | class A | Only 'list' allowed in INCEPTION (server allowlist); returned 9 real releases. |
| report_manage | Read-only burndown/burnup/velocity/cycle_time reports. | 4 read · 0 write | class A | burndown/burnup need 'sprint'; velocity+cycle_time succeeded with zeros and carried [ABS:design]+_WORKFLOW blocks naming next step I02. |
| uat_manage | Playwright-based UAT: suites/scenarios/steps/runs/explorations; save/run/approve/enforce_vault_retention. | 5 read · 14 write | class A | All 5 list_* reads mode-blocked in INCEPTION. |
| verification_manage | Record verification checks (QUALITY|TDD_EVIDENCE|SAST|MUTATION|MANUAL) with PASS/FAIL/WARN/PENDING and score. | 2 read · 1 write | class A | Entire tool -32002 in INCEPTION. |
Governance — 13 tools, 12 observed, 1 schema-only
The gates and observability the server puts on itself: mode, workflow, audit chain, guidance, scope, methodology.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| activity_manage | Read-only activity feed per user_id or work_id. | 1 read · 1 write | class A | feed requires user_id. |
| alignment_generate | Generate/preview/diff a platform-specific alignment file (CLAUDE.md and equivalents). | 2 read · 2 write | class A | 10 platforms enumerated; preview returned 76930-char CLAUDE.md. |
| audit_link_external | Link external system events into the MCP AuditLog hash chain (write-only). | 0 read · 1 write | class C | Pure mutating tool; no read action. |
| audit_manage | Append-only audit log with hash chain: query/verify_chain/verify_audit_chain/export/get_notarization/list_conflicts/list_calibration. | 4 read · 3 write | class A | list_calibration returned 76KB; verify_chain per INPUT B reports valid=true, 500 events. export/get_notarization deferred conservatively. |
| guidance_mode | Detect operator experience level (novice/pro), expose visible/hidden features, executive view. | 3 read · 1 write | class A | detected level='novice', score 0. 'adapt' deferred. |
| historic_run | Read-only access to ARCHIVED program runs (list/get/search/get_work/get_comments). | 3 read · 0 write | class A | 29 archived runs; the master run 4b868f37 is ACTIVE so returns -32602 here. |
| methodology_check | Introspect current workflow state, common mistakes, guidance topics, and audit compliance. | 5 read · 0 write | class A | audit returned 0 violations (empty program). |
| mode_manage | Get/transition lifecycle mode (INCEPTION|PLANNING|DELIVERING|UAT). | 1 read · 1 write | class A | blocked_reason returned '[]' contradicting _WORKFLOW footer '0/9 steps'. |
| notify_manage | User notifications: get/get_preferences (reads) and subscribe/create/mark_read/acknowledge/set_preferences/dispatch_retries (writes). | 2 read · 6 write | class A | Both reads returned empty for 'operator'. |
| progress_get | Aggregate progress across epics/stories/tickets/sprints. | 1 read · 0 write | class A | All counters zero; carries [ABS:design] guidance. |
| project_init | Bootstrap wizard: status/verify/guide (reads); setup (write). | 3 read · 1 write | class A | All 3 reads succeeded with guidance+workflow blocks. |
| rules_generate | Create/update/preview/version .mdc rule files in a target directory. | 2 read · 2 write | class A | MCP server v1.3.0; source_directory /app/Cursor Rules Drafts reported absent. |
| scope_manage | Program-run scope spans (list_spans/add_span/remove_span). | 1 read · 2 write | class A | Empty spans. |
Memory & knowledge — 3 tools, 3 observed, 0 schema-only
The persona + programme memory store, the L1 knowledge graph, and the insights query that reaches into them.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| insights_for | Single-action read: fetch snippets and matched_ledger for a given MCP resource URI. | 1 read · 0 write | class A | For this program_run: snippets empty, matched_ledger=false, evidence_class F. |
| knowledge_graph | L1 knowledge graph over program artifacts: create_node/create_edge writes; search_nodes/get_node/subgraph/entity_context reads. | 1 read · 5 write | class A | Empty result set for 'program'. |
| memory_manage | Persona+program memory store with typed entries and typed relations (search/graph/get reads; store/relate writes). | 2 read · 3 write | class A | graph returned 14 calibration LESSON nodes referencing personas that don't exist in persona_manage.list. |
Contracts — 3 tools, 3 observed, 0 schema-only
Statements of work, projects under an SOW, and the deliverables under each.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| deliverable_manage | Project deliverables (feature|function|nfr) with statuses. | 1 read · 3 write | class A | 5 SOW-01 deliverables D1..D5 all ACTIVE. |
| project_manage | Project CRUD linked to SOW. | 1 read · 3 write | class A | 11 projects returned. |
| sow_manage | Statement-of-work records under clients. | 1 read · 3 write | class A | 9 SOWs including MarketingWright Sandbox Phase-1 (SOW-01 V1.3, binding). |
API keys — 3 tools, 1 observed, 2 schema-only
API-key lifecycle for programmatic access.
| Tool | What it does | Reads / writes | Evidence | V1 note |
|---|---|---|---|---|
| apikey_issue | Issue a scoped API key (write-only, reveals secret). | 0 read · 1 write | class C | Skipped entirely. |
| apikey_list | Read-only enumeration of a user's API keys (prefix, scopes, expires_at, last_used_at, revoked_at). | 1 read · 0 write | class A | 8 keys returned for the current user. |
| apikey_revoke | Revoke an API key by id or prefix (write-only). | 0 read · 1 write | class C | Skipped. |
The 14 prompts
Prompts are named orchestration recipes the server offers agents. V1 catalogued their names and purposes from the alignment file but did not fetch or execute any of them — their parameter schemas and output shapes remain class F.
| Prompt | Purpose | When it fires |
|---|---|---|
| agile_story_architect | Author INVEST-compliant stories with acceptance criteria under an active sprint/planning context. | PLANNING mode, story drafting. |
| backlog_grooming_master | Groom, prioritize and split backlog items. | Backlog refinement events. |
| document_governance_expert | Enforce documentation lifecycle, ownership and living-doc bindings. | Docs review / governance. |
| document_review | Structured review pass over a specific document. | docs_manage.read → review. |
| inception_kickoff | Launch a new inception program with S01 framing. | INCEPTION mode start. |
| inception_playback | Playback of S06 to stakeholders for the go/no-go decision. | Session S06. |
| inception_session | Facilitate a single inception session S01..S06 in its correct facilitator mode. | inception_run.start / advance. |
| project_setup_oracle | Guide project_init / rules_generate / alignment_generate as an onboarding oracle. | New program setup. |
| risk_analysis | Full RAID risk analysis with mitigation ≥20 chars. | raid_manage.create RISK. |
| risk_blocker_analyst | Analyze blockers and their upstream risks. | Blocked ticket/story. |
| sprint_planning | Compose a sprint plan and story assignment. | sprint_manage.plan. |
| sprint_planning_maestro | Multi-agent sprint plan orchestration (roster/pools/queues). | sprint_manage.plan_multi_agent. |
| story_breakdown | Break a story into ≥3 tickets to satisfy PLANNING mode proportional ticket gate. | PLANNING mode ticket gate. |
| tdd_master | Drive the TODO→TDD_RED→TDD_VERIFY→TDD_GREEN→TDD_REFACTOR→TDD_VALIDATE→DONE cycle with per-phase evidence. | DELIVERING mode ticket work. |
What V1 could not close from a read-only chair
V1 was deliberately read-only. Any tool whose behaviour required a mutation to observe was left for a later vector, and every such gap is named here in full rather than quietly excluded. Publishing the gap list is the point: an inspection that only reports what it could reach is not the same as an inspection that reports both.
- Content-validation [BLOCK] rules (Story AC, Story/Ticket/Epic length, RISK mitigation, ADR fields, NFR threshold) are transcribed from alignment file lines 616–636 (class F) but not one was triggered live — all creates are mutations that V1 refused.Why V1 could not close it: V1 is READ-ONLY. Triggering any of these rules requires calling work_manage.create / raid_manage.create / adr_manage.create / spec_manage.create_nonfunctional with intentionally malformed payloads.Owned by: V3
- Whole tool families were mode-blocked in INCEPTION and their read shapes could not be observed (verification_manage, uat_manage, cicd_manage, delivery_pipeline, living_docs_manage, most of release_manage, ticket_orchestrate).Why V1 could not close it: mode_manage.transition is a mutation and out of scope for V1. Cannot leave INCEPTION without writing.Owned by: V2
- Seven tools expose ONLY mutating actions (agile_plan, backlog_manage, doc_builder, audit_link_external, apikey_issue, apikey_revoke, bulk_manage) — evidence class remains C (schema only) for their behavior.Why V1 could not close it: No read verb available; V1 rules forbid calling under uncertainty.Owned by: V3
- Six probed read actions timed out with -32001 (agent_dispatch.check_auth, agent_dispatch.status, work_manage.search, label_manage.search, audit_manage.query, audit_manage.verify_chain, first time_manage.get_logged) — cannot distinguish 'empty result' from 'server unresponsive'.Why V1 could not close it: V1 did not retry aggressively or instrument server-side latency; timeout root cause requires load/perf investigation.Owned by: V5
- Apparent contradiction observed between mode_manage.get.blocked_reason (returns empty '[]') and the _WORKFLOW footer that reports '0/9 required steps complete, blocked by I02..I10' on the SAME program run. Two authoritative surfaces disagree.Why V1 could not close it: V1 catalogues the disagreement but cannot resolve without inspecting server source or transitioning modes.Owned by: V4
- 14 auto-emitted LESSON memory entries (from calibration_aggregator) reference persona names — Vox Novus, Vera Free, Guard Ian, Des Igner, React Ive, Api Endor, Owen Pro, Archi Tect, Query Quinn, Content Curator, Pip Line, Inna Cept, Tess Ter, Aiden Orchestr — that do NOT exist in persona_manage.list (0 entries). Dangling references. Also metadata source_phase=phase_2 mismatches content source_phase=phase_0.Why V1 could not close it: Fixing (or deleting) requires memory_manage.store or persona_manage.create — mutations.Owned by: V4
- Reads that require an id (docs_manage.read, spec_manage.get, feature_manage.get, adr_manage.read, comment_manage.list, link_manage.get, journey_manage.get, activity_manage.get, knowledge_graph.get_node/subgraph/entity_context, agent_manage.get, verification_manage.get / can_complete, uat_manage.get_scenario / get_results / get_artifacts, historic_run.get_work / get_comments, insights_for on other URIs) could not be exercised because the current program has 0 items or the tool is mode-blocked.Why V1 could not close it: V1 cannot invent ids; would need work items or archived runs created upstream.Owned by: V2
- The 14 prompts (agile_story_architect ... tdd_master) are catalogued from alignment file lines 727–743 only — none were fetched or executed; parameter schemas and output shapes are unknown (class F only).Why V1 could not close it: MCP prompts are not exposed via any listed tool; retrieval mechanism (get_prompts / prompts/list JSON-RPC) was not attempted under V1's tool-only mandate.Owned by: V2
- Server-side rate limits, quotas, per-tool concurrency caps, and idempotency behavior are undocumented; work_manage limit=100 is the only cap observed (class C from error).Why V1 could not close it: V1 did not stress-test; would require repeated writes/reads at scale.Owned by: V5
- Audit chain integrity claim (valid=true, 500 events, 0 broken sequences per INPUT B) could not be independently re-verified in this probe pass — audit_manage.verify_chain timed out both times V1 called it.Why V1 could not close it: Only INPUT B carries this claim (class A originally, but V1's own retry failed); needs a fresh run.Owned by: V5
Evidence-class glossary
Every claim on this page carries a class marker. The taxonomy is the same one the catalogue itself uses; it is included in the page rather than linked out, because a glossary a reader has to click to open is a glossary most readers never see.
| Class | Means |
|---|---|
| A | observed — a tool call returned this value in the probe |
| B | documented — carried by an authoritative document in the estate |
| C | code-indicated — implied by a schema or an error message, not a returned value |
| F | historical — transcribed from a source-of-truth file (e.g. the alignment file lines) |
| G | inferred — derived by reasoning across other evidence |
What was taken out of this page
Two different things happen to two different kinds of sensitive text, and the difference is deliberate. Structural details — an internal address, a hostname, a port, and the current programme-run identifier — are redacted in place and leave a visible [redacted: …] marker, because the sentence still means something without them and the reader can see that something was removed. Third-party names are refused, never redacted: the whole item is dropped, because a marker where a name used to be still tells you a name was there.