From 3e52427766839eb09e23af0ca0f10d501c63d320 Mon Sep 17 00:00:00 2001 From: tomoaki Date: Wed, 31 Dec 2025 08:34:34 +0900 Subject: [PATCH] docs(phase29ap): closeout legacy removal --- docs/development/current/main/10-Now.md | 4 +- docs/development/current/main/30-Backlog.md | 6 +- .../design/coreplan-migration-roadmap-ssot.md | 4 +- .../current/main/phases/phase-29ap/README.md | 148 ++---------------- 4 files changed, 24 insertions(+), 138 deletions(-) diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index 069b82b2..040285e5 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -2,8 +2,8 @@ ## Current Focus -- Phase: `docs/development/current/main/phases/phase-29ap/README.md` -- Next: Phase 29ap P14 (planned; see `docs/development/current/main/phases/phase-29ap/README.md`) +- Phase: `docs/development/current/main/phases/phase-29ap/README.md` (complete) +- Next: TBD (choose next phase after Phase 29ap closeout) ## Gate (SSOT) diff --git a/docs/development/current/main/30-Backlog.md b/docs/development/current/main/30-Backlog.md index 98b7fc92..7cb26f32 100644 --- a/docs/development/current/main/30-Backlog.md +++ b/docs/development/current/main/30-Backlog.md @@ -5,8 +5,12 @@ Scope: 「次にやる候補」を短く列挙するメモ。入口は `docs/dev ## Active -- Phase 29ap: `docs/development/current/main/phases/phase-29ap/README.md` (Next: P14 planned) +- Next phase TBD: choose between Plan/Composer subset expansion or CorePlan vocabulary expansion - JoinIR regression gate SSOT: `docs/development/current/main/phases/phase-29ae/README.md` - CorePlan hardening (docs-first): `docs/development/current/main/phases/phase-29al/README.md` +## Complete + +- Phase 29ap: `docs/development/current/main/phases/phase-29ap/README.md` + Archive: `docs/development/current/main/phases/phase-29ao/30-Backlog-archive.md` diff --git a/docs/development/current/main/design/coreplan-migration-roadmap-ssot.md b/docs/development/current/main/design/coreplan-migration-roadmap-ssot.md index 6a2612f6..259d2ef5 100644 --- a/docs/development/current/main/design/coreplan-migration-roadmap-ssot.md +++ b/docs/development/current/main/design/coreplan-migration-roadmap-ssot.md @@ -33,8 +33,8 @@ Related: ## 1.1 Current (active) -- Active phase: `docs/development/current/main/phases/phase-29ap/README.md` -- Next step: Phase 29ap P14 (planned) +- Active phase: `docs/development/current/main/phases/phase-29ap/README.md` (complete) +- Next step: TBD (choose next phase) ## 2. すでに固めた SSOT(再発防止の土台) diff --git a/docs/development/current/main/phases/phase-29ap/README.md b/docs/development/current/main/phases/phase-29ap/README.md index 3d00b09c..ba0b87c2 100644 --- a/docs/development/current/main/phases/phase-29ap/README.md +++ b/docs/development/current/main/phases/phase-29ap/README.md @@ -1,5 +1,5 @@ --- -Status: Active +Status: Complete Scope: Legacy extractor reduction (planner+composer SSOT) Related: - docs/development/current/main/design/coreplan-migration-roadmap-ssot.md @@ -12,140 +12,22 @@ Related: Goal: Reduce legacy extractor fallbacks while keeping planner+composer as the SSOT path. -Gate (SSOT): +## What changed + +- JoinIR legacy loop table removed; router now delegates to plan/composer only. +- stdlib loop subsets migrated to plan facts (StringUtils.to_lower, StringUtils.join, trim_start/trim_end). +- Pattern2/4/8/9 legacy routing removed; Pattern6 nested minimal adopted via CorePlan (strict+release). +- Dead-code cleanup after legacy removal (unused JoinIR lowerers removed). + +## Gate (SSOT) + - `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` -## P0: Reduce legacy extractors (Pattern1/3) ✅ +## Commands (SSOT) -- Scope: - - Remove Pattern1/3 extractor fallbacks in `single_planner`. - - Remove Pattern3 JoinIR router entry so plan line is the only path. - - Pattern1 JoinIR entry is retained for now (stdlib loops still rely on it). -- Guardrails: - - Outcome remains `Ok(None)` for non-matching cases. - - No new logs or error strings. +- `./tools/smokes/v2/run.sh --profile quick` +- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` -## P1: Reduce JoinIR wrappers (Pattern6/7) ✅ +## Residuals / Next -- Scope: - - Drop JoinIR-side Pattern6/7 wrapper modules (plan/composer is SSOT). - - Keep routing through single_planner → composer adopt. -- Guardrails: - - No change to pattern selection or logs. - -## P2: Pattern1 stdlib to_lower subset (Plan SSOT) ✅ - -- Scope: - - Add char-map Facts/Planner/Normalizer path for StringUtils.to_lower (subset). - - Add regression smoke for stdlib to_lower and wire it into JoinIR gate. - - Keep Pattern1 in JoinIR legacy router table for stdlib join until a plan-based subset exists. -- Guardrails: - - No new logs or error strings. - - Fallback remains `Ok(None)` when shape does not match. - -## P3: Pattern1 stdlib join subset (Plan SSOT) ✅ - -- Scope: - - Add array-join Facts/Planner/Normalizer path for StringUtils.join (subset). - - Add regression smoke for stdlib join and wire it into JoinIR gate. - - Remove Pattern1 from JoinIR legacy router table. -- Guardrails: - - No new logs or error strings. - - Fallback remains `Ok(None)` when shape does not match. - -## P4: JoinIR legacy table shrink (Pattern8 removal) ✅ - -- Scope: - - Remove Pattern8 from `LOOP_PATTERNS` so plan/composer stays SSOT for normal loops. - - Keep legacy table as a last resort for the remaining legacy entries. -- Guardrails: - - No change to logs or error strings. - - Legacy routing remains a last-resort fallback. - -## P5: Remove Pattern2 from JoinIR legacy table ✅ - -- Scope: - - Remove Pattern2 (with break) from `LOOP_PATTERNS`. - - Keep plan/composer as the only routing path for Pattern2. -- Guardrails: - - No change to logs or error strings. - - Fallback remains `Ok(None)` for non-matching plan cases. - -## P6: stdlib trim_start/trim_end subset (Pattern2BreakFacts) ✅ - -- Scope: - - Add a conservative Pattern2BreakFacts subset for `trim_start`/`trim_end`. - - Normalize `not is_whitespace(...)` into `is_whitespace(...) == false` in facts. - - Restore quick smoke by ensuring stdlib loops are handled by plan/composer. -- Guardrails: - - No new logs or error strings. - - Subset only: if shape deviates, return `Ok(None)`. - -## P7: Pattern9 legacy table removal ✅ - -- Scope: - - Pattern9 is not referenced by stdlib/quick/gate; only legacy pack SKIP remains. - - Removed Pattern9 from JoinIR legacy table (plan/composer remains SSOT). -- Guardrails: - - No change to logs or error strings. - -## P8: Remove Pattern4 legacy routing ✅ - -- Scope: - - Remove Pattern4_WithContinue from `LOOP_PATTERNS`. - - Add a minimal continue fixture + regression smoke under JoinIR gate. -- Guardrails: - - No change to logs or error strings. - - Plan/composer remains the only routing path for Pattern4. - -## P9: Pattern6_NestedLoopMinimal strict/dev gate ✅ - -- Scope: - - Add nested-loop feature facts and project to canonical facts. - - In strict/dev, emit a `Freeze::unstructured` tag to avoid legacy fallback. - - Add a strict shadow smoke for nested minimal and wire it into the gate. -- Guardrails: - - Release/default behavior remains unchanged. - - Gate stays green. - -## P10: Pattern6_NestedLoopMinimal minimal CorePlan subset (strict/dev) ✅ - -- Scope: - - Add nested minimal facts (outer+inner loop subset) and project into canonical facts. - - Compose nested loop CorePlan v2 in strict/dev and emit shadow-adopt tag. - - Update the strict smoke to require the new tag. -- Guardrails: - - Release/default behavior remains unchanged (legacy JoinIR path stays). - - Gate stays green. - -## P11: Pattern6_NestedLoopMinimal release adopt ✅ - -- Scope: - - Non-strict/release adopts the nested minimal CorePlan v2 when facts are present. - - Strict/dev tag and fail-fast behavior remain unchanged. - - Legacy fallback remains for non-matches. -- Guardrails: - - No new logs/tags in release. - - Gate stays green. - -## P12: Remove JoinIR legacy loop table ✅ - -- Scope: - - Delete legacy loop table routing from JoinIR router. - - Remove legacy-only modules now that plan/composer is SSOT. -- Guardrails: - - No change to logs or error strings. - - Gate stays green. - -## P13: Warning cleanup (dead_code) ✅ - -- Scope: - - Remove unused JoinIR lowering modules (legacy remnants). - - Trim unused Pattern4 extractor fields. -- Guardrails: - - No change to logs or error strings. - - Gate stays green. - -## Next (planned) - -- P14: Phase 29ap closeout (docs-only) +- Next phase is TBD (choose between Plan/Composer subset expansion or CorePlan vocabulary expansion).