phase29ak(p0): ssot rule order + planner context plumbing

This commit is contained in:
2025-12-29 14:34:34 +09:00
parent a91e457302
commit 2626deeb72
11 changed files with 202 additions and 96 deletions

View File

@ -1,11 +1,16 @@
# Self Current Task — Now (main)
## Current Focus: Phase 29ajPlannerOutcome SSOT
## Current Focus: Phase 29akPlanRuleOrder + PlannerContext
Next: Phase 29aj P11TBD
Next: Phase 29ak P1TBD
運用ルール: integration filter で phase143_* は回さないJoinIR 回帰は phase29ae pack のみ)
運用ルール: phase286_pattern9_* は legacy pack (SKIP) を使う
**2025-12-29: Phase 29ak P0 完了**
- 目的: PlanRuleOrder SSOT を新設し、PlannerContext の配線だけ先に導入(仕様不変)
- 実装: `src/mir/builder/control_flow/plan/single_planner/rule_order.rs` / `src/mir/builder/control_flow/plan/planner/context.rs` / `src/mir/builder/control_flow/plan/single_planner/rules.rs`
- 検証: `cargo build --release` / `./tools/smokes/v2/run.sh --profile quick` / `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` PASS
**2025-12-29: Phase 29aj P10 完了**
- 目的: single_planner を全パターン planner-first 形に統一(挙動不変)
- 実装: `src/mir/builder/control_flow/plan/single_planner/rules.rs`

View File

@ -24,6 +24,11 @@ Related:
- 運用: integration filter で phase143_* は回さないJoinIR 回帰は phase29ae pack のみ)
- 運用: phase286_pattern9_* は legacy pack (SKIP) を使う
- **Phase 29akcandidate: PlanRuleOrder SSOT + PlannerContext plumbing**
- 入口: `docs/development/current/main/phases/phase-29ak/README.md`
- 状況: P0 ✅ 完了
- Next: Phase 29ak P1TBD
- **Phase 29aicandidate: Plan/Frag single-plannerFacts SSOT**
- 入口: `docs/development/current/main/phases/phase-29ai/README.md`
- Next: Phase 29ai P16TBD: promotion hint を JoinIR 側の orchestrator へ配線、挙動不変)

View File

@ -0,0 +1,71 @@
# Phase 29ak P0: PlanRuleOrder SSOT + PlannerContext plumbing
Date: 2025-12-29
Status: Ready for execution
Scope: 構造整備(仕様不変)+ docs/Now/Backlog/CURRENT_TASK 更新
Goal: single_planner の順序/名前/ガード SSOT を 1 箇所へ寄せ、planner 側へ ctx を通す土台を作る
## Objective
- ルール順序/表示名の SSOT を新設し、single_planner の手書きテーブルを撤去
- PlannerContext を導入して planner へ ctx を渡せるようにするP0 では未使用)
- 既定挙動・ログ・エラー文字列は不変
## Non-goals
- CandidateSet へ順序=優先を移す
- Pattern1 guard / Pattern8 static box filter を planner 側へ移す
- extractor fallback の削除
## Implementation Steps
### Step 1: ルール順序 SSOT を新設
New:
- `src/mir/builder/control_flow/plan/single_planner/rule_order.rs`
Contents:
- `PlanRuleId``PLAN_RULE_ORDER`
- `rule_name()` は従来の名前を完全一致で返す
### Step 2: single_planner を SSOT 参照に差し替え
Update:
- `src/mir/builder/control_flow/plan/single_planner/rules.rs`
Notes:
- Pattern1 guard / Pattern8 static box filter / Pattern2 promotion tag を維持
- ループの順序/ログ文言は変えない
### Step 3: PlannerContext の足場(未使用)
New:
- `src/mir/builder/control_flow/plan/planner/context.rs`
Update:
- `src/mir/builder/control_flow/plan/planner/mod.rs`
- `src/mir/builder/control_flow/plan/planner/outcome.rs`
- `src/mir/builder/control_flow/plan/single_planner/rules.rs`
Rule:
- P0 では ctx を意思決定に使わない(挙動不変)
### Step 4: docs / CURRENT_TASK 更新
Add:
- `docs/development/current/main/phases/phase-29ak/README.md`
Update:
- `docs/development/current/main/10-Now.md`
- `docs/development/current/main/30-Backlog.md`
- `CURRENT_TASK.md`
## Verification
- `cargo build --release`
- `./tools/smokes/v2/run.sh --profile quick`
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
## Commit
- `git add -A && git commit -m "phase29ak(p0): ssot rule order + planner context plumbing"`

View File

@ -0,0 +1,10 @@
# Phase 29ak: PlanRuleOrder SSOT + PlannerContext plumbing
Goal: single_planner の「順序・名前・ガード」の SSOT を 1 箇所へ寄せ、planner 側へ ctx を通す土台を作る(仕様不変)。
## P0: PlanRuleOrder SSOT + PlannerContext plumbing
- 指示書: `docs/development/current/main/phases/phase-29ak/P0-RULE-ORDER-SSOT-PLANNER-CONTEXT-PLUMBING-INSTRUCTIONS.md`
- ねらい: rule_order.rs を順序/名前 SSOT に固定し、PlannerContext を配線(未使用)
- 完了: PlanRuleOrder を追加し、single_planner の手書きテーブルを撤去
- 検証: `cargo build --release` / `./tools/smokes/v2/run.sh --profile quick` / `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`