8. Toolchain — 作る前に調べ、作った後に検証する

Toolchainの役割
Toolchainは、AIと人間が作ったArtifactを対象に、生成・検証・分析・同期・デプロイを行う仕組みです。
| 役割 | 内容 | 例 |
|---|---|---|
| 生成 | 正本からコードや型を作る | OpenAPI → TypeScript型 |
| 検証 | 正本同士の整合性を見る | 仕様ID、API、DB、テスト |
| 同期 | 生成物のズレを見る | drift検出 |
| 分析 | 変更前に影響範囲を出す | impact analysis |
| 依存解決 | 実行順序を決める | migration DAG |
| デプロイ | 安全に環境反映する | CDパイプライン |
重要なのは「後で検査」だけではない
普通のCIは、実装後に壊れていないか確認します。
AI駆動開発で重要なのは、実装前に以下を出すことです。
- 何を調べるべきか
- 何が影響を受けるか
- 何を変更してはいけないか
- どの順番で変更すべきか
Shift-Leftとは
Shift-Leftとは、問題をできるだけ早い段階で見つけることです。
Phase軸の左寄せ
| 従来 | 左寄せ後 |
|---|---|
| CIでAPI不整合に気づく | 設計フェーズで仕様チェック |
| 本番でDB影響に気づく | 実装前に影響分析 |
| レビューで仕様漏れに気づく | 仕様化でテンプレートとlint |
| リリースでDB順序問題に気づく | migration DAGで事前解決 |
Loop軸の左寄せ
同じ実装フェーズ内でも、検出位置を前に寄せます。
| Loop | 例 |
|---|---|
| edit | エディタ Hookで即時検出 |
| review | 検査エージェントがチェック |
| local_check | ローカルlint/test |
| commit_try | pre-commitでブロック |
| integration | PR Gate |
| deploy | デプロイパイプライン |
主要ゲート
| ゲート | 役割 |
|---|---|
| 仕様lint | 仕様IDや参照整合性 |
| 仕様check | 仕様とOpenAPI/DDL等の整合 |
| drift検出 | 生成物のズレ |
| annotation coverage | 仕様とテストの紐づき |
| API契約パイプライン | API契約から型・ルート生成、ドリフト検出 |
| DB安全性チェック | DB変更の安全性 |
| ドキュメント同期 | ドキュメントとコードのズレ |
| 影響分析 | データ流れと影響範囲 |
| テスト実行 | 単体・統合・E2E |
| インフラ検証 | インフラ構文・ビルド |
例: DBカラム変更
ハーネスが弱い場合
- DBカラムを変更
- APIが壊れる
- 画面が壊れる
- CIまたは本番で発覚
ハーネスが強い場合
- DBカラム変更を検知
- 影響分析で影響するAPI・画面を特定
- 必要なテストとArtifactを更新
- DDL安全性確認
- PR Gateで最終確認
結論
Toolchainは、AIの出力を後から採点するだけではありません。
AIが作る前に、どこを見て、どこを変え、どこを壊してはいけないかを教える装置です。