/adr — Architecture Deep Research
When the user invokes /adr (or asks any of the trigger questions in the description above), do the following.
Step 1. Confirm the decision name
Ask the user one question, in chat:
What's the architecture decision you're making? (e.g. "event bus topology", "retrieval architecture", "auth provider")
Capture their answer as <DECISION>.
If the user already named the decision when they invoked the skill, skip the question.
Step 2. Run discover-first deep-research via the MCP server
Call the adr_deep_research MCP tool with these arguments:
{
"discover_first": true,
"repo_path": ".",
"domain": "<infer from the user's project — read README/package.json/etc. if needed>",
"decision": "<DECISION>",
"out_dir": ".adr-runs/<short-slug-of-decision>"
}
This will:
- Scan the user's repo and draft a PRD (no network calls).
- Run the full ADR pipeline against the draft (research, knowledge map, comparison matrix, synthesis, citation audit, evaluation pack).
- Return the parsed
execution-handoff.jsonso you can summarize the decision.
A run typically takes 3–6 minutes. Tell the user roughly how long it'll take before calling the tool so the wait doesn't feel like a hang.
Step 3. Summarize the result
The tool response includes:
handoff.selected_topology— the chosen architecture familyhandoff.required_invariants— non-negotiable constraintshandoff.forbidden_topologies— what NOT to dohandoff.critique_summary.recommend_human_review— if true, the kernel is telling you the decision is borderlinehandoff.comparison_matrix_summary— candidate count, empty cellshandoff.citation_audit_summary— how many citations verified
Show the user a 3–5 line summary:
Selected: <topology>
Required: <2 most important invariants>
Avoid: <forbidden topologies>
<if recommend_human_review: "⚠ recommend_human_review=true — see ADR.md for the borderline.">
Then offer to:
- Open
ADR.mdfor the full human-readable decision record - Walk through the comparison matrix
- Implement using
execution-handoff.jsonas the contract
Step 4. (optional) Implement under the handoff
If the user says "go ahead and implement," read <out_dir>/execution-handoff.json and treat it as a hard contract:
- Honor
required_invariantsin the code you write - Never reach for anything in
forbidden_topologies - Run against
domain-evaluation-pack.jsontest cases before declaring done
Failure modes
- No LLM provider configured: the tool will return an isError result. Tell the user to
export ADR_OPENAI_API_KEY=...(orOPENAI_API_KEY) and re-invoke. - No live search provider configured: same as above, but for
BRAVE_SEARCH_API_KEY/TAVILY_API_KEY/SERPER_API_KEY/SEARXNG_URL, OR the OpenAI key fallback for hostedweb_search. recommend_human_review: true: do NOT proceed to implementation. Show the user the borderline and ask whether to accept the decision, override it, or run a superseding ADR with a tighter brief.
Notes for Claude
- The MCP tool name is
adr_deep_research. Call it through the MCP host's tool-call mechanism — do not try to spawn a subprocess. - The skill assumes the
adrMCP server is registered in the user's Claude Code config. If it isn't, point them atexamples/claude-code-skill/.mcp.jsonin the beevibe-cto repo. - For quick scans without the full deep-research run, use
adr_discoverinstead. It returns only the draft PRD and skips the live-research loop.