@dug-21/unimatrix 0.5.9 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,379 @@
1
+ # Design Session Protocol (Session 1)
2
+
3
+ Triggers on: specification, architecture, design, research, scope, risk strategy, SCOPE.md creation.
4
+
5
+ ---
6
+
7
+ ## Execution Model
8
+
9
+ Session 1 produces three sacred source-of-truth documents, a scope risk assessment, a vision alignment report, an implementation brief, and an acceptance map. All artifacts land in `product/features/{feature-id}/` as untracked files — no git operations occur during design. Session 2 (Delivery) creates the feature branch, commits the design artifacts, and continues from there.
10
+
11
+ **You are the Design Leader.** Read the SM agent definition (`.claude/agents/uni/uni-scrum-master.md`) for role boundaries. You orchestrate — you NEVER generate content. Spawn specialist agents for all work.
12
+
13
+ ```
14
+ Design Leader (you) Design Agents
15
+ ─────────────────── ─────────────
16
+ read protocol + SCOPE.md (or initiate)
17
+ spawn researcher (Phase 1) ─────────────────────────► SCOPE.md written
18
+ ◄────────────────────────────────────────────────────
19
+ human approves SCOPE.md
20
+ spawn risk strategist (Phase 1b) ───────────────────► scope risk assessment
21
+ ◄────────────────────────────────────────────────────
22
+ spawn 2 specialists (Phase 2a) ─────────────────────► produce arch + spec
23
+ ◄────────────────────────────────────────────────────
24
+ spawn risk strategist (Phase 2a+) ──────────────────► produce risk strategy
25
+ ◄────────────────────────────────────────────────────
26
+ spawn vision guardian (Phase 2b)
27
+ spawn synthesizer (Phase 2c)
28
+ return all artifacts to human
29
+ human reviews and approves
30
+ ```
31
+
32
+ **Session 1 ends when artifacts are returned to the human.** The human decides whether to proceed to Session 2 (Delivery).
33
+
34
+ ### Concurrency Rules
35
+
36
+ Each message batches ALL related operations of the same type:
37
+
38
+ - ALWAYS spawn all agents WITHIN each phase step in ONE message via Task tool
39
+ - ALWAYS batch ALL file reads/writes/edits in ONE message
40
+
41
+ ### Design Rules
42
+
43
+ - Output goes to `product/features/{feature-id}/` ONLY
44
+ - NO code changes. NO file edits outside `product/features/`
45
+ - NO launching delivery agents (uni-rust-dev, uni-pseudocode, uni-tester)
46
+ - Agents return: artifact paths + key decisions + open questions (NOT full file contents)
47
+
48
+ ### No Git Operations in Design
49
+
50
+ Design produces artifacts in `product/features/{feature-id}/` only. No branch is created, no commits are made, no PR is opened. The working tree stays on whatever branch is currently checked out. Git operations begin in Session 2 (Delivery), which creates the feature branch and commits the design artifacts as its first action.
51
+
52
+ ### Feature Cycle Attribution
53
+
54
+ Before spawning any agents, call `context_cycle` to declare the feature cycle:
55
+
56
+ ```
57
+ context_cycle(
58
+ type: "start",
59
+ topic: "{feature-id}",
60
+ next_phase: "scope",
61
+ agent_id: "{feature-id}-design-leader"
62
+ )
63
+ ```
64
+
65
+ This sets session-level feature attribution so all subsequent tool calls are tracked against this feature.
66
+
67
+ ---
68
+
69
+ ## Flow: Phase 1 + Phase 2
70
+
71
+ ### Phase 1: Research & Scope Definition
72
+
73
+ **Participants**: Human + uni-researcher
74
+
75
+ The Design Leader spawns `uni-researcher` to collaborate with the human on scope definition.
76
+
77
+ ```
78
+ Task(
79
+ subagent_type: "uni-researcher",
80
+ prompt: "You are researching the problem space for {feature-id}.
81
+ Your agent ID: {feature-id}-researcher
82
+
83
+ High-level intent: {human's description}
84
+
85
+ Explore the problem space — existing codebase patterns, technical landscape,
86
+ constraints, and relevant project knowledge.
87
+
88
+ Synthesize findings and propose scope boundaries with rationale.
89
+ Write SCOPE.md to product/features/{feature-id}/SCOPE.md.
90
+
91
+ Return: SCOPE.md path, key findings, open questions for human."
92
+ )
93
+ ```
94
+
95
+ After the researcher returns, the Design Leader presents SCOPE.md to the human for review and approval. **Do not proceed to Phase 1b until the human approves SCOPE.md.**
96
+
97
+ ### Phase 1b: Scope Risk Assessment
98
+
99
+ **Participants**: uni-risk-strategist (scope-risk mode)
100
+
101
+ After SCOPE.md approval, the Design Leader spawns the risk strategist in scope-risk mode. This surfaces product-level risks (technology bets, dependency risks, scope boundary risks) BEFORE the architect and spec writer begin — so they can design with risk awareness.
102
+
103
+ ```
104
+ Task(
105
+ subagent_type: "uni-risk-strategist",
106
+ prompt: "Your agent ID: {feature-id}-agent-0-scope-risk
107
+ MODE: scope-risk
108
+
109
+ Assess scope-level risks for {feature-id}.
110
+
111
+ Read these artifacts:
112
+ - SCOPE.md: product/features/{id}/SCOPE.md
113
+ - Product vision: product/PRODUCT-VISION.md
114
+
115
+ Produce SCOPE-RISK-ASSESSMENT.md at product/features/{id}/SCOPE-RISK-ASSESSMENT.md.
116
+ Return: file path, risk summary, top 3 risks for architect attention."
117
+ )
118
+ ```
119
+
120
+ Wait for the scope risk assessment to complete before proceeding to Phase 2.
121
+
122
+ ```
123
+ context_cycle(
124
+ type: "phase-end",
125
+ topic: "{feature-id}",
126
+ phase: "scope",
127
+ outcome: "SCOPE.md approved. Scope risk assessment complete.",
128
+ next_phase: "design",
129
+ agent_id: "{feature-id}-design-leader"
130
+ )
131
+ ```
132
+
133
+ ### Phase 2: Design (Three Source Documents + Vision + Synthesis)
134
+
135
+ Phase 2 has five sequential steps: 2a (architect + spec parallel) → 2a+ (risk strategist) → 2b (vision check) → 2c (synthesis) → 2d (return to human).
136
+
137
+ #### Phase 2a: Architect + Specification (Parallel, ONE message)
138
+
139
+ The Design Leader spawns two specialists in parallel:
140
+
141
+ **uni-architect → Architecture** (`architecture/ARCHITECTURE.md` + `ADR-NNN-{name}.md`)
142
+
143
+ - High-level system design, component breakdown and boundaries
144
+ - How components interact (interfaces, contracts, data flow)
145
+ - Technology decisions with rationale
146
+ - Integration points and dependencies
147
+ - ADRs as individual files in `architecture/`
148
+ - **Store each ADR in Unimatrix** immediately after writing the file — `context_store(category: "decision", topic: "{feature-id}", feature_cycle: "{feature-id}", title: "{ADR title}", tags: ["adr", "{feature-id}"])` — so delivery agents can retrieve decisions via search without reading every ADR file
149
+
150
+ **uni-specification → Specification** (`specification/SPECIFICATION.md`)
151
+
152
+ - Functional and non-functional requirements
153
+ - User workflows and use cases
154
+ - Acceptance criteria with verification methods
155
+ - Domain models and ubiquitous language
156
+ - Constraints and dependencies
157
+
158
+ Each specialist receives:
159
+ 1. `Your agent ID: {feature-id}-agent-N-{role}`
160
+ 2. Path to approved SCOPE.md
161
+ 3. Path to SCOPE-RISK-ASSESSMENT.md (from Phase 1b)
162
+ 4. Task description
163
+
164
+ ```
165
+ # Spawn both in ONE message:
166
+ Task(subagent_type: "uni-architect", prompt: "Your agent ID: {id}-agent-1-architect
167
+ ...
168
+ Read scope risk assessment: product/features/{id}/SCOPE-RISK-ASSESSMENT.md
169
+ Address SR-XX risks in your architecture decisions where applicable.
170
+
171
+ After writing each ADR file, store it in Unimatrix:
172
+ context_store(category: 'decision', topic: '{feature-id}', feature_cycle: '{feature-id}',
173
+ title: '{ADR title}', tags: ['adr', '{feature-id}'], content: '{full ADR content}')
174
+ ...")
175
+ Task(subagent_type: "uni-specification", prompt: "Your agent ID: {id}-agent-2-spec
176
+ ...
177
+ Read scope risk assessment: product/features/{id}/SCOPE-RISK-ASSESSMENT.md
178
+ Consider SR-XX risks when defining constraints and acceptance criteria. ...")
179
+ ```
180
+
181
+ Wait for BOTH to complete before proceeding to Phase 2a+.
182
+
183
+ #### Phase 2a+: Risk Strategist (After Architect + Specification)
184
+
185
+ The Design Leader spawns the risk strategist with the architecture and specification as additional inputs. This allows risk identification against concrete component boundaries, ADRs, acceptance criteria, and domain models — not just the scope.
186
+
187
+ **uni-risk-strategist → Risk-Based Test Strategy** (`RISK-TEST-STRATEGY.md`)
188
+
189
+ - Feature-level risk identification — what could fail and impact users
190
+ - Risk-to-testing-scenario mapping
191
+ - Coverage requirements per risk
192
+ - Prioritization by severity and likelihood
193
+ - Integration risks, edge cases, failure modes
194
+
195
+ The risk strategist receives:
196
+ 1. `Your agent ID: {feature-id}-agent-3-risk`
197
+ 2. Path to approved SCOPE.md
198
+ 3. Paths to architecture and specification artifacts (from Phase 2a)
199
+ 4. Task description
200
+
201
+ ```
202
+ Task(
203
+ subagent_type: "uni-risk-strategist",
204
+ prompt: "Your agent ID: {id}-agent-3-risk
205
+ MODE: architecture-risk
206
+ ...
207
+ Read these artifacts for context:
208
+ - SCOPE.md: product/features/{id}/SCOPE.md
209
+ - Architecture: product/features/{id}/architecture/ARCHITECTURE.md
210
+ - ADRs: {list ADR file paths from architect's return}
211
+ - Specification: product/features/{id}/specification/SPECIFICATION.md
212
+ - Scope Risk Assessment: product/features/{id}/SCOPE-RISK-ASSESSMENT.md
213
+
214
+ Use the architecture (component boundaries, integration points, ADRs)
215
+ and specification (acceptance criteria, domain models, constraints)
216
+ to inform your risk analysis. Identify risks that are specific to
217
+ the designed architecture — not generic risks.
218
+
219
+ Trace each SR-XX scope risk in the Scope Risk Traceability table."
220
+ )
221
+ ```
222
+
223
+ Wait for the risk strategist to complete before proceeding to Phase 2b.
224
+
225
+ ```
226
+ context_cycle(
227
+ type: "phase-end",
228
+ topic: "{feature-id}",
229
+ phase: "design",
230
+ outcome: "Architecture, specification, and risk strategy complete.",
231
+ next_phase: "design-review",
232
+ agent_id: "{feature-id}-design-leader"
233
+ )
234
+ ```
235
+
236
+ #### Phase 2b: Vision Alignment Check
237
+
238
+ Spawn `uni-vision-guardian`:
239
+
240
+ ```
241
+ Task(
242
+ subagent_type: "uni-vision-guardian",
243
+ prompt: "Your agent ID: {feature-id}-vision-guardian
244
+
245
+ Read the product vision: product/PRODUCT-VISION.md
246
+ Read the three source documents:
247
+ - product/features/{id}/architecture/ARCHITECTURE.md
248
+ - product/features/{id}/specification/SPECIFICATION.md
249
+ - product/features/{id}/RISK-TEST-STRATEGY.md
250
+ Read the scope: product/features/{id}/SCOPE.md
251
+ Read the scope risk assessment: product/features/{id}/SCOPE-RISK-ASSESSMENT.md
252
+
253
+ Produce ALIGNMENT-REPORT.md at product/features/{id}/ALIGNMENT-REPORT.md.
254
+ Flag any variances requiring human attention.
255
+ Return: report path, variance summary."
256
+ )
257
+ ```
258
+
259
+ #### Phase 2c: Synthesizer (Fresh Context Window)
260
+
261
+ After vision alignment, spawn `uni-synthesizer` with a fresh context window:
262
+
263
+ ```
264
+ Task(
265
+ subagent_type: "uni-synthesizer",
266
+ prompt: "You are compiling the implementation brief for {feature-id}.
267
+ Your agent ID: {feature-id}-synthesizer
268
+
269
+ Read these artifacts:
270
+ - product/features/{id}/SCOPE.md
271
+ - product/features/{id}/SCOPE-RISK-ASSESSMENT.md
272
+ - product/features/{id}/specification/SPECIFICATION.md
273
+ - product/features/{id}/architecture/ARCHITECTURE.md
274
+ - product/features/{id}/architecture/ADR-*.md (all ADR files)
275
+ - product/features/{id}/RISK-TEST-STRATEGY.md
276
+ - product/features/{id}/ALIGNMENT-REPORT.md
277
+
278
+ ADR file paths from architect: {list from architect's return}
279
+ Vision variances: {from vision guardian's return}
280
+
281
+ Produce: IMPLEMENTATION-BRIEF.md, ACCEPTANCE-MAP.md, GH Issue.
282
+ Return: file paths + GH Issue URL."
283
+ )
284
+ ```
285
+
286
+ The synthesizer gets a fresh context window — it reads artifacts directly for higher quality synthesis.
287
+
288
+ #### Phase 2d: Return to Human
289
+
290
+ ```
291
+ context_cycle(
292
+ type: "phase-end",
293
+ topic: "{feature-id}",
294
+ phase: "design-review",
295
+ outcome: "Vision aligned. Synthesis complete.",
296
+ next_phase: "spec",
297
+ agent_id: "{feature-id}-design-leader"
298
+ )
299
+ ```
300
+
301
+ Then returns to the human:
302
+
303
+ ```
304
+ SESSION 1 COMPLETE — Design artifacts ready for review.
305
+
306
+ GH Issue: {URL}
307
+
308
+ Artifacts (untracked — git begins in Session 2):
309
+ - product/features/{feature-id}/SCOPE.md
310
+ - product/features/{feature-id}/SCOPE-RISK-ASSESSMENT.md
311
+ - product/features/{feature-id}/architecture/ARCHITECTURE.md
312
+ - product/features/{feature-id}/specification/SPECIFICATION.md
313
+ - product/features/{feature-id}/RISK-TEST-STRATEGY.md
314
+ - product/features/{feature-id}/ALIGNMENT-REPORT.md
315
+ - product/features/{feature-id}/IMPLEMENTATION-BRIEF.md
316
+ - product/features/{feature-id}/ACCEPTANCE-MAP.md
317
+
318
+ Vision Alignment: {summary}
319
+ Variances requiring approval: {list or "none"}
320
+ Open questions: {list or "none"}
321
+
322
+ Human action required: Review design artifacts. Then start Session 2 to deliver.
323
+ ```
324
+
325
+ **Session 1 ends here.** No branch, no commit, no PR — artifacts sit untracked in `product/features/{feature-id}/` until Session 2 picks them up.
326
+
327
+ ---
328
+
329
+ ## Agent Context Budget
330
+
331
+ Each spawned agent receives:
332
+ - Agent ID
333
+ - Task description (2-3 sentences)
334
+ - SCOPE.md path (agents read it themselves)
335
+ - Specific file paths to read (not file contents)
336
+
337
+ Do NOT paste full documents into agent prompts. Agents read files themselves.
338
+
339
+ ---
340
+
341
+ ## Quick Reference: Message Map
342
+
343
+ ```
344
+ DESIGN LEADER (you):
345
+ Init: context_cycle(type: "start", topic: "{feature-id}", next_phase: "scope", agent_id: "{feature-id}-design-leader")
346
+ Phase 1: Task(uni-researcher) — scope exploration with human
347
+ ...human approves SCOPE.md...
348
+ Phase 1b: Task(uni-risk-strategist, MODE: scope-risk) — scope risk assessment
349
+ ...wait...
350
+ context_cycle(type: "phase-end", phase: "scope", outcome: "...", next_phase: "design", ...)
351
+ Phase 2a: Task(uni-architect) + Task(uni-specification) — parallel, ONE message
352
+ ...wait for both...
353
+ Phase 2a+: Task(uni-risk-strategist, MODE: architecture-risk) — receives arch + spec + scope risks
354
+ ...wait...
355
+ context_cycle(type: "phase-end", phase: "design", outcome: "...", next_phase: "design-review", ...)
356
+ Phase 2b: Task(uni-vision-guardian) — alignment check
357
+ Phase 2c: Task(uni-synthesizer) — brief + maps + GH Issue (fresh context)
358
+ Phase 2d: context_cycle(type: "phase-end", phase: "design-review", outcome: "...", next_phase: "spec", ...) — SESSION 1 ENDS
359
+ return artifacts to human (no git ops — artifacts are untracked)
360
+ ```
361
+
362
+ ---
363
+
364
+ ## Outcome Recording
365
+
366
+ After Phase 2d, record the phase transition (do NOT call `stop` — the cycle remains open for the delivery session):
367
+
368
+ ```
369
+ context_cycle(
370
+ type: "phase-end",
371
+ topic: "{feature-id}",
372
+ phase: "design-review",
373
+ outcome: "Vision aligned. Synthesis complete.",
374
+ next_phase: "spec",
375
+ agent_id: "{feature-id}-design-leader"
376
+ )
377
+ ```
378
+
379
+ The cycle is closed by `context_cycle(type: "stop")` at the end of Session 2 (delivery). If delivery never occurs, the cycle will be drained by GC or `context_status(maintain: true)`.
@@ -26,7 +26,7 @@ Gather all evidence about the shipped feature:
26
26
 
