2025-12-28 16:54:01 +09:00
|
|
|
|
# Phase 29ac: JoinIR thaw plan (Pattern6/7 near-miss → PASS)
|
|
|
|
|
|
|
|
|
|
|
|
Goal: Convert freeze-fixed Pattern6/7 near-miss cases into PASS while keeping contracts intact (no by-name or silent fallback).
|
|
|
|
|
|
|
2025-12-28 17:16:36 +09:00
|
|
|
|
## Status
|
2025-12-28 16:54:01 +09:00
|
|
|
|
|
2025-12-28 17:16:36 +09:00
|
|
|
|
- P1 ✅ Pattern6 reverse scan: Plan/Normalizer で受理して PASS
|
|
|
|
|
|
- P2 ✅ Pattern6 matchscan: fixture を contract-aligned に修正して PASS
|
|
|
|
|
|
- P3 ✅ Pattern7 split-scan: near-miss を contract-aligned な OK fixture として PASS 固定(元の契約違反 fixture は残す)
|
|
|
|
|
|
|
|
|
|
|
|
## Target list (initial)
|
|
|
|
|
|
|
|
|
|
|
|
- `apps/tests/phase29ab_pattern6_reverse_firstfail_min.hako`
|
2025-12-28 16:54:01 +09:00
|
|
|
|
- `apps/tests/phase29ab_pattern6_matchscan_firstfail_min.hako`
|
|
|
|
|
|
- `apps/tests/phase29ab_pattern7_firstfail_min.hako`
|
|
|
|
|
|
|
2025-12-28 17:16:36 +09:00
|
|
|
|
## Outcome (SSOT)
|
|
|
|
|
|
|
|
|
|
|
|
### PASS fixtures (behavioral)
|
|
|
|
|
|
|
2025-12-28 17:30:34 +09:00
|
|
|
|
- Pattern6 reverse scan OK: `apps/tests/phase29ab_pattern6_reverse_ok_min.hako`(RC=1)
|
|
|
|
|
|
- Pattern6 matchscan OK: `apps/tests/phase29ab_pattern6_matchscan_ok_min.hako`(RC=1)
|
2025-12-28 17:16:36 +09:00
|
|
|
|
- Pattern7 split-scan near-miss fixup OK: `apps/tests/phase29ac_pattern7_splitscan_nearmiss_fix_ok_min.hako`(RC=3)
|
|
|
|
|
|
|
|
|
|
|
|
### FAIL-Fast fixtures (contract boundary)
|
|
|
|
|
|
|
|
|
|
|
|
- Pattern6 scan-with-init contract violation: `apps/tests/phase29ab_pattern6_firstfail_min.hako`(tag: `[joinir/phase29ab/pattern6/contract]`)
|
2025-12-28 17:30:34 +09:00
|
|
|
|
- Pattern6 reverse scan contract violation: `apps/tests/phase29ab_pattern6_reverse_firstfail_min.hako`(tag: `[joinir/phase29ab/pattern6/contract]`)
|
|
|
|
|
|
- Pattern6 matchscan contract violation: `apps/tests/phase29ab_pattern6_matchscan_firstfail_min.hako`(tag: `[joinir/phase29ab/pattern6/contract]`)
|
2025-12-28 17:16:36 +09:00
|
|
|
|
- Pattern7 split-scan contract violation: `apps/tests/phase29ab_pattern7_firstfail_min.hako`(tag: `[joinir/phase29ab/pattern7/contract]`)
|
|
|
|
|
|
|
2025-12-28 16:54:01 +09:00
|
|
|
|
## Pass order (recommended)
|
|
|
|
|
|
|
|
|
|
|
|
1. **Pattern6 reverse scan**
|
|
|
|
|
|
- Plan/Normalizer: add reverse support (`i >= 0`, step `i = i - 1`).
|
2025-12-28 17:30:34 +09:00
|
|
|
|
- Smoke: `phase29ab_pattern6_reverse_ok_min` now OK PASS (RC=1).
|
2025-12-28 16:54:01 +09:00
|
|
|
|
2. **Pattern6 matchscan missing step**
|
2025-12-28 17:00:29 +09:00
|
|
|
|
- Freeze reason: `[joinir/phase29ab/pattern6/contract] scan-with-init contract: missing step update`
|
|
|
|
|
|
- Resolution: add explicit `i = i + 1` step in fixture (contract-aligned).
|
2025-12-28 16:54:01 +09:00
|
|
|
|
3. **Pattern7 split-scan near-miss**
|
|
|
|
|
|
- Resolve then/else update mismatches without relaxing contracts.
|
2025-12-28 17:16:36 +09:00
|
|
|
|
- Freeze reason: `[joinir/phase29ab/pattern7/contract] split scan contract: else i update must be \`i = i + 1\``
|
|
|
|
|
|
- Resolution: keep the contract-violation fixture as FAIL-Fast, and add a contract-aligned fixup fixture for PASS.
|
2025-12-28 16:54:01 +09:00
|
|
|
|
|
|
|
|
|
|
## Commands
|
|
|
|
|
|
|
|
|
|
|
|
- `./tools/smokes/v2/run.sh --profile integration --filter "phase29ab_pattern6_*"`
|
|
|
|
|
|
- `./tools/smokes/v2/run.sh --profile integration --filter "phase29ab_pattern7_*"`
|
2025-12-28 17:16:36 +09:00
|
|
|
|
- `./tools/smokes/v2/run.sh --profile integration --filter "phase29ac_pattern7_*"`
|