← AIの直し提案が3体そろって否定された話 AI審査員の盲点を人間の一言と説明書の改良で塞いだ話 →
第15話

設定を1枚の帳票に集めて書き忘れ事故を潰した話

困ったこと

AIの振る舞いを決める数値(どのモデルを使うか・どこまで許すか等)が、手順書と実行プログラムの2か所に同じように書かれていた。片方だけ直してもう片方を直し忘れる事故が実際に起きた。直したつもりが直っていない——増えていく設定のたびに、この事故の確率は上がっていく。「二か所に同じことを書くな」という原則は分かっていても、手順書は人間とAIが読む文章、プログラムは機械が読むコードで、形が違うために分かれてしまっていた。

どう解決したか

まず、散らばった値を1枚の帳票(設定ファイル)に集めた。次に、手順書とプログラムの両方に「値は帳票を見に行く」ように書き換えた。手順書には「作業前に帳票を必ず読むこと」を先頭に置き、プログラムには帳票が読めない・壊れている時に黙って諦めず停止する番兵を付けた。さらに、帳票に関係するファイルが触られたコミットの瞬間に、見張り役が「まだ帳票を見に行かず値を直接書いていないか」を機械で検査するようにした。実際に値を直接書き込んでコミットを試したところ、見張り役がちゃんと止めてくれた。現行の設定値が帳票と完全に一致していることも、検査コード19本と18本で保証した。

flowchart TB
    subgraph before[" ┃ 以前: 直書き2か所 "]
        B1["📄 手順書に数値"] -.->|片方だけ直す| B2["💻 プログラムに数値(古いまま)"]
    end
    subgraph after[" ┃ 以後: 帳票1枚に集約 "]
        A1["📋 設定帳票(唯一の値)"] -->|読みに行く| A2["📄 手順書"]
        A1 -->|読みに行く| A3["💻 プログラム"]
        A4["🚪 コミット時の見張り役"] -->|直書きを検知| A5["❌ commit拒否"]
    end
    before ~~~ after

何が変わったか

設定を直す場所が1か所になった。手順書もプログラムも同じ帳票を見に行くので、「もう片方を直し忘れる」という事故の起き方そのものが、物理的にできなくなった。変わったのは事故の起き方だけではない。コミットしようとした瞬間に見張り役が止めてくれるので、間違いが外の世界に出る前に気がつける。

もう一つの変化は小さいけど大事で、設定を変える時に「帳票を直せばいい」と全員が分かるようになったこと。どこを直せばいいか分からないシステムでは、直すこと自体ためらわれる。1か所になると、変える勇気も出る。ちなみに今この話を読んでいるガイドの仕組み自体もAIが運用しているが、設定の正本を1枚に集める発想は、AIに任せる仕事ほど効いてくる。

<details><summary>▶ 技術的にどう作ったか</summary>

</details>