From 538061abe9b5469f715fb35c86d776b4d9c87f9b Mon Sep 17 00:00:00 2001 From: tomoaki Date: Tue, 30 Dec 2025 09:12:54 +0900 Subject: [PATCH] docs(phase29ao): mark p19 done; add p20 instruction --- CURRENT_TASK.md | 7 +- docs/development/current/main/10-Now.md | 9 ++- docs/development/current/main/30-Backlog.md | 4 +- ...P-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md | 70 +++++++++++++++++++ .../current/main/phases/phase-29ao/README.md | 13 +++- 5 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md diff --git a/CURRENT_TASK.md b/CURRENT_TASK.md index 92c97678..84f3020f 100644 --- a/CURRENT_TASK.md +++ b/CURRENT_TASK.md @@ -18,10 +18,9 @@ Scope: Repo root の旧リンク互換。現行の入口は `docs/development/cu **CorePlan migration 道筋 SSOT** `docs/development/current/main/design/coreplan-migration-roadmap-ssot.md` が移行タスクの Done 判定の入口。 -**Next implementation (Phase 29ao P19)** -- 目的: 回帰ゲート(phase29ae pack)に strict/dev の Pattern1 shadow adopt を含める -- 指示書: `docs/development/current/main/phases/phase-29ao/P19-REGRESSION-PACK-ADD-PATTERN1-STRICT-SHADOW-INSTRUCTIONS.md` -- 検証: `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` / `./tools/smokes/v2/run.sh --profile quick` +**Next implementation (Phase 29ao P20)** +- 目的: Skeleton+Feature→CoreLoop へ寄せるための ExitMap 合成規約を docs-first で固める +- 指示書: `docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md` **2025-12-29: Phase 29am P0 COMPLETE (CorePlan If/Exit lowerer/verifier)** CorePlan の If/Exit を lowerer/verifier で扱えるようにして、CorePlan 移行の土台を作った。 diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index 3936ced8..3185c240 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -2,12 +2,17 @@ ## Current Focus: Phase 29ao(CorePlan composition) -Next: Phase 29ao P19(regression pack: Pattern1 strict shadow) -指示書: `docs/development/current/main/phases/phase-29ao/P19-REGRESSION-PACK-ADD-PATTERN1-STRICT-SHADOW-INSTRUCTIONS.md` +Next: Phase 29ao P20(CoreLoop ExitMap composition docs-first) +指示書: `docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md` 運用ルール: integration filter で phase143_* は回さない(JoinIR 回帰は phase29ae pack のみ) 運用ルール: phase286_pattern9_* は legacy pack (SKIP) を使う 移行道筋 SSOT: `docs/development/current/main/design/coreplan-migration-roadmap-ssot.md` +**2025-12-30: Phase 29ao P19 完了** ✅ +- 目的: regression gate に Pattern1 strict/dev shadow adopt を含め、回帰で必ず踏む(SSOT化) +- 変更: `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern1_strict_shadow_vm.sh` / `tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` / `docs/development/current/main/phases/phase-29ae/README.md` +- 検証: `./tools/smokes/v2/run.sh --profile quick` / `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` + **2025-12-30: Phase 29ao P0 完了** ✅ - 目的: `CanonicalLoopFacts → CorePlan` 合成の入口(未接続)を 1 箇所に作る - 変更: `src/mir/builder/control_flow/plan/composer/mod.rs` / `src/mir/builder/control_flow/plan/mod.rs` / `docs/development/current/main/phases/phase-29ao/README.md` diff --git a/docs/development/current/main/30-Backlog.md b/docs/development/current/main/30-Backlog.md index 35d54db5..7fa99699 100644 --- a/docs/development/current/main/30-Backlog.md +++ b/docs/development/current/main/30-Backlog.md @@ -15,8 +15,8 @@ Related: - **Phase 29ao(active): CorePlan composition from Skeleton/Feature** - 入口: `docs/development/current/main/phases/phase-29ao/README.md` - - 状況: P0–P18 ✅ 完了 / Next: P19(regression pack: Pattern1 strict shadow) - - Next 指示書: `docs/development/current/main/phases/phase-29ao/P19-REGRESSION-PACK-ADD-PATTERN1-STRICT-SHADOW-INSTRUCTIONS.md` + - 状況: P0–P19 ✅ 完了 / Next: P20(CoreLoop ExitMap composition docs-first) + - Next 指示書: `docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md` - **Phase 29af(✅ COMPLETE): Boundary hygiene / regression entrypoint / carrier layout SSOT** - 入口: `docs/development/current/main/phases/phase-29af/README.md` diff --git a/docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md b/docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md new file mode 100644 index 00000000..22b3ede2 --- /dev/null +++ b/docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md @@ -0,0 +1,70 @@ +--- +Status: Ready +Scope: docs-first(ExitMap 合成の SSOT 固定。仕様不変) +Related: + - docs/development/current/main/design/coreplan-skeleton-feature-model.md + - docs/development/current/main/design/exitkind-cleanup-effect-contract-ssot.md + - docs/development/current/main/design/post-phi-final-form-ssot.md + - docs/development/current/main/design/edgecfg-fragments.md + - docs/development/current/main/design/coreplan-migration-roadmap-ssot.md + - docs/development/current/main/phases/phase-29ao/README.md +--- + +# Phase 29ao P20: CoreLoop ExitMap composition(docs-first SSOT) + +Date: 2025-12-30 +Status: Ready for execution +Scope: docs-only。CoreLoop(Loop skeleton)に対する ExitMap/Cleanup/ValueJoin の「合成規約」を SSOT として 1 枚に固定する。 + +## 目的 + +- “Pattern2/4/5 を別patternとして増やす” ではなく、`LoopSkeleton + ExitMap + Cleanup + ValueJoin` の合成で表現できることを設計として固定する。 +- Normalizer/Composer が「どこまで合成し、どこから Freeze すべきか」を揺れない形で明文化する。 +- 既存の `exitkind-cleanup-effect-contract-ssot.md` / `post-phi-final-form-ssot.md` と衝突しない、より具体の “CoreLoop 版の規約” を定義する。 + +## 非目的 + +- Rust 実装変更(P20は docs-only) +- 新しい Env 変数やログの追加 +- unwind/coroutine 等の新機能追加(設計として “unsupported/unstructured” に分類するだけは可) + +## 追加する SSOT(新規) + +- 新規ファイル: `docs/development/current/main/design/coreloop-exitmap-composition-ssot.md` + +含める内容(最低限): + +1. **語彙(Vocabulary)** + - `ExitKind`(Return/Break/Continue + 将来Unwind) + - `Frag.exits`(presence と “実際の出口エッジ” の違い) + - `EdgeArgs`(layout と values の意味) + - `Frag.block_params` と “join 受け口” の扱い(post-phi の最終表現) + +2. **合成規約(Composition Rules)** + - Loop skeleton からどの出口を “exit edges” として表すか(Return/Break/Continue) + - Cleanup の扱い(どの ExitKind に対して、どの位置で走るか) + - ValueJoin(join 値が必要なときの表現)と block_params の使用条件 + - “presence だけある” 状態(facts から投影された kinds_present)と、実際の join を作る責務の境界 + +3. **Fail-Fast 規約(Freeze/Verify)** + - `Ok(None)` に落としてよいケース / `Freeze(contract|unsupported|unstructured)` にすべきケース + - strict/dev の検証責務(どこで verify するか、どのタグで観測するか) + +4. **既存SSOTとのリンク** + - `exitkind-cleanup-effect-contract-ssot.md`(“越えてはいけない境界”) + - `post-phi-final-form-ssot.md`(join 入力の最終表現) + - `edgecfg-fragments.md`(Frag の SSOT) + +## 参照導線(docs) + +- `docs/development/current/main/design/planfrag-ssot-registry.md` の References に上記 SSOT を追加する(入口導線の強化)。 + +## 検証 + +- docs-only のため smoke は不要(ただし link/typo の確認は行う) + +## コミット + +- `git add -A` +- `git commit -m "docs(phase29ao): add coreloop exitmap composition ssot (p20)"` + diff --git a/docs/development/current/main/phases/phase-29ao/README.md b/docs/development/current/main/phases/phase-29ao/README.md index 77b87de1..fc8ae866 100644 --- a/docs/development/current/main/phases/phase-29ao/README.md +++ b/docs/development/current/main/phases/phase-29ao/README.md @@ -113,7 +113,16 @@ Gate(SSOT): - 指示書: `docs/development/current/main/phases/phase-29ao/P18-SINGLE_PLANNER-OUTCOME-PLUMBING-INSTRUCTIONS.md` - ねらい: planner outcome を single_planner から受け取り、router の二重実行を撤去 +## P19: 回帰ゲートに Pattern1 strict/dev shadow adopt を含める ✅ + +- 指示書: `docs/development/current/main/phases/phase-29ao/P19-REGRESSION-PACK-ADD-PATTERN1-STRICT-SHADOW-INSTRUCTIONS.md` +- 変更: + - `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern1_strict_shadow_vm.sh` を追加 + - `tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` に組み込み + - `docs/development/current/main/phases/phase-29ae/README.md` の回帰セットに追記 +- ねらい: P17/P18 の strict/dev shadow adopt が回帰ゲートで必ず踏まれる状態を SSOT 化 + ## Next(planned) -- P19: 回帰ゲートに Pattern1 strict/dev shadow adopt を含める - - 指示書: `docs/development/current/main/phases/phase-29ao/P19-REGRESSION-PACK-ADD-PATTERN1-STRICT-SHADOW-INSTRUCTIONS.md` +- P20: CoreLoop ExitMap composition(docs-first) + - 指示書: `docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md`