27
27
  1. **Run retrospective analysis** (if observation data exists):
28
28
  ```
29
- mcp__unimatrix__context_retrospective(feature_cycle: "{feature-id}")
29
+ mcp__unimatrix__context_cycle_review(feature_cycle: "{feature-id}")
30
30
  ```
31
31
  This returns structured data: metrics, hotspots, baseline comparisons, narratives, and recommendations.
32
32
 
@@ -36,7 +36,7 @@ Gather all evidence about the shipped feature:
36
36
  - `Warning` hotspots → potential lessons or procedure gaps
37
37
  - `Info` hotspots → note trends, may not need action
38
38
  - Key hotspot types to watch:
39
- - `permission_retries` → settings.json allowlist may need updating
39
+ - `orphaned_calls` → tool invocations with no terminal event — check context overflow or parallel call management
40
40
  - `sleep_workarounds` → agents using sleep instead of run_in_background
41
41
  - `cold_restart` → context loss after gaps, agents re-reading files
42
42
  - `coordinator_respawns` → SM lifetime/handoff issues
@@ -10,7 +10,7 @@ description: "Initialize Unimatrix in a repository: append knowledge block to CL
10
10
  Before running this skill:
11
11
 
12
12
  1. **Skill files installed**: Both `uni-init/SKILL.md` and `uni-seed/SKILL.md` must be present in `.claude/skills/` in the target repository.
