Files
hakorune/docs/development/current/main/phases/phase-29ap/README.md

1.8 KiB

Status, Scope, Related
Status Scope Related
Active Legacy extractor reduction (planner+composer SSOT)
docs/development/current/main/design/coreplan-migration-roadmap-ssot.md
docs/development/current/main/design/coreplan-migration-done-criteria-ssot.md
docs/development/current/main/design/coreloop-composer-v0-v1-boundary-ssot.md
docs/development/current/main/phases/phase-29ae/README.md

Phase 29ap: Legacy extractor reduction (Step-E)

Goal: Reduce legacy extractor fallbacks while keeping planner+composer as the SSOT path.

Gate (SSOT):

  • ./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh

P0: Reduce legacy extractors (Pattern1/3)

  • 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.

P1: Reduce JoinIR wrappers (Pattern6/7)

  • 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.

Next (planned)

  • P3: Router pattern-name branching reduction (planner outcome + composer SSOT)
  • P4: Facts/Feature expansion if needed