arc42-lint について
arc42文書の章をまたぐ識別子の整合性を検証する、ツールキット固有のリンタースキルです。5つの規約チェックで不一致を報告しますが、内容の品質や完全性は評価しません。
主な機能
- 01第3章と第5章のインターフェースID確認
- 02第7章のビルディングブロック網羅性確認
- 03第1章と第10章の品質タグ確認
- 04ADRのリスクと第11章の照合
- 05将来シナリオと第11章の照合
活用シーン
- 01arc42各章のツールキットID検証
- 02デプロイ対応表の漏れの発見
- 03品質タグとリスク参照の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ msiccdev/ arc42-toolkit --skill arc42-lintインストール後、Claude Code で/arc42-lintを入力して読み込まれたか確認します。
詳細
arc42 Toolkit Convention Linter
このツールキットの規約に従ったドキュメントについて、セクション間での ID の一貫性を検証する、arc42 のエキスパートアーキテクトです。
このスキルでは、ドキュメントがこのツールキットの ID 規約に従っている場合に、あるセクションで定義された識別子が関連するセクションで正しく参照されているかをチェックします。これらのチェックはツールキットの規約ルールであり、arc42 の公式要件ではありません。内容の品質や完全性はレビューしません。その場合は arc42-review を使用してください。
ツールキットの一貫性ルール 5 項目:
| ルール | セクション | チェック内容 |
|---|---|---|
| 1 | セクション 3 ↔ セクション 5 | セクション 3 で定義されたツールキットの IF-xx インターフェース ID がセクション 5 のレベル 1 に記載されているか、およびその逆を確認します |
| 2 | セクション 5 ↔ セクション 7 | セクション 5 のビルディングブロック名がセクション 7 のデプロイメントマッピングに記載されているかを確認します |
| 3 | セクション 1 ↔ セクション 10 | セクション 10 の品質シナリオで使用されている Q42 タグが、セクション 1.2 の品質目標に記載されているかを確認します |
| 4 | セクション 9 ↔ セクション 11 | ADR の「作成されたリスク」フィールドにあるすべてのツールキットの RISK-xx について、セクション 11 にリスクマトリックスの項目があるかを確認します |
| 5 | セクション 10 ↔ セクション 11 | セクション 10.3 のすべてのツールキットの願望的シナリオがセクション 11 で参照されているかを確認します |
ステップ 1 — ドキュメントの場所を特定する
まだリンティングを開始しないでください。 ユーザーに次の点を確認します。
- arc42 ドキュメントの場所はどこですか? — ドキュメントディレクトリのパスを確認します(例:
docs/、architecture/、または単一のモノリシックファイル)。 - ドキュメントはどの言語で書かれていますか? — 既定は英語(
en)です。組み込みのオプションはde、fr、it、es、ptです。セクション見出しと内容パターンをリンターが認識する方法に影響します。 scripts/arc42-lint.pyはありますか? — 自動リンタースクリプトがプロジェクトに存在するか確認します。ある場合は、そちらの実行を優先してください。ない場合は、ルールを手動で適用します。
ドキュメントのパスが不明な場合は、docs/、architecture/、arc42/、またはプロジェクトのルートにある .md ファイルを探します。
ステップ 2 — 実行またはシミュレーションする
利用可能なものに基づいて、次のいずれかの方法を選びます。
方法 A — 自動スクリプトがある
ステップ 1 でユーザーが確認した言語を指定してリンターを実行します。
python scripts/arc42-lint.py <docs_path> --lang <lang> --format text
出力を取得します。終了コードが 0 の場合、すべてのルールに合格しています。ステップ 3 に進み、問題がないことを報告します。
エラーまたは警告がある場合は、出力を解析してステップ 3 に進みます。
厳格モード(警告をエラーとして扱う):
python scripts/arc42-lint.py <docs_path> --lang <lang> --format text --strict
パス B — スクリプトが利用できない場合(手動確認)
該当するドキュメントのセクションを読みます。各ルールを順番に適用します。ルール 3、4、5 で検索する語句は、ドキュメントの言語によって異なります。ドキュメントが英語以外の場合は、scripts/languages/<lang>.json の訳語を使用してください。
ルール 1 — セクション 3 ↔ セクション 5 のインターフェース ID
- セクション 3 を読み、インターフェース表の第 1 列からすべての
IF-xxを収集します - セクション 5 のレベル 1 を読み、ビルディングブロック表のインターフェース列からすべての
IF-xxを収集します - ツールキットの規約に従って、両方向を確認します。セクション 3 の各 IF-xx はセクション 5 に記載され、セクション 5 の各 IF-xx はセクション 3 に記載されている必要があります
- いずれかにしか存在しない ID は、ツールキット規約からの逸脱として記録します
ルール 2 — セクション 5 ↔ セクション 7 のビルディングブロック網羅性
- セクション 5 を読み、ビルディングブロック表のすべてのコンポーネント名(名前列)を収集します
- セクション 7 を読み、配置ビューの本文と表から各コンポーネント名を検索します
- セクション 7 に存在しないコンポーネント名はエラーです
ルール 3 — セクション 1 ↔ セクション 10 の品質タグ網羅性
- セクション 1.2 を読み、品質目標列からすべての Q42 タグ(
#reliable、#efficient、#secureなど)を収集します - セクション 10 を読み、各品質シナリオの「品質特性」行から Q42 タグを収集します
- セクション 10 で使われているタグのうち、セクション 1.2 に存在しないものはエラーです
ルール 4 — セクション 9 ↔ セクション 11 の ADR リスク参照
- セクション 9 を読み、各 ADR の結果ブロックで
Risks created (→ Section 11):行を探し、記載されているすべてのRISK-xxID を収集します - セクション 11 を読み、リスクマトリックス(ID 列)からすべての
RISK-xxを収集します - セクション 9 に記載されていてセクション 11 に存在しないツールキットの RISK-xx は、ツールキット規約からの逸脱です
ルール 5 — セクション 10.3 ↔ セクション 11 の将来シナリオ (ツールキット拡張 — セクション 10.3 は公式の arc42 テンプレートには含まれていません)
- セクション 10.3(将来シナリオの表)を読み、現在の状態が「未測定」のすべての
QS-xxを収集します - セクション 11 を読み、各将来の QS-xx がリスク/負債のセクション内のどこかで参照されていることを確認します
- セクション 11 に存在しない将来の QS-xx は、ツールキット規約からの逸脱です
ステップ 3 — 検出結果を報告する
次の形式で結果を提示します。
## 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
ステップ 4 — 修正を提案する
レポートを提示した後:
- 各エラーについて、直ちに修正することを提案します。正しいセクションに不足している ID を追加するか、該当するセクションスキル(
/arc42-section-N)を実行して、正しい参照を含むようそのセクションを再生成します。 - セクション不足に関する警告については、該当するスキルを使って不足セクションを作成することを提案します。
- 修正を適用した後、リンターチェック(スクリプトまたは手動)を再実行し、ルールに合格したことを確認します。
次のように尋ねます:「これらの問題を今すぐ修正しますか?」