13
- 2. **MCP server wired** (for `/uni-seed`): The Unimatrix MCP server (`unimatrix-server`) must be running and configured in your Claude Code `settings.json`. This skill (`/uni-init`) does not require MCP, but `/uni-seed` does.
13
+ 2. **MCP server wired** (for `/uni-seed`): The Unimatrix MCP server (`unimatrix`) must be running and configured in your Claude Code `settings.json`. This skill (`/uni-init`) does not require MCP, but `/uni-seed` does.
14
14
 
15
15
  If you need to install the Unimatrix server or wire MCP, consult the installation documentation.
16
16
 
@@ -128,8 +128,18 @@ Knowledge engine (MCP server). Makes agent expertise searchable, trustworthy, an
128
128
 
129
129
  | Skill | When to Use |
130
130
  |-------|-------------|
131
- | `/uni-init` | First-time setup: wire CLAUDE.md and get agent recommendations |
131
+ | `/uni-init` | First-time setup: wire CLAUDE.md and get agent orientation |
132
132
  | `/uni-seed` | Populate Unimatrix with foundational repo knowledge |
133
+ | `/uni-store-adr` | After each architectural decision — stores the ADR |
134
+ | `/uni-store-lesson` | After failures and gate rejections — prevents recurrence |
135
+ | `/uni-store-pattern` | When a reusable implementation pattern emerges |
136
+ | `/uni-store-procedure` | When a step-by-step how-to technique evolves |
137
+ | `/uni-knowledge-search` | Semantic search across knowledge before implementing |
138
+ | `/uni-knowledge-lookup` | Deterministic lookup by feature, category, or ID |
139
+ | `/uni-query-patterns` | Query component patterns before designing or coding |
140
+ | `/uni-retro` | Post-merge retrospective — extract and store what was learned |
141
+ | `/uni-review-pr` | PR security review and merge readiness check |
142
+ | `/uni-zero` | Strategic advisor for product evolution and vision alignment |
133
143
 
