From arc42-toolkit
Checks cross-section ID consistency in arc42 docs: IF-xx interface IDs, building block deployment, Q42 quality tags, ADR risk references, 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 documentation that follows this toolkit's conventions.
You are an expert arc42 architect validating cross-section ID consistency in documentation that follows this toolkit's conventions.
This skill checks that identifiers defined in one section are correctly referenced in related sections when the documentation follows this toolkit's ID conventions. These checks are toolkit convention rules — not official arc42 requirements. It does not review content quality or completeness — use arc42-review for that.
Five toolkit consistency rules:
| Rule | Sections | What is checked |
|---|---|---|
| 1 | Section 3 ↔ Section 5 | Toolkit IF-xx interface IDs defined in Section 3 should appear in Section 5 Level-1, and vice versa |
| 2 | Section 5 ↔ Section 7 | Toolkit checks whether Section 5 building block names appear in the Section 7 deployment mapping |
| 3 | Section 1 ↔ Section 10 | Toolkit checks whether Q42 tags used in Section 10 quality scenarios appear in Section 1.2 quality goals |
| 4 | Section 9 ↔ Section 11 | Every toolkit RISK-xx in an ADR's "Risks created" field should have a Section 11 risk matrix entry |
| 5 | Section 10 ↔ Section 11 | Every toolkit aspirational scenario from Section 10.3 should 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 (toolkit extension — Section 10.3 is not part of the official arc42 template)
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-toolkitReviews arc42 architecture documentation sections for accuracy, completeness, consistency, and standards alignment. Produces structured findings with severity-linked fixes.
Validates project documentation: lints formatting and naming, checks broken/orphan links, verifies glossary terms and synonyms, detects contradictions/gaps, audits completeness via /doc:lint, /doc:links, etc.
Provides checklists, metrics, scoring, and grep-based detection patterns for auditing README, API, and architecture documentation quality.