06 品質ゲート — 5,000+のテストと三重の門
自動でコードを書くシステムは「壊れたコードを自信満々に納品する」危険と隣り合わせです。NexusCoreは品質を守るために複数の門を設けています。
三重の門
flowchart TB
A["AIが書いたコード"] --> B{"第1門: 形は正しいか(AST検査)"}
B -->|"No"| X1["❌ 保存しない"]
B -->|"Yes"| C{"第2門: テストは通るか"}
C -->|"No"| X2["❌ 直す係へ戻す"]
C -->|"Yes"| D{"第3門: 全体テストは?"}
D -->|"壊した"| X2
D -->|"OK"| E["✅ 納品可能"]
各門の役割
- 第1門(構文検査): 「説明文をコードとして保存する」事故を防ぐ。AIはまれに、コードではなくお詫びの説明文を返してくることがあるため
- 第2門(個別テスト): 直したつもりが直っていない、を検知
- 第3門(全体テスト): 5,000+のテストで「直すために別の場所を壊していないか」を確認
fail-safe の思想
門を通らなかったものは保存しないのが原則です。「一応保存しておく」を選ぶと、壊れたコードが後工程に流れて被害が拡大します。
技術的な土台
<details><summary>▶ 技術的にどうなっているか</summary>
- AST検査(
utils/syntax_validator): コード生成系エージェント(Coder/Debugger/SelfHeal)に共通適用・AST_FAIL_LIMIT=2 で打ち止め - CoderAgent の説明文フォールバック廃止: コードブロック抽出失敗時は空文字+空AST不合格(案X′・TDD commit b6ed77c3)
- テスト実行検証: pytest の「no tests ran(収集失敗)」も失敗として扱う -Debuggerループ: 層1 AST検査+層3 pytest実行検証+try-finally最終ロールバック
- 全体規模: テストケース 5,203件(collect実測 2026-08-17・外向き表記は「5,000+」)
</details>