134
144
  ### Knowledge Categories
135
145
 
@@ -34,27 +34,27 @@ Call the `mcp__unimatrix__context_lookup` MCP tool:
34
34
 
35
35
  **Get all ADRs for a specific feature:**
36
36
  ```
37
- mcp__unimatrix__context_lookup(topic: "nxs-002", category: "decision", helpful: true)
37
+ mcp__unimatrix__context_lookup({"topic": "nxs-002", "category": "decision", "helpful": true})
38
38
  ```
39
39
 
40
40
  **Get a specific entry by ID (full content):**
41
41
  ```
42
- mcp__unimatrix__context_lookup(id: 42, format: "markdown")
42
+ mcp__unimatrix__context_lookup({"id": 42, "format": "markdown"})
43
43
  ```
44
44
 
45
45
  **Find all deprecated decisions:**
46
46
  ```
47
- mcp__unimatrix__context_lookup(category: "decision", status: "deprecated")
47
+ mcp__unimatrix__context_lookup({"category": "decision", "status": "deprecated"})
48
48
  ```
49
49
 
50
50
  **Find entries tagged with a specific domain:**
51
51
  ```
52
- mcp__unimatrix__context_lookup(category: "decision", tags: ["adr", "serialization"])
52
+ mcp__unimatrix__context_lookup({"category": "decision", "tags": ["adr", "serialization"]})
53
53
  ```
