コンテンツにスキップ

適用範囲の書き方

条項の適用範囲が読み手へ届かないと、適用されない条項が課されます。実装マークの規約が扱う「規定が届かない」の裏返しであり、結果は過剰適用です。

実際に、次の事象が起きました(#226)。

条項 適用範囲の位置 起きたこと
5.7.3 選択肢の比較 本文の先頭1行 太字の禁止文だけを読み、限定を落として全体へ課した

目的を持って条文を探す読み手は、目的に合致する文言を見つけた時点で読むのを止めます。実行主体はとくにそうです。限定が別の段落にあれば、届きません。

1. 節全体に掛かる限定は、見出しへ併記する

Section titled “1. 節全体に掛かる限定は、見出しへ併記する”
### 5.7.3 選択肢の比較(適用: R1 の決定・例外承認)

書式は (適用: …) です。この注記が台帳の抽出元になります。

2. 個々の規範に掛かる限定は、その規範と同じ行へ書く

Section titled “2. 個々の規範に掛かる限定は、その規範と同じ行へ書く”

箇条書きや表の行が限定を持つ場合は、行の中に書きます。

| 段階 | 内容 | 適用 |
| --- | --- | --- |
| 強 | 人間が受入基準を事前に定義する | R1 |

3. 限定を、規範とは別の段落へ置かない

Section titled “3. 限定を、規範とは別の段落へ置かない”

これが本規約の要です。地の文で限定を述べ、直後の箇条書きで規範を述べる形を採りません。箇条書きだけを読んだ読み手に、限定が届かないためです。

検査は、限定表現を地の文へ置いた節を機械的に警告します。該当しない節は src/data/scope-exempt.yaml へ理由付きで登録します。登録そのものが判断の記録になります。

適用範囲には、案件ごとに確定するものと変更ごとに判定するものがあります。取り違えると、適用範囲を機械的に外す誤りが起きます。

単位 条件の例 案件単位で適用外にできるか
案件ごと 安全重要度(CL)、チーム規模、開発形態 できる
変更ごと リスク区分(R) できない

案件の安全重要度から、リスク区分に依存する条項の適用外を導いてはなりません。CL0 の案件でも、認証・認可・個人データ・外部インタフェースに触れる変更は R1 です(第3章 3.8.1)。

台帳は注記の内容から単位を判定します。リスク区分の記号を含む注記は、変更ごとの判定として扱います。

成果物テンプレートの欄名は、既存の表記(「比較した選択肢(R1 および例外承認で必須)」など)を維持します。様式は実行層へ降りており、案件が直接読むためです。台帳の抽出対象は標準本文の条項の見出しに限ります。

  • 注記を追加・変更したら npm run scope:write で台帳(community/scope-ledger.md)を再生成する
  • 台帳は自動生成である。手で編集しない
  • npm run check が台帳の鮮度と、地の文へ置かれた限定を検査する

注記の付いていない条項に、適用範囲が無いとは限りません。検査が見るのは、既知の記号(リスク区分・安全重要度)を含む限定表現だけです。言い換えられた限定、および条件を散文で述べた条項は検出できません。

網羅性を機械的に確かめる手段は現時点でありません。この限界を隠さずに運用します。