phase29ai(p7): planner returns DomainPlan (no hardcoded names)

This commit is contained in:
2025-12-29 08:39:33 +09:00
parent f9817dda4c
commit c7697edde1
7 changed files with 243 additions and 64 deletions

View File

@ -12,7 +12,7 @@ Scope: JoinIR plan/frag 導線(仕様不変)
| Facts | CFG/Terminator/境界情報から抽出した “観測” と “導出” を分離した Facts | planner が CFG を再走査する前提の不足した Facts を作る / emit が CFG を覗いて “穴埋め” | Facts 収集時: 契約違反は `Freeze(contract)`strict/dev は即Fail |
| Normalize | Facts の表現ゆれ除去(純変換) | 追加の解析CFG/AST を見に行く) / 値の意味を変える変形 | normalize 後の不変条件を `verify_*` で検証strict/dev |
| Planner | Canonical Facts → Plan候補集合→一意化 | pattern 名で入口分岐を公開APIに漏らす / emit の都合で再解析 | 0候補=Ok(None), 1候補=Ok(Some), 2+=Freeze(ambiguous) |
| Plan | emit に必要な骨格entry/exit/join/region参照 | CFG 再解析が必要な “情報欠落” Plan | emit 前に Plan の構造不変条件を検証strict/dev |
| Plan | DomainPlanpattern固有のSSOT語彙 | CFG 再解析が必要な “情報欠落” Plan / 二重Plan語彙 | emit 前に Plan の構造不変条件を検証strict/dev |
| Emit | Plan → Frag生成のみ | Facts/CFG に戻って再推論 / silent fallback | emit は入力不足を Freeze(bug/contract) で落とすstrict/dev |
| Frag | 生成結果EdgeCFG/JoinIR lowering の出力) | Frag が “真実” として再利用されること(派生物) | 既存の frag verifier / contract_checks を入口で実行 |