54
54
 
55
55
  **Get all knowledge for a feature (any category):**
56
56
  ```
57
- mcp__unimatrix__context_lookup(topic: "vnc-001")
57
+ mcp__unimatrix__context_lookup({"topic": "vnc-001"})
58
58
  ```
59
59
 
60
60
  ### Helpful Vote Guidance
@@ -72,7 +72,7 @@ Note: `context_lookup` already records a doubled access signal automatically (×
72
72
  If you already have an entry ID (from a prior search or lookup result), use `context_get` for direct retrieval:
73
73
 
74
74
  ```
75
- mcp__unimatrix__context_get(id: 42, format: "markdown")
75
+ mcp__unimatrix__context_get({"id": 42, "format": "markdown"})
76
76
  ```
77
77
 
78
78
  This is faster than a lookup with an ID filter and always returns full content.
@@ -95,21 +95,21 @@ This is faster than a lookup with an ID filter and always returns full content.
95
95
 
96
96
  **Before writing a new ADR (architect):**
97
97
  ```
98
- 1. mcp__unimatrix__context_lookup(topic: "{feature-id}", category: "decision")
98
+ 1. mcp__unimatrix__context_lookup({"topic": "{feature-id}", "category": "decision"})
99
99
  → See what ADRs already exist for this feature
100
- 2. mcp__unimatrix__context_lookup(category: "decision", tags: ["adr", "{domain}"])
100
+ 2. mcp__unimatrix__context_lookup({"category": "decision", "tags": ["adr", "{domain}"]})
101
101
  → See ADRs across features in the same domain
102
102
  ```
103
103
 
104
104
  **Before implementing a component (developer):**
105
105
  ```
106
- 1. mcp__unimatrix__context_lookup(topic: "{feature-id}", category: "decision", format: "markdown")
106
+ 1. mcp__unimatrix__context_lookup({"topic": "{feature-id}", "category": "decision", "format": "markdown"})
107
107
  → Read all architectural decisions for this feature
108
108
  ```
109
109
 
110
110
  **Checking for deprecated knowledge:**
111
111
  ```
112
- mcp__unimatrix__context_lookup(category: "decision", status: "deprecated", topic: "{feature-id}")
112
+ mcp__unimatrix__context_lookup({"category": "decision", "status": "deprecated", "topic": "{feature-id}"})
113
113
  → See what decisions have been superseded
114
114
  ```
115
115
 
@@ -121,8 +121,8 @@ Lookup may surface entries that are outdated or incorrect. Fix them:
121
121
 
122
122
  | Situation | Action |
123
123
  |-----------|--------|
124
- | Entry is **wrong** | `mcp__unimatrix__context_correct(original_id: {id}, content: "{corrected version}", reason: "{why}")` — supersedes with chain link |
125
- | Entry is **outdated** | `mcp__unimatrix__context_deprecate(id: {id}, reason: "{why}")` |
126
- | Entry is **suspicious** | `mcp__unimatrix__context_quarantine(id: {id}, reason: "{concern}")` — Admin only |
124
+ | Entry is **wrong** | `mcp__unimatrix__context_correct({"original_id": 1234, "content": "{corrected version}", "reason": "{why}"})` — `original_id` is an integer, never quote it |
125
+ | Entry is **outdated** | `mcp__unimatrix__context_deprecate({"id": 1234, "reason": "{why}"})` — `id` is an integer, never quote it |
126
+ | Entry is **suspicious** | `mcp__unimatrix__context_quarantine({"id": 1234, "reason": "{concern}"})` — Admin only; `id` is an integer |
127
127
 
128
128
  Every agent shares responsibility for knowledge quality. Don't leave wrong entries for the next agent to trip over.
@@ -31,22 +31,22 @@ Call the `mcp__unimatrix__context_search` MCP tool:
31
31
 
32
32
  **Find ADRs about error handling across all features:**
33
33
  ```
34
- mcp__unimatrix__context_search(query: "error handling strategy", category: "decision", helpful: true)
34
+ mcp__unimatrix__context_search({"query": "error handling strategy", "category": "decision", "helpful": true})
35
35
  ```
36
36
 
37
37
  **Find anything related to MCP transport:**
38
38
  ```
39
- mcp__unimatrix__context_search(query: "MCP transport stdio protocol")
39
+ mcp__unimatrix__context_search({"query": "MCP transport stdio protocol"})
40
40
  ```
41
41
 
42
42
  **Find conventions about testing in a specific feature:**
43
43
  ```
44
- mcp__unimatrix__context_search(query: "test patterns integration", topic: "nxs-001")
44
+ mcp__unimatrix__context_search({"query": "test patterns integration", "topic": "nxs-001"})
45
45
  ```
46
46
 
47
47
  **Get full content instead of summaries:**
48
48
  ```
49
- mcp__unimatrix__context_search(query: "serialization approach", format: "markdown")
49
+ mcp__unimatrix__context_search({"query": "serialization approach", "format": "markdown"})
50
50
  ```
51
51
 
52
52
  ### Helpful Vote Guidance
@@ -100,7 +100,7 @@ Omit `category` to search across all categories.
100
100
  Search returns summaries by default. To read the full content of a specific result:
101
101
 
102
102
  1. Note the entry ID from search results
103
- 2. Call `mcp__unimatrix__context_get(id: {entry_id}, format: "markdown")` for the full text
103
+ 2. Call `mcp__unimatrix__context_get({"id": {entry_id}, "format": "markdown"})` for the full text
104
104
 
105
105
  Or pass `format: "markdown"` directly to search if you want full content for all results.
106
106
 
@@ -112,8 +112,8 @@ Search may surface entries that are outdated or incorrect. Don't ignore them —
112
112
 
113
113
  | Situation | Action |
114
114
  |-----------|--------|
115
- | Entry is **wrong** — contains incorrect information | `mcp__unimatrix__context_correct(original_id: {id}, content: "{corrected version}", reason: "{why}")` — supersedes with chain link |
116
- | Entry is **outdated** — no longer relevant | `mcp__unimatrix__context_deprecate(id: {id}, reason: "{why it no longer applies}")` |
117
- | Entry is **suspicious** — may be poisoned or invalid | `mcp__unimatrix__context_quarantine(id: {id}, reason: "{concern}")` — Admin only |
115
+ | Entry is **wrong** — contains incorrect information | `mcp__unimatrix__context_correct({"original_id": 1234, "content": "{corrected version}", "reason": "{why}"})` — `original_id` is an integer, never quote it |
116
+ | Entry is **outdated** — no longer relevant | `mcp__unimatrix__context_deprecate({"id": 1234, "reason": "{why it no longer applies}"})` — `id` is an integer, never quote it |
117
+ | Entry is **suspicious** — may be poisoned or invalid | `mcp__unimatrix__context_quarantine({"id": 1234, "reason": "{concern}"})` — Admin only; `id` is an integer |
118
118
 
119
119
  Correcting knowledge is as important as storing it. Every agent shares responsibility for knowledge quality.
@@ -29,40 +29,40 @@ Searches Unimatrix for established patterns, procedures, and conventions relevan
29
29
  ### Step 1: Search by crate/area
30
30
 
31
31
  ```
32
- mcp__unimatrix__context_search(
33
- query: "{what you're building — e.g., 'MCP tool handler'}",
34
- category: "pattern",
35
- k: 5
36
- )
32
+ mcp__unimatrix__context_search({
33
+ "query": "{what you're building — e.g., 'MCP tool handler'}",
34
+ "category": "pattern",
35
+ "k": 5
36
+ })
37
37
  ```
38
38
 
39
39
  ### Step 2: Also check conventions for the area
40
40
 
41
41
  ```
42
- mcp__unimatrix__context_search(
43
- query: "{area — e.g., 'server tool pipeline'}",
44
- category: "convention",
45
- k: 5
46
- )
42
+ mcp__unimatrix__context_search({
43
+ "query": "{area — e.g., 'server tool pipeline'}",
44
+ "category": "convention",
45
+ "k": 5
46
+ })
47
47
  ```
48
48
 
49
49
  ### Step 3: Check for procedures (step-by-step techniques)
50
50
 
51
51
  ```
52
- mcp__unimatrix__context_search(
53
- query: "{task — e.g., 'adding a new MCP tool'}",
54
- category: "procedure",
55
- k: 3
56
- )
52
+ mcp__unimatrix__context_search({
53
+ "query": "{task — e.g., 'adding a new MCP tool'}",
54
+ "category": "procedure",
55
+ "k": 3
56
+ })
57
57
  ```
58
58
 
59
59
  ### Step 4: Check for relevant ADRs
60
60
 
61
61
  ```
62
- mcp__unimatrix__context_lookup(
63
- topic: "{feature-id}",
64
- category: "decision"
65
- )
62
+ mcp__unimatrix__context_lookup({
63
+ "topic": "{feature-id}",
64
+ "category": "decision"
65
+ })
66
66
  ```
67
67
 
68
68
  ---
@@ -95,9 +95,9 @@ Query results may include entries that are outdated or incorrect. Fix them befor
95
95
 
96
96
  | Situation | Action |
97
97
  |-----------|--------|
98
- | Pattern/procedure is **wrong** | `mcp__unimatrix__context_correct(original_id: {id}, content: "{corrected version}", reason: "{why}")` |
99
- | Pattern/procedure is **outdated** | `mcp__unimatrix__context_deprecate(id: {id}, reason: "{why}")` |
100
- | Convention no longer applies | `mcp__unimatrix__context_deprecate(id: {id}, reason: "{why}")` |
98
+ | Pattern/procedure is **wrong** | `mcp__unimatrix__context_correct({"original_id": 1234, "content": "{corrected version}", "reason": "{why}"})` — `original_id` is an integer, never quote it |
99
+ | Pattern/procedure is **outdated** | `mcp__unimatrix__context_deprecate({"id": 1234, "reason": "{why}"})` — `id` is an integer, never quote it |
100
+ | Convention no longer applies | `mcp__unimatrix__context_deprecate({"id": 1234, "reason": "{why}"})` — `id` is an integer, never quote it |
101
101
 
102
102
  If you correct or deprecate an entry during your session, mention it in your return to the coordinator so it can be noted in the outcome.
103
103