AIコーディングを安全に進めるには、コード生成後の「差分を見る」「テストする」「人間が承認する」を工程として前もって決めます。AIは実装を早く書けますが、壊れる・漏らす・取り返しがつかない変更の最終判断は人間が担います。安全なソフトウェア開発の実践は NIST の SSDF でも整理されています[1]。
結論:生成後の差分・テスト・承認を工程化する
「コードを書いて」と頼むだけでは、AIの出力がそのまま本番に近い状態になる危険があります。生成のあとに、人間が差分を読み、テストし、承認する流れを組み込みます。
AIへコードを頼む前に決めること
- 目的(何を達成するか)
- 対象範囲(どのファイル・機能に触るか)
- 条件(禁止事項・出力の形)
- 完了条件(動作・要件の基準)
安全な10工程
- 目的を決める(HUMAN)
- 条件を書く(SHARED)
- 対象範囲を決める(HUMAN)
- コードを生成する(AI)
- 差分を見る(HUMAN)
- テストする(HUMAN)
- 危険な変更がないか確認する(HUMAN)
- 最終承認する(HUMAN)
- 保存する(SHARED)
- 作業ログを残す(SHARED)
対象範囲を限定する
影響範囲を小さく保つことで、差分レビューの負荷を減らします。「全体を直す」より「この関数だけ」のように境界を決めます。
変更差分を見る
AIが変えた箇所を人間が目で追います。意図しないファイルへの変更や、余計な削除がないかを確認します。OWASPは、不安全な出力処理やインジェクションをWebアプリの重大リスクに挙げています[2]。
秘密情報と設定ファイル
APIキーや認証情報をコードに埋め込まないよう確認します。設定ファイルの変更は本番挙動に直結するため、人間が見ます。CISAも、AIシステムの導入・運用時にデータと秘密情報の安全を優先事項に挙げています[3]。
依存関係(dependencies)
AIが新しいライブラリを追加する提案をしたら、その出所と更新状況を確認します。サプライチェーン経由の脆弱性は OWASP の LLM Top 10 でも取り上げられています[4]。未知のパッケージや突然のメジャーアップデートは人間が承認します。
migrations(スキーマ変更)
DBスキーマや設定の変更は、データの整合性に直結します。本番適用前に、ロールバック手順(元に戻す方法)が書けているかを確認します。
権限・認証
AIが認証や権限周りのコードを変えた場合、意図しない公開や権限昇格がないかを重点的に見ます。アクセス制御の不備は OWASP Web Top 10 の上位リスクです[2]。
diff review / typecheck / lint / unit / E2E
確認手段を層に分けます。
- diff review:人間が変更箇所を読む(意図・余計な削除)
- typecheck / lint:機械的に検出できる誤りを自動で弾く
- unit:個別関数の期待動作
- E2E:画面やAPIを通した全体の動作
GitHubの公式ドキュメントでも、AIによるコードレビューをプルリクエストのプロセスに組み込む方法が示されています[5]。ただし最終承認は人間が持ちます。
破壊的変更(destructive operations)
データの削除・スキーマ変更・公開範囲の変更は取り返しがつかないことがあります。これらは最終承認の前に明示的に確認します。
rollback(巻き戻し)
本番反映後に問題が出たときの戻し方を、反映前に決めておきます。戻し方がない変更は、承認のハードルを上げます。
本番反映前の承認(release approval)
公開・デプロイの直前に人間の承認を置きます。AGENT WORKBENCHでは「最終承認する」カードがこの役割です。
作業ログとcommit
いつ・何を変えたかを記録します。後から「なぜこうなったか」が分かるように、AIが下書きを人間が承認して残します。
悪い依頼と改善依頼
悪い例:「このリポジトリを最新技術に全部書き直して」
改善例:「ログイン処理のエラーメッセージを分かりやすくする。対象は auth/login.js のみ。既存の挙動を壊さないこと」
小規模修正の例
- 目的を決める(HUMAN)
- コードを生成する(AI)
- 差分を見る(HUMAN)
- テストする(HUMAN)
- 最終承認する(HUMAN)
大規模改修の例
- 目的・条件・範囲を決める(HUMAN/SHARED)
- コードを生成する(AI)
- 差分を見る(HUMAN)
- テストする(HUMAN)
- 危険な変更がないか確認する(HUMAN)
- 最終承認する(HUMAN)
- 保存・ログ(SHARED)
チェックリスト
- 対象範囲が決まっている
- 秘密情報をコードに埋めていない
- 差分を人間が読んだ
- テストを実行した
- 破壊的変更を確認した
- 本番反映前に承認した
FAQ
- AIコーディングツールはどれを使えばいいですか?
- 特定の製品を推奨するものではありません。どのツールでも「生成後の差分・テスト・承認」の流れを設計すれば効果があります[5]。
- 自動テストがない場合は?
- 人間が手で動かして確認します。UIやエッジケースは自動だけでは足りません。
- AI/HUMAN/SHAREDは公的基準?
- いいえ。AGENT WORKBENCH独自の実務モデルです。公的文書は安全な開発と人間の確認を求めます[1][6]。
- 依存関係の追加をAIが提案したら?
- 出所と更新状況を人間が確認し、未知のパッケージは承認しません。
- 本番反映後にバグが出たら?
- 反映前に決めておいた rollback 手順で戻します。戻し方がない変更は承認のハードルを上げます。
AIコーディング用プリセットを開く
参考資料
- Secure Software Development Framework (SSDF), NIST SP 800-218 — NIST CSRC 原文を確認 確認日:2026-07-13
- OWASP Top 10 Web Application Security Risks — OWASP 原文を確認 確認日:2026-07-13
- Artificial Intelligence | CISA — CISA 原文を確認 確認日:2026-07-13
- OWASP Top 10 for Large Language Model Applications — OWASP 原文を確認 確認日:2026-07-13
- GitHub Copilot Documentation — GitHub 原文を確認 確認日:2026-07-13
- AI Risk Management Framework (AI RMF 1.0) — NIST 原文を確認 確認日:2026-07-13
- Human-in-the-loopのガイド
- AIに仕事を渡す前のチェックリスト
- AIコーディングの実例
- AGENT WORKBENCH ツール:https://agent-workbench.kawaii-girl.com/
最終確認日:2026-07-13