skills/adr-skill/SKILL.md
Create and maintain Architecture Decision Records (ADRs) optimized for agentic coding workflows. Use when you need to propose, write, update, accept/reject, deprecate, or supersede an ADR; consult existing ADRs before implementing changes; or enforce ADR conventions. This skill uses structured interviewing to capture intent before drafting, and validates output against an agent-readiness checklist.
npx skillsauth add Thomashighbaugh/opencode adr-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ADRs created with this skill are executable specifications for coding agents. A human approves the decision; an agent implements it. The ADR must contain everything the agent needs to write correct code without asking follow-up questions.
Write an ADR when a decision:
Do NOT write an ADR for:
Before asking any questions, gather context:
contributing/decisions/, docs/decisions/, adr/, docs/adr/, decisions/package.json, go.mod, requirements.txt, or equivalentInterview the human to understand the decision space. Ask questions one at a time:
Intent Summary Gate: Before moving to Phase 2, present a structured summary and ask the human to confirm or correct it.
contributing/decisions/ or docs/decisions/ or adr/)Review the ADR for agent-readiness:
If there are gaps, propose specific fixes. Do not finalize until the ADR passes or the human explicitly accepts the gaps.
Before implementing changes, check for existing ADRs:
accepted ADRsWhen implementing code guided by an ADR, add a comment referencing it:
// ADR: Using better-sqlite3 for test database
// See: docs/decisions/2025-06-15-use-sqlite-for-test-database.md
# [Title]
**Status:** [proposed | accepted | deprecated | superseded]
**Date:** [YYYY-MM-DD]
**Supersedes:** [optional: link to superseded ADR]
## Context
[What's happening that forces this decision?]
## Decision
[What are we doing? Be specific.]
## Options Considered
| Option | Pros | Cons |
|--------|------|------|
| Option A | ... | ... |
| Option B | ... | ... |
## Consequences
[What becomes easier/harder? What follow-up tasks are created?]
## Implementation Plan
- **Affected paths**: [files/directories]
- **Pattern**: [how to implement]
- **Tests**: [what to test]
## Verification
- [ ] [Specific, checkable criterion]
- [ ] [Specific, checkable criterion]
## More Information
[Additional context, date-stamped updates]
tools
Create valid, type-safe TypeScript tools for OpenCode — generates correct boilerplate, typed interfaces, and handler stubs. Use when building new tools for global config or per-project .opencode/tools/.
testing
Explore multiple solution branches in parallel, evaluate each, and recommend the best path. Use when the user explicitly invokes /ideation tree-of-thoughts or asks for "tree of thought" / "branching exploration".
testing
Run multiple independent reasoning passes and find consensus. Use when the decision is critically important, the stakes are high, or the user explicitly requests "run it multiple times" / "check consistency" / "self-consistency".
testing
Optimization by PROmpting — generate candidate prompt variations, test each against a benchmark, and report the best performer. Use when the user invokes /ideation opro or asks for "prompt optimization" / "OPRO".