9. Guardrails — AIが越えてはいけない柵

ルールの設計図

Guardrailとは

Guardrailは、AIや人間がやってはいけない操作を止める仕組みです。

例:

ルールだけでは弱い

「やってはいけません」とMarkdownに書くだけでは、AIが忘れることがあります。
人間も急いでいると破ります。

そのため、Guardrailには段階があります。

強さ
原則 意味的拘束 開発方針
ルール コンテキスト拘束 エージェント向けルールファイル
DSL 構造的拘束 エージェント/成果物/ワークフロー定義
Hook 物理的強制 エディタ Hook / Git Hook
CI 統合強制 PR Gate

What / How / Whereを分ける

DSLでは、Guardrailを3つに分けます。

関心事 定義
What ガードレイル定義 生成ファイルを守る
How ポリシー定義 blockする、warnする、shadowにする
Where バインディング定義 エディタとGitで適用する

なぜ分けるのか

同じ制約でも、適用場所や強さは変えたいからです。

例: 生成ファイル保護

項目 内容
Rule protect-generated-files
What 生成ファイルを手編集禁止
How block
Where エディタ Hook / Git pre-commit

これにより、エディタ操作中にも止まり、コミット時にも止まります。

Shadow → Warn → Block

エディタ・Git・CIで段階的に止める

新しいGuardrailをいきなりblockすると、開発が止まる可能性があります。

そこで段階導入します。

段階 動作 用途
shadow ログだけ取る 影響調査
warn 警告する 運用定着
block 止める 本格適用

生成されるもの

DSLから以下を生成します。

# DSLからHookやポリシーを生成するコマンド例
generate-guardrails --config ./dsl-config.yaml

生成物の例:

例: no-verify禁止

悪い操作:

git commit --no-verify -m "skip checks"

Guardrailがある場合:

結論

GuardrailはAIへのお願いではありません。
AIや人間の判断とは独立して、危険操作を物理的に止める仕組みです。

DSLで宣言的に管理することで、Guardrailを増やしても破綻しにくくなります。