skills/arckit-adr/SKILL.md
Document architectural decisions with options analysis and traceability
npx skillsauth add tractorjuice/arckit-codex arckit-adrInstall 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.
You are helping an enterprise architect create an Architecture Decision Record (ADR) following MADR v4.0 format enhanced with UK Government requirements.
$ARGUMENTS
Note: Before generating, scan
projects/for existing project directories. For each project, list allARC-*.mdartifacts, checkexternal/for reference documents, and check000-global/for cross-project policies. If no external docs exist but they would improve output, ask the user.
MANDATORY (warn if missing):
$arckit-principles first$arckit-requirements firstRECOMMENDED (read if available, note if missing):
OPTIONAL (read if available, skip silently if missing):
external/ files) — extract previous architectural decisions, decision rationale, options considered, decision outcomesprojects/000-global/external/ — extract enterprise decision frameworks, architecture review board templates, cross-project decision logsprojects/{project-dir}/external/ and re-run, or skip.".arckit/references/citation-instructions.md. Place inline citation markers (e.g., [PP-C1]) next to findings informed by source documents and populate the "External References" section in the template.Before creating the ADR, ask the user for key decision parameters. Skip any question where the user has already provided a clear answer in their arguments.
Gathering rules (apply to all questions in this section):
Question 1 — header: Escalation, multiSelect: false
"What escalation level does this architectural decision require?"
Question 2 — header: Options, multiSelect: false
"How many options should be evaluated (plus a 'Do Nothing' baseline)?"
Apply the user's selections: the escalation level determines the governance forum and stakeholder RACI in the ADR. The option count determines how many alternatives to analyze in the "Considered Options" section (always include "Do Nothing" as baseline).
projects/*/ directories and find the highest NNN-* number (or start at 001 if none exist)002)projects/{NNN}-{slug}/README.md with the project name, ID, and date — the Write tool will create all parent directories automaticallyprojects/{NNN}-{slug}/external/README.md with a note to place external reference documents herePROJECT_ID = the 3-digit number, PROJECT_PATH = the new directory pathprojects/{project-slug}/decisions/ADR-*.md filesADR-001ADR-003 → ADR-004), zero-padded to 3 digitsFirst, check if .arckit/templates-custom/adr-template.md exists in the project root
If found: Read the user's customized template (user override takes precedence)
If not found: Read .arckit/templates/adr-template.md (default)
Tip: Users can customize templates with
$arckit-customize adr
Document Control (see "Auto-Populate Document Control Fields" section below for full details):
Document ID: ARC-{PROJECT_ID}-ADR-{NUM}-v{VERSION} (e.g., ARC-001-ADR-001-v1.0)
ADR Number: ADR-{NUM} (e.g., ADR-001, ADR-002)
Version: ${VERSION} (from Step 0: Detect Version)
Status: Proposed (or as user specified)
Date: Current date (YYYY-MM-DD)
Escalation Level: Based on decision scope
Governance Forum: Based on escalation level
Stakeholders:
Deciders: Who has authority to approve this ADR?
Consulted: Subject matter experts to involve (two-way communication)
Informed: Stakeholders to keep updated (one-way communication)
UK Government Escalation Context:
Context and Problem Statement:
Problem description (2-3 sentences or story format)
Why is this decision needed?
Business context (link to BR-xxx requirements)
Technical context (link to FR-xxx, NFR-xxx requirements)
Regulatory context (GDPR, GDS Service Standard, Cyber Essentials)
Supporting links (user stories, requirements, research)
Decision Drivers (Forces):
Technical drivers: Performance, scalability, maintainability, security
Business drivers: Cost, time to market, risk reduction
Regulatory & compliance drivers:
Alignment to architecture principles: Create table showing which principles support/conflict
Considered Options (MINIMUM 2-3 options, always include "Do Nothing"):
For each option:
Description: What is this option?
Implementation approach: How would it be implemented?
Wardley Evolution Stage: Genesis / Custom-Built / Product / Commodity
Good (Pros):
Bad (Cons):
Cost Analysis:
GDS Service Standard Impact: Create table showing impact on relevant points
Option: Do Nothing (Baseline):
Always include this as baseline comparison
Pros: No immediate cost, no risk
Cons: Technical debt accumulates, opportunity cost, compliance risk
Decision Outcome:
Chosen Option: Which option was selected
Y-Statement (structured justification):
In the context of [use case], facing [concern], we decided for [option], to achieve [quality/benefit], accepting [downside/trade-off].
Justification: Why this option over alternatives?
Consequences:
Positive: Benefits, capabilities enabled, compliance achieved
Negative: Accepted trade-offs, limitations, technical debt
Neutral: Changes needed (training, infrastructure, process, vendors)
Risks and Mitigations: Create table with risk, likelihood, impact, mitigation, owner
Validation & Compliance:
How will implementation be verified?
Monitoring & Observability:
Compliance verification:
Links to Supporting Documents:
Requirements traceability:
Architecture artifacts:
Design documents:
External references:
Implementation Plan:
Dependencies: Prerequisite ADRs, infrastructure, team skills
Implementation timeline: Phases, activities, duration, owners
Rollback plan: Trigger, procedure, owner
Review and Updates:
Review schedule: Initial (3-6 months), periodic (annually)
Review criteria: Metrics met? Assumptions changed? Still optimal?
Trigger events: Version changes, cost changes, security incidents, regulatory changes
Related Decisions:
Depends on: ADR-xxx
Depended on by: ADR-yyy
Conflicts with: ADR-zzz (how resolved)
Appendices (optional):
Options analysis details: Benchmarks, PoC results
Stakeholder consultation log: Date, stakeholder, feedback, action
Mermaid decision flow diagram: Visual representation of decision logic
ARC-{PROJECT_ID}-ADR-{NUM}-v{VERSION}.mdARC-001-ADR-001-v1.0.md, ARC-001-ADR-002-v1.0.mdprojects/{PROJECT_ID}-{project-name}/decisions/ARC-{PROJECT_ID}-ADR-{NUM}-v{VERSION}.mdBefore writing the file, read .arckit/references/quality-checklist.md and verify all Common Checks plus the ADR per-type checks pass. Fix any failures before proceeding.
projects/{PROJECT_ID}-{project-name}/decisions/ARC-{PROJECT_ID}-ADR-{NUM}-v${VERSION}.mdCRITICAL - Auto-Populate Document Control Fields:
Before completing the document, populate ALL document control fields in the header:
Before generating the document ID, check if a previous version exists:
ADRs are multi-instance documents. Version detection depends on whether you are creating a new ADR or updating an existing one:
Creating a new ADR (default): Use VERSION="1.0" — the ADR number is auto-incremented by --next-num.
Updating an existing ADR (user explicitly references an existing ADR number, e.g., "update ADR-001", "revise ADR-003"):
ARC-{PROJECT_ID}-ADR-{NUM}-v*.md files in projects/{project-dir}/decisions/ARC-{PROJECT_ID}-ADR-{NNN}-v{VERSION} (e.g., ARC-001-ADR-001-v1.0){NNN}: Check existing files in decisions/ and use the next number (001, 002, ...)Auto-populated fields (populate these automatically):
[PROJECT_ID] → Extract from project path (e.g., "001" from "projects/001-project-name")[VERSION] → Determined version from Step 0[DATE] / [YYYY-MM-DD] → Current date in YYYY-MM-DD format[DOCUMENT_TYPE_NAME] → "Architecture Decision Record"ARC-[PROJECT_ID]-ADR-[NUM]-v[VERSION] → Construct using format from Step 1[COMMAND] → "arckit.adr"User-provided fields (extract from project metadata or user input):
[PROJECT_NAME] → Full project name from project metadata or user input[OWNER_NAME_AND_ROLE] → Document owner (prompt user if not in metadata)[CLASSIFICATION] → Default to ${user_config.default_classification}; if unavailable, use "OFFICIAL" for UK Gov, "PUBLIC" otherwise (or prompt user)Calculated fields:
[YYYY-MM-DD] for Review Date → Current date + 30 days (requirements, research, risks)[YYYY-MM-DD] for Review Date → Phase gate dates (Alpha/Beta/Live for compliance docs)Pending fields (leave as [PENDING] until manually updated):
[REVIEWER_NAME] → [PENDING][APPROVER_NAME] → [PENDING][DISTRIBUTION_LIST] → Default to "Project Team, Architecture Team" or [PENDING]| 1.0 | {DATE} | ArcKit AI | Initial creation from `$arckit-adr` command | [PENDING] | [PENDING] |
The footer should be populated with:
**Generated by**: ArcKit `$arckit-adr` command
**Generated on**: {DATE} {TIME} GMT
**ArcKit Version**: {ARCKIT_VERSION}
**Project**: {PROJECT_NAME} (Project {PROJECT_ID})
**AI Model**: [Use actual model name, e.g., "claude-sonnet-4-5-20250929"]
**Generation Context**: [Brief note about source documents used]
## Document Control
| Field | Value |
|-------|-------|
| **Document ID** | ARC-001-ADR-003-v1.0 |
| **Document Type** | Architecture Decision Record |
| **Project** | Windows 10 to Windows 11 Migration (Project 001) |
| **Classification** | OFFICIAL-SENSITIVE |
| **Status** | DRAFT |
| **Version** | 1.0 |
| **Created Date** | 2025-10-29 |
| **Last Modified** | 2025-10-29 |
| **Review Date** | 2025-11-30 |
| **Owner** | John Smith (Enterprise Architect) |
| **Reviewed By** | [PENDING] |
| **Approved By** | [PENDING] |
| **Distribution** | PM Team, Architecture Team, Dev Team |
## Revision History
| Version | Date | Author | Changes | Approved By | Approval Date |
|---------|------|--------|---------|-------------|---------------|
| 1.0 | 2025-10-29 | ArcKit AI | Initial creation from `$arckit-adr` command | [PENDING] | [PENDING] |
## Architecture Decision Record Created
**ADR Number**: ADR-{NUM}
**Title**: {Decision title}
**Status**: {Proposed/Accepted/etc}
**File**: `projects/{PROJECT_ID}-{project-name}/decisions/ARC-{PROJECT_ID}-ADR-{NUM}-v${VERSION}.md`
### Chosen Option
{Option name}
### Y-Statement
> In the context of {use case},
> facing {concern},
> we decided for {option},
> to achieve {quality},
> accepting {downside}.
### Options Considered
- Option 1: {Name} - {Brief summary}
- Option 2: {Name} - {Brief summary}
- Option 3: Do Nothing - Baseline comparison
### Key Consequences
**Positive**:
- {Benefit 1}
- {Benefit 2}
**Negative** (accepted trade-offs):
- {Trade-off 1}
- {Trade-off 2}
### Decision Drivers
- {Driver 1}: {Brief description}
- {Driver 2}: {Brief description}
### Requirements Addressed
- BR-XXX: {Business requirement}
- FR-XXX: {Functional requirement}
- NFR-XXX: {Non-functional requirement}
### Traceability Links
- Architecture principles: {Count} principles referenced
- Stakeholder goals: {Count} goals supported
- Requirements: {Count} requirements addressed
- Risks: {Count} risks mitigated
### Next Steps
- [ ] Stakeholder review and approval
- [ ] Update status to "Accepted" once approved
- [ ] Reflect decision in HLD/DLD
- [ ] Update architecture diagrams
- [ ] Implement decision
- [ ] Verify with testing
- [ ] Schedule ADR review ({Date})
### UK Government Compliance
**Escalation Level**: {Level}
**Governance Forum**: {Forum}
**GDS Service Standard**: Points {X, Y, Z} addressed
**Technology Code of Practice**: Points {A, B, C} addressed
Token Limit: ADRs are very large documents. Always use Write tool to create the file, never output full content
Minimum Options: Always analyze at least 2-3 options plus "Do Nothing" baseline
Y-Statement: This is the concise justification format - always include it
Traceability: Every ADR must link to requirements, principles, stakeholders, risks
UK Government: Include escalation level and governance forum for compliance
MADR Format: Follow MADR v4.0 structure (Context, Decision Drivers, Options, Outcome, Consequences)
Evidence-Based: Decisions should be supported by research findings, benchmarks, PoCs
Wardley Evolution: Consider evolution stage (Genesis/Custom/Product/Commodity) when choosing options
GDS Service Standard: Document which Service Standard points the decision addresses
Technology Code of Practice: Show TCoP compliance (Point 5: Cloud first, Point 8: Reuse, etc.)
Security: Include NCSC guidance, Cyber Essentials, security testing requirements
Review Schedule: Every ADR needs review schedule and trigger events for re-evaluation
Rollback Plan: Document how to rollback if decision proves wrong
Cost Analysis: Always include CAPEX, OPEX, TCO for each option
Consequences: Be explicit about both positive and negative consequences
Validation: Define how implementation will be verified (review, testing, monitoring)
Markdown escaping: When writing less-than or greater-than comparisons, always include a space after < or > (e.g., < 3 seconds, > 99.9% uptime) to prevent markdown renderers from interpreting them as HTML tags or emoji
| Level | Decision Makers | Example Decisions | Governance Forum | |-------|----------------|-------------------|------------------| | Team | Tech Lead, Senior Developers | Framework choice, testing strategy, code patterns | Team standup, Sprint review | | Cross-team | Technical Architects, Lead Engineers | Integration patterns, API standards, shared libraries | Architecture Forum, Technical Design Review | | Department | Enterprise Architects, CTO, Architecture Board | Cloud provider, security framework, technology standards | Architecture Review Board, Enterprise Architecture Board | | Cross-government | Technical Design Authority, GDS | National infrastructure, cross-department APIs, GOV.UK standards | Technical Design Council, GDS Architecture Community |
After completing this command, consider running:
$arckit-hld-review -- Reflect decision in High-Level Design$arckit-diagram -- Update architecture diagrams$arckit-traceability -- Update traceability matrix with decision linkstools
Procurement market intelligence — award-value benchmarks, top suppliers, incumbency and concentration, from the UK Tenders MCP
tools
Competitor landscape — rival suppliers, awarded-value market share, head-to-head and concentration, from the UK Tenders MCP
development
[COMMUNITY] Generate a SOCI Act Critical Infrastructure Risk Management Program (CIRMP) governance and evidence pack for Australian critical infrastructure assets.
development
[COMMUNITY] Generate an ASD operational technology cyber security assessment for Australian Government and critical-infrastructure projects with connected OT environments.