mgiovani/cc-arsenal/skills/docs-adr/SKILL.md
docs-adr
Create a numbered Architecture Decision Record (ADR) documenting a technical decision with context, alternatives, and consequences. Trigger on "create an ADR", "document this architectural decision", "record why we chose X", or "write an ADR for [decision]". Not for a decision still open for discussion (use docs-rfc, RFCs propose, ADRs record) and not for bootstrapping a project's whole docs/ tree from scratch (use docs-init).
- Source repository stars
- 6
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-04
- Source checked
- 2026-08-04
Decision brief
What it does—and where it fits
Create a new Architecture Decision Record (ADR) documenting an architectural decision.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/mgiovani/cc-arsenal --skill "skills/docs-adr"Inspect the Agent Skill "docs-adr" from https://github.com/mgiovani/cc-arsenal/blob/410f2649860bb1892ee8c66721f57462eeefcf13/skills/docs-adr/SKILL.md at commit 410f2649860bb1892ee8c66721f57462eeefcf13. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Workflow
1. Extract the decision title from the command arguments. If no title was given, stop here and ask the user for one (and optionally which variant): don't invent a placeholder title or proceed to the later phases. 2. Check for a variant keyword as the leading token: lightweight,…
Extract the decision title from the command arguments. If no title was given, stopCheck for a variant keyword as the leading token: lightweight, full, or nygard.If a variant keyword is found, strip it from the title. - 02
Phase 1: Parse Arguments
1. Extract the decision title from the command arguments. If no title was given, stop here and ask the user for one (and optionally which variant): don't invent a placeholder title or proceed to the later phases. 2. Check for a variant keyword as the leading token: lightweight,…
Extract the decision title from the command arguments. If no title was given, stopCheck for a variant keyword as the leading token: lightweight, full, or nygard.If a variant keyword is found, strip it from the title. - 03
Phase 2: Determine ADR Number
Scan docs/adr/ for files matching XXXX-.
Scan docs/adr/ for files matching XXXX-.Find the highest existing number and increment by 1 (start at 0001 if none exist).Format as a 4-digit zero-padded number (e.g. 0001, 0023). - 04
Phase 3: Sanitize Title for Filename
Convert the title to kebab-case, lowercase, special characters stripped. Example: "Use Redis for Caching" - use-redis-for-caching.
Convert the title to kebab-case, lowercase, special characters stripped. Example: "Use Redis for Caching" - use-redis-for-caching. - 05
Phase 4: Gather Context
Use the Task tool with the Explore agent, when available, to search the codebase for the decision topic: current implementation (if any), related config files, dependencies involved, and existing documentation. Ask it to return verified file paths and relevant snippets, not summ…
Use the Task tool with the Explore agent, when available, to search the codebase for the decision topic: current implementation (if any), related config files, dependencies involved, and existing documentation. Ask it t…If the Task tool isn't available, run the equivalent searches directly instead: e.g. grep -rn "" across source files, find . -name ".config." or docker-compose.yml for infra-flavored decisions, find . -name "schema" -o…
Permission review
Static risk signals and limitations
Writes files
The documentation asks the agent to create, modify, or delete local files.
### Phase 6: Create ADR FileEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 84/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 6 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- mgiovani/cc-arsenal
- Skill path
- skills/docs-adr/SKILL.md
- Commit
- 410f2649860bb1892ee8c66721f57462eeefcf13
- License
- MIT
- Collected
- 2026-08-04
- Default branch
- main
View the original SKILL.md
Create Architecture Decision Record
Create a new Architecture Decision Record (ADR) documenting an architectural decision.
Anti-Hallucination Guidelines
ADRs document real decisions about real code: every claim in the ADR must be verifiable in the repo, not assumed. Before writing:
- Verify the technology exists: if the ADR mentions "Redis", confirm Redis is actually used somewhere in the codebase.
- Reference actual files: grep/glob to find real file paths; never invent one.
- Quote real code: if citing a pattern, find an actual example of it.
- Check current state: the Context section must reflect verified reality, not a plausible-sounding guess.
Workflow
Phase 1: Parse Arguments
- Extract the decision title from the command arguments. If no title was given, stop here and ask the user for one (and optionally which variant): don't invent a placeholder title or proceed to the later phases.
- Check for a variant keyword as the leading token:
lightweight,full, ornygard. A matching word inside the title itself (e.g. "Full-Text Search") is not a variant keyword, only strip it when it's a standalone token preceding the title. - If a variant keyword is found, strip it from the title.
- Default variant:
nygard.
Phase 2: Determine ADR Number
- Scan
docs/adr/for files matchingXXXX-*. - Find the highest existing number and increment by 1 (start at
0001if none exist). - Format as a 4-digit zero-padded number (e.g.
0001,0023).
Phase 3: Sanitize Title for Filename
Convert the title to kebab-case, lowercase, special characters stripped.
Example: "Use Redis for Caching" -> use-redis-for-caching.
Phase 4: Gather Context
Use the Task tool with the Explore agent, when available, to search the codebase for the decision topic: current implementation (if any), related config files, dependencies involved, and existing documentation. Ask it to return verified file paths and relevant snippets, not summaries it can't back up.
If the Task tool isn't available, run the equivalent searches directly instead:
e.g. grep -rn "<topic>" across source files, find . -name "*.config.*" or
docker-compose.yml for infra-flavored decisions, find . -name "*schema*" -o -name "*models*" for data-layer decisions. Either path, only include context you actually
found; an ADR with no verifiable context is a red flag, not something to pad with
plausible-sounding filler.
Phase 5: Load and Populate Template
- Templates live in
assets/templates/:nygard.md(default),lightweight.md,full.md. - Load the selected template and grep it for every
{{TOKEN}}placeholder it actually contains, the three templates use different token sets (e.g. nygard has{{CONTEXT}}; lightweight has{{PROBLEM}},{{DECISION}},{{ALTERNATIVES}},{{CONSEQUENCES}},{{NOTES}}; full has a longer set including{{AUTHORS}},{{STAKEHOLDERS}},{{OPTION_1_NAME}}, etc.). Don't assume a fixed list: fill whatever the loaded template actually contains. {{ADR_NUMBER}},{{ADR_TITLE}}, and{{DATE}}(YYYY-MM-DD) appear in all three; fill those from Phases 1-3 regardless of variant.- After substitution, scan the rendered output for any leftover
{{...}}: zero unresolved tokens before writing the file.
Phase 6: Create ADR File
- Filename:
docs/adr/XXXX-kebab-case-title.md. - Create
docs/adr/if it doesn't exist. - Write the populated content with initial Status set to "Proposed".
Phase 7: Report Creation
Report the ADR number, title, and file path, plus next steps (e.g. review with the team, flip Status to Accepted once approved).
Template Variants
| Variant | Sections | Use when |
|---|---|---|
| nygard (default) | Status, Context, Decision, Consequences | Most decisions, balanced detail |
| lightweight | Status, Decision, Rationale | Simple, straightforward decisions |
| full | Status, Context, Decision Drivers, Considered Options, Decision, Consequences (Positive/Negative/Neutral), Pros and Cons, Related Decisions, References | Complex, high-impact decisions |
Usage Examples
docs-adr "Database Migration Strategy"
-> docs/adr/0004-database-migration-strategy.md (nygard, next available number).
docs-adr lightweight "Use Redis for Session Storage"
-> strips "lightweight", verifies Redis is actually referenced in the repo, writes
docs/adr/0005-use-redis-for-session-storage.md with just Status/Decision/Rationale.
docs-adr full "Adopt Event-Driven Architecture"
-> writes the full variant with Considered Options and split Consequences, citing real messaging/event code found during context gathering.
ADR Numbering & Status Lifecycle
- First ADR is conventionally
0001-record-architecture-decisions.md(meta-ADR); subsequent ones auto-increment. - Status progresses: Proposed (default on creation) -> Accepted -> Deprecated or Superseded (by a later ADR, which should link back to this one).
Notes
- One decision per ADR: split unrelated decisions into separate records.
- Write in imperative language ("we will", not "we should").
- Document the real reasons a decision was made, including trade-offs and downsides, not the idealized version.
- Cross-link: reference related or superseded ADRs by number.
Alternatives
Compare before choosing
K-Dense-AI/scientific-agent-skills
biopython
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
mgiovani/cc-arsenal
team-review
Multi-agent review team: architecture, security, performance, testing, style, docs/UX, plus an adversary that cross-examines the other 6, for security-sensitive, architectural, or large PRs (15+ files) where a single-agent pass risks missing cross-cutting issues. Use for auth/payments/PII changes, schema/pattern changes, compliance sign-off, or when asked to 'get the review team on this' / 'multi-agent review' / 'thorough review before merge'. For a standard PR or a quick pre-merge check, use /r
K-Dense-AI/scientific-agent-skills
markdown-mermaid-writing
Comprehensive markdown and Mermaid diagram writing skill. Use when creating any scientific document, report, analysis, or visualization. Establishes text-based diagrams as the default documentation standard with full style guides (markdown + mermaid), 24 diagram type references, and 9 document templates.
mgiovani/cc-arsenal
create-skill
Create a new agent skill (or Claude Code slash command) from a plain-language description, using live spec fetching, pattern research, and an approval-gated blueprint before any files are written. Use whenever the user wants to build, scaffold, or author a new skill, subagent capability, or slash command, including phrasings like 'make a command for X', 'create a slash command', 'turn this into a reusable skill', or 'package this workflow as a skill'. Not for editing CLAUDE.md/AGENTS.md memory r