コンテンツにスキップ

ADR-0050: 強制層の水準を事業ステージで動かさないと決める

採用(2026-08-14)

初回適用案件で、立ち上げ期に強制層が実務を止めました(#235)。

# 事象
1 scripts/gate/** が遮断され、実行基盤の担当が自分の成果物である検査スクリプトを書けなかった
2 遮断範囲を縮めた結果、記録が「残した」と書いている対象の一部が実際には外れていた
3 承認前に証跡を要求するフックが、証跡の有効期限との組み合わせでマージを止め続けた

事業決裁者の判断は次のとおりでした。

事業立ち上げからあれこれ厳しくするとオーバーヘッドが大きくなりすぎる

この判断の方向は、本標準の設計思想と一致します。第2章 2.5 は「ステージが上がるほど有効化される数が増えます」と定め、第8章 軸B はゲートの厳格さをステージで変えます。

しかし強制層は二値で規定されている

Section titled “しかし強制層は二値で規定されている”

強制層は「違反を許容できない規則」の置き場です。第5章は「強制層に置けない項目は、遮断できたものとして扱いません」と定めます。

ステージによって強制の可否が変わる規則は、そもそも強制層に置くべきではありません。ステージで動かす設計は「S0 では違反を許容する」と言うに等しく、二値の定義が壊れます。

案件の3事象は、いずれもステージの問題ではなかった

Section titled “案件の3事象は、いずれもステージの問題ではなかった”

会議体で1件ずつ帰属を確かめた結果です。

事象 実際の原因
1 遮断の範囲の誤り。実行基盤の担当にとって scripts/gate/** は自分の成果物であり、遮断の対象ではない
2 記録と実装の乖離。範囲を縮めた事実を記録へ反映していない
3 強制層に置く規則の選び方の誤り。証跡の有効期限は「違反を許容できない規則」ではない

そして事象1と3は、テンプレートから作った直後の一度きりの期間に生じています。2件目以降の案件では、この期間はテンプレートの側で済んでいます。一般化しません。

1. 事業ステージで強制層の水準を動かさない

Section titled “1. 事業ステージで強制層の水準を動かさない”

軸B が動かすのは、ゲートの有効・省略と、記録の厳格さです。強制層に置くと決めた規則そのものを動かしません。

「書かれていない」と「動かさないと決めた」を区別します。第8章 軸B の節へ、本軸が動かすもの・動かさないものを書きます。

3. 立ち上げ期の過剰な統制は、強制層の設計として扱う

Section titled “3. 立ち上げ期の過剰な統制は、強制層の設計として扱う”

原因を3つに分けて示します。

  • 強制層に置く規則の選び方の誤り — 許容できる違反を強制層へ置いている。規則を強制層から外す
  • 遮断の範囲の誤り — 規則は正しいが、遮断の対象が広すぎる。範囲を絞る
  • 省略できるゲートを省略していない — 軸B の表を適用していない

いずれもステージの問題ではありません。

4. 遮断範囲を変えた場合、記録を同時に更新する

Section titled “4. 遮断範囲を変えた場合、記録を同時に更新する”

案件の事象2 は、範囲を縮めた事実が記録へ反映されず、守られていない統制を守られていると読める状態で残したものです。

遮断の範囲を変えた場合、その範囲を記述した記録を同じ変更で更新します。統制の弱化にあたる場合はADR-0038の引き渡しによります。

案 却下の理由
軸B に強制層の段階を加える 強制層は「違反を許容できない規則」の置き場である。ステージで動かすと、二値の定義が壊れる
強制層を三値(強制 / 警告 / 記録のみ)にする 警告は遮断ではない。第5章が「強制層に置けない項目は遮断できたものとして扱わない」と定めた趣旨に反する
S0 に限り強制層の適用を免除する PoC がそのまま本番化する事故が最頻の失敗パターンであると、第8章が自ら書いている。免除した期間に置かれたものが、そのまま残る
何も書かない(現状) 「書かれていない」のか「動かさないと決めた」のかが読み取れない。案件が手書きの ADR で判断を補うことになる
  • 軸B の節へ、本軸が動かすもの・動かさないものを明記した
  • 立ち上げ期の統制が重い場合、原因の切り分けが3つに定まる
  • 強制層の設計そのものを、本 ADR では改善しない。何を強制層へ置くかの判断は第3章 3.9 のままである
  • 遮断範囲を変えた場合の記録の更新が要求として加わる