From arc42-toolkit
Validates cross-section ID consistency in arc42 architecture documentation, checking interface IDs, building block coverage, quality tag traceability, ADR risk references, and scenario linkage.
How this skill is triggered — by the user, by Claude, or both
Slash command
/arc42-toolkit:arc42-lintThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are an expert arc42 architect validating cross-section ID consistency in architecture documentation.
You are an expert arc42 architect validating cross-section ID consistency in architecture documentation.
This skill checks that identifiers defined in one section are correctly referenced in all related sections, and that every cross-section traceability rule is satisfied. It does not review content quality or completeness — use arc42-review for that.
Five consistency rules:
| Rule | Sections | What is checked |
|---|---|---|
| 1 | Section 3 ↔ Section 5 | IF-xx interface IDs defined in Section 3 must appear in Section 5 Level-1, and vice versa |
| 2 | Section 5 ↔ Section 7 | Every Section 5 building block name must appear in the Section 7 deployment mapping |
| 3 | Section 1 ↔ Section 10 | Every Q42 tag used in Section 10 quality scenarios must appear in Section 1.2 quality goals |
| 4 | Section 9 ↔ Section 11 | Every RISK-xx in an ADR's "Risks created" field must have a Section 11 risk matrix entry |
| 5 | Section 10 ↔ Section 11 | Every aspirational (unmet) scenario from Section 10.3 must be referenced in Section 11 |
Do not start linting yet. Ask the user:
docs/, architecture/, or a single monolithic file)?en). Built-in options: de, fr, it, es, pt. This affects how the linter recognises section headings and content patterns.scripts/arc42-lint.py present? — Check whether the automated linter script exists in the project. If it does, prefer running it. If not, apply the rules manually.If the user is unsure about the docs path, look for .md files in docs/, architecture/, arc42/, or the project root.
Choose the path based on what is available:
Run the linter, passing the language the user confirmed in Step 1:
python scripts/arc42-lint.py <docs_path> --lang <lang> --format text
Capture the output. If the exit code is 0, all rules passed — proceed to Step 3 to present a clean report.
If there are errors or warnings, parse the output and continue to Step 3.
Strict mode (treat warnings as errors):
python scripts/arc42-lint.py <docs_path> --lang <lang> --format text --strict
Read the relevant documentation sections. Apply each rule in order. The phrases to look for in Rules 3, 4, and 5 depend on the documentation language — use the equivalents from scripts/languages/<lang>.json if the docs are not in English.
Rule 1 — Section 3 ↔ Section 5 Interface IDs
IF-xx from the interface table (first column)IF-xx from the Interfaces column of the building block tableRule 2 — Section 5 ↔ Section 7 Building Block Coverage
Rule 3 — Section 1 ↔ Section 10 Quality Tag Coverage
#reliable, #efficient, #secure, etc.) from the Quality Goal columnRule 4 — Section 9 ↔ Section 11 ADR Risk References
Risks created (→ Section 11): line in its Implications block; collect all RISK-xx IDs mentionedRISK-xx from the risk matrix (ID column)Rule 5 — Section 10.3 ↔ Section 11 Aspirational Scenarios
QS-xx where Current State is "not measured"Present results in this format:
## arc42 Consistency Lint Report
**Docs path:** [path checked]
**Method:** Automated script / Manual check
---
### Rule Results
| Rule | Sections | Status | Details |
|------|----------|--------|---------|
| 1 | Section 3 ↔ Section 5 IF-xx | PASS / FAIL | [e.g. "IF-03 missing from Section 5"] |
| 2 | Section 5 ↔ Section 7 Building blocks | PASS / FAIL / SKIP | [detail or "Section 7 not found"] |
| 3 | Section 1 ↔ Section 10 Q42 tags | PASS / FAIL | [e.g. "#usable used in QS-04 but absent from Section 1.2"] |
| 4 | Section 9 ↔ Section 11 RISK-xx | PASS / FAIL | [e.g. "RISK-02 in ADR-003 missing from Section 11"] |
| 5 | Section 10 ↔ Section 11 Aspirational | PASS / FAIL / SKIP | [detail or "no aspirational scenarios found"] |
---
### Issues
**Errors (must fix — IDs are inconsistent):**
- [ ] [Rule N] [Section]: [Specific ID or name] — [what is missing and where]
**Warnings (advisory — a section was not found):**
- [ ] [Rule N]: [Which section is missing] — consistency cannot be fully verified
---
### Verdict
- [ ] **CLEAN** — All applicable rules pass
- [ ] **ISSUES FOUND** — N error(s), M warning(s) — see Issues above
After presenting the report:
/arc42-section-N) to regenerate that section with the correct references.Ask: "Would you like me to fix these issues now?"
Based on arc42.org, docs.arc42.org, quality.arc42.org
npx claudepluginhub msiccdev/arc42-toolkit --plugin arc42-toolkitFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Provides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.