ADR-0039: 適用範囲は見出しへ書き、案件ごとの確定と変更ごとの判定を分ける
採用(2026-08-13)
コンテキスト
Section titled “コンテキスト”案件 P-001 で、適用されない条項を全体へ課し、判定者に不要な作業を発生させる事象が起きました(#226)。
対象は第5章 5.7.3(選択肢の比較)です。この条項はリスク区分 R1 の決定と例外承認に限って適用されますが、限定は本文の先頭1行にあり、太字が付いていたのは箇条書きの禁止文でした。案件は箇条書きだけを読み、限定を落としました。
標準の記述は誤っていません。読み方を誤りました。 それでも、次の2つを構造の問題として扱います。
限定が、規範とは別の段落にあった
Section titled “限定が、規範とは別の段落にあった”目的を持って条文を探す読み手は、目的に合致する文言を見つけた時点で読むのを止めます。実行主体はとくにそうです。限定が別の段落にあれば届きません。
同じ形は他にもあります。一方で、5.8.4(テスト生成における独立性)は表の「適用」列で、第6章のテンプレ4 は欄名の括弧書きで適用範囲を示しており、読み落としにくい形が標準の中に既にあります。
適用範囲を導く経路が案件に無かった
Section titled “適用範囲を導く経路が案件に無かった”案件の構成には q-criticality: cl0 が記録されていましたが、そこから「5.7.3 は適用されない」を導く経路がありません。案件は、標準本文を全部読まずに自分へ適用される条項を知る手段を持ちませんでした。
これは#216で確定した「規定が実行層へ降りていない」の裏返しです。規定の適用範囲が降りていない場合、結果は過剰適用になります。
案件の推論そのものにも誤りがあった
Section titled “案件の推論そのものにも誤りがあった”案件は「安全重要度 CL0 であるから R1 ではない」と導きましたが、リスク区分は変更ごと、安全重要度は案件ごとに判定する別の軸です。第3章 3.8.1 の R1 は、外部との契約・公開インタフェース・データ形式の変更、認証・認可・個人データの取扱いへの影響、事業継続への影響で判定します。CL0 の案件でも R1 の変更は起こります。
したがって「案件へ適用される条項の一覧を構成へ出力する」という素直な対処は、そのまま実装すると危険です。安全重要度からリスク区分依存の条項を適用外と宣言すると、R1 の変更に対しても適用外と読めます。
1. 節全体に掛かる適用範囲は、見出しへ併記する
Section titled “1. 節全体に掛かる適用範囲は、見出しへ併記する”書式は (適用: …) とします。第6章のテンプレ4 が欄名で用いている形を、条項の見出しへ広げます。新しい記法を作りません。
2. 個々の規範に掛かる限定は、その規範と同じ行へ書く
Section titled “2. 個々の規範に掛かる限定は、その規範と同じ行へ書く”箇条書きや表の行が限定を持つ場合は、行の中に書きます。限定を、規範とは別の段落へ置きません。
限定表現を地の文へ置いた節は機械的に警告します。該当しない節は登録簿へ理由付きで登録し、登録そのものを判断の記録とします。
3. 適用範囲の台帳を自動生成する
Section titled “3. 適用範囲の台帳を自動生成する”見出しの注記を正本として抽出します。二重管理を作らないため、注記とは別のマーク体系を設けません。実装マーク・根拠水準マークに次ぐ3つ目の書式は作りません。
4. 判定の単位を、案件ごとと変更ごとに分ける
Section titled “4. 判定の単位を、案件ごとと変更ごとに分ける”| 単位 | 条件の例 | 案件単位で適用外にできるか |
|---|---|---|
| 案件ごと | 安全重要度、チーム規模、開発形態(軸A〜E) | できる |
| 変更ごと | リスク区分(R) | できない |
リスク区分に依存する条項を、案件単位で適用外にしてはなりません。テーラリングの禁止事項へ加えます。
5. テーラリングの出力が示せる範囲を限定する
Section titled “5. テーラリングの出力が示せる範囲を限定する”構成が示せるのは、軸A〜E に依存する条項の適用と、リスク区分に依存する条項について「変更ごとに判定を要する」ことまでです。適用の有無を出力しません。
検討した選択肢
Section titled “検討した選択肢”| 案 | 却下の理由 |
|---|---|
| 案件の構成へ「適用される条項の一覧」を出力する | 安全重要度からリスク区分依存の条項を適用外と宣言する。今回より悪い取りこぼしを生む |
| 適用範囲マークを新設する(実装マークと同じ書式) | 見出しと二重管理になる。見出しに書けば人と機械の双方へ同時に届く |
| 章の冒頭へ適用範囲を持つ条項の一覧を手で置く | 条項の改訂に追随しない。台帳を自動生成すれば足りる |
| 限定の位置を規則にせず、太字を付けるだけにする | 強調の競合が起きる。禁止文と限定が同じ視認性で並ぶと、どちらが範囲か読み取れない |
| 記述の問題として扱わず、読み方の誤りとして案件へ返す | 同じ誤り方が繰り返す。実行主体が条文を検索して読む前提が変わらない |
- 適用範囲が限定される条項は、見出しに
(適用: …)を持つ - 台帳(
community/scope-ledger.md)が自動生成され、判定の単位を併記する npm run checkが、地の文へ置かれた限定を警告する- 準拠テンプレートの CLAUDE.md へ、リスク区分を変更ごとに判定する規定を降ろす
- 網羅性は保証しない。言い換えられた限定は検出できない。実装マークと同じ限界