Loading...
Loading...
Validate Architecture Decision Records (ADR) against Layer 5 schema standards
npx skill4agent add vladm3105/aidoc-flow-framework doc-adr-validatorai_dev_flow/ADR/ADR_SCHEMA.yaml| ADR Type | Required Location |
|---|---|
| Monolithic | |
1. Check document is inside a nested folder: docs/05_ADR/ADR-NN_{slug}/
2. Verify folder name matches ADR ID pattern: ADR-NN_{slug}
3. Verify file name matches folder: ADR-NN_{slug}.md
4. Parent path must be: docs/05_ADR/docs/05_ADR/
├── ADR-01_f1_iam/
│ ├── ADR-01_f1_iam.md ✓ Valid
│ ├── ADR-01.R_review_report_v001.md
│ └── .drift_cache.json
├── ADR-02_f2_session/
│ └── ADR-02_f2_session.md ✓ Validdocs/05_ADR/
├── ADR-01_f1_iam.md ✗ NOT in nested folder| Code | Severity | Description |
|---|---|---|
| ADR-E020 | ERROR | ADR not in nested folder (BLOCKING) |
| ADR-E021 | ERROR | Folder name doesn't match ADR ID |
| ADR-E022 | ERROR | File name doesn't match folder name |
Required custom_fields:
- document_type: ["adr", "template"]
- artifact_type: "ADR"
- layer: 5
- architecture_approaches: [array format]
- priority: ["primary", "shared", "fallback"]
- development_status: ["active", "draft", "deprecated", "reference"]
Required tags:
- adr (or adr-template)
- layer-5-artifact
Forbidden tag patterns:
- "^architecture-decision$"
- "^decision-record$"
- "^adr-\\d{3}$"# ADR-NNN: TitleADR-NNN_descriptive_name.md| Code | Severity | Description |
|---|---|---|
| ADR-E001 | error | Missing required tag 'adr' |
| ADR-E002 | error | Missing required tag 'layer-5-artifact' |
| ADR-E003 | error | Invalid document_type |
| ADR-E004 | error | Invalid architecture_approaches format |
| ADR-E005 | error | Forbidden tag pattern detected |
| ADR-E006 | error | Missing required section |
| ADR-E007 | error | Multiple H1 headings detected |
| ADR-E008 | error | Missing Context section (Section 4) |
| ADR-E009 | error | Missing Decision section (Section 5) |
| ADR-E010 | error | Missing Consequences section (Section 7) |
| ADR-E011 | error | Context missing Problem Statement subsection |
| ADR-E012 | error | Decision missing Chosen Solution subsection |
| ADR-E013 | error | Consequences missing outcomes |
| ADR-E014 | warning | File name does not match format |
| ADR-W001 | warning | Missing Architecture Flow Mermaid diagram |
| ADR-W002 | warning | Context missing Constraints subsection |
| ADR-W003 | warning | Missing upstream tags (@prd, @ears, @bdd) |
| ADR-W004 | warning | Implementation Assessment missing Complexity |
| ADR-W005 | warning | SYS-Ready Score below 90% |
| ADR-W006 | warning | Requirements Satisfied table missing |
| ADR-I001 | info | Consider adding Alternatives Considered |
| ADR-I002 | info | Consider adding Security Considerations |
| ADR-I003 | info | Consider adding Rollback Plan |
# Validate single ADR document
python ai_dev_flow/scripts/validate_adr.py docs/05_ADR/ADR-001_example.md
# Validate all ADR documents
python ai_dev_flow/scripts/validate_adr.py docs/05_ADR/
# Check with verbose output
python ai_dev_flow/scripts/validate_adr.py docs/05_ADR/ --verboseADR Validation Report
=====================
Document: ADR-001_example.md
Status: PASS/FAIL
Structure:
- Context: Complete/Incomplete
- Decision: Complete/Incomplete
- Consequences: Complete/Incomplete
- Architecture Flow: Present/Missing
Errors: N
Warnings: N
Info: N
[Details listed by severity]| Version | Date | Changes | Author |
|---|---|---|---|
| 1.1 | 2026-02-11 | Nested Folder Rule: Added Section 0 Folder Structure Validation (BLOCKING); ADR must be in | |
| 1.0 | 2026-02-08 | Initial validator skill definition with YAML frontmatter | System |