一键导入
uni-store-adr
Store an architectural decision record in Unimatrix. ADRs live in Unimatrix only — no ADR files. Use after each design decision.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Store an architectural decision record in Unimatrix. ADRs live in Unimatrix only — no ADR files. Use after each design decision.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Version bump, changelog generation, tag, and push to trigger the release pipeline.
Manage a goal's capability map in Unimatrix — the behaviorally-proven units that must exist for a goal to be delivered. Decompose goals into capabilities, track delivery status, and report what's left. Status advances to proven ONLY on attached behavioral evidence.
Unimatrix Zero — vision guide mode. Strategic advisor for product evolution, feature ordering, vision alignment, security posture, and codebase health. Conversational. Does not modify application code or run delivery protocols.
Post-merge retrospective — extracts patterns, procedures, and lessons from shipped features into Unimatrix. Use after a feature PR is merged.
Ad-hoc independent product-lens review via uni-zero-reviewer. Use for re-reviews after rework or reviews outside protocol runs. Advisory only — human makes the call.
Store an architectural decision record in Unimatrix. ADRs live in Unimatrix only — no ADR files. Use after each design decision.
| name | uni-store-adr |
| description | Store an architectural decision record in Unimatrix. ADRs live in Unimatrix only — no ADR files. Use after each design decision. |
Stores an architectural decision record in Unimatrix as the sole authoritative store. ADRs are NOT written as files — Unimatrix provides search, supersession chains, and cross-feature discovery that files cannot.
Use this AFTER each design decision. The architect is the sole ADR authority.
mcp__unimatrix__context_search({"query": "{decision domain}", "category": "decision", "k": 5})
Check if any existing ADR covers the same concern. If so, you may need to supersede it (see "How to Supersede" below).
mcp__unimatrix__context_store({
"title": "ADR-NNN: {decision title}",
"content": "## Context\n{why this decision is needed}\n\n## Decision\n{what we decided}\n\n## Consequences\n{what follows from this decision}",
"topic": "{feature-id}",
"category": "decision",
"tags": ["adr", "{phase-prefix}", "{domain-tags}"],
"source": "architect",
"feature_cycle": "{feature-id}",
"agent_id": "{your role name, e.g. uni-architect}"
})
Note the Unimatrix entry ID returned. Pass it to the coordinator — downstream agents and the synthesizer need ADR entry IDs to reference decisions.
In your ARCHITECTURE.md, reference ADRs by Unimatrix entry ID:
## Decisions
| ADR | Title | Unimatrix ID |
|-----|-------|--------------|
| ADR-001 | Use rmcp 0.16 with stdio | #77 |
| ADR-002 | Additive confidence model | #85 |
When a new decision replaces a prior one:
mcp__unimatrix__context_search({"query": "{domain of old decision}", "category": "decision"})
Note the old entry's ID.
mcp__unimatrix__context_correct({
"original_id": 1234, // integer — never quote it
"content": "## Context\n{why the old decision is being replaced}\n\n## Decision\n{new decision}\n\n## Consequences\n{what changes}",
"title": "ADR-NNN: {new decision title}",
"reason": "Superseded by {feature-id}: {short explanation}"
})
This automatically:
ADRs relate to other entries. Most of that belongs in prose (the Context section). A typed graph edge is the rare exception — assert one ONLY when a future agent would have to follow it to avoid a wrong decision. This is the canonical convention; other skills/agents reference it.
The bar — all three must hold:
CoAccess (auto-inferred)
already cover topical relatedness. Author edges only the directional, causal relationships
inference cannot derive.The ONLY edge types an ADR author asserts:
| Edge | Assert when |
|---|---|
Prerequisite | The target must be read / acted-on before this decision is correct — intra-feature ordering, or a must-read cross-feature predecessor. |
Contradicts | A real, decision-blocking conflict with another entry. |
Supports | A lesson or pattern that directly caused or validates this decision (usually asserted at retro, once the lesson exists). |
Do NOT use RelatedTo, Mentions, About, or Informs for ADR authoring — those are the
"everything is connected" trap. Supersession is NOT an edge — use context_correct (above).
Each edge needs a one-clause justification. If you can't write "X is a Prerequisite of Y
because you'll act wrongly without reading it first," don't assert it.
Two moments to assert:
edges param of context_store:
mcp__unimatrix__context_store({
... (title, content, topic, category, tags, source, feature_cycle, agent_id as above) ...,
"edges": [{"edge_type": "Prerequisite", "target_id": 4742}]
})
Do NOT force edges to sibling ADRs that lack IDs yet — forward references fail. Leave those for retro.Prerequisite spine; Supports from a
lesson/pattern to the decision it validates) via:
mcp__unimatrix__context_edge({"mode": "add", "source_id": <from>, "edge_type": "Supports", "target_id": <to>})
Keep ADRs to 300-800 characters. They capture the decision, not the implementation.
## Context
The briefing tool returns duties, conventions, and semantic matches.
Duties duplicate what's already in agent definition files, consuming
~200 tokens for zero new information.
## Decision
Remove duties from Unimatrix categories and context_briefing responses.
Agent defs are the sole authority for role responsibilities.
## Consequences
- Briefing returns 2 sections (conventions + relevant context) instead of 3
- ~200 tokens freed per briefing call for more useful content
- 28 existing duty entries deprecated
- uni-init bootstrap no longer extracts duties
NOT a full design document. NOT implementation details. Just: why, what, and so-what.
| Tag Type | Examples |
|---|---|
| Always | adr |
| Phase prefix | nexus, vinculum, collective, cortical, alcove |
| Domain | storage, serialization, mcp, embedding, security, confidence |
| Cross-cutting | error-handling, async, thread-safety, api-design |
After storing:
| Don't Store | Why |
|---|---|
| Draft decisions under discussion | Store only finalized decisions |
| Implementation details (how) | ADRs capture the why — code captures the how |
| Decisions by other agents | Architect is the sole ADR authority |
| Coding conventions | Use convention category instead |
| Step-by-step procedures | Use /uni-store-procedure instead |