Commit Graph

3 Commits

Author SHA1 Message Date
9e32807a96 refactor(joinir): Phase 82-83 - Debug flag SSOT + Fallback verification
Phase 82: Centralized JoinIR debug flag reading
- Added is_joinir_debug() SSOT function in joinir_flags.rs
- Replaced 16 direct env::var() calls across 8 files
- Updated docs to recommend HAKO_JOINIR_DEBUG (NYASH_ deprecated)
- Backward compat: Both env vars work

Phase 83: Verified promoted carrier fallback behavior
- Confirmed NO fallback to name-based lookup for DigitPos/Trim
- Documented fallback expectations in Phase 80/81 docs
- Added verification commands and expected output

Changes:
- src/config/env/joinir_flags.rs: +187 lines (new SSOT module)
- 8 files: env var reads → is_joinir_debug() calls
- 3 docs: HAKO_JOINIR_DEBUG examples + fallback sections
- 1 summary doc: phase82-83-debug-flag-ssot-summary.md

Tests: 970/970 lib PASS, 58/58 normalized_dev PASS
Impact: Dev-only (zero production changes)
2025-12-13 19:01:14 +09:00
d150cecc36 docs(joinir): phase80 plan finalize + fix p3 cond_env mut (dev-only)
Phase 80 後処理:
- phase80-bindingid-p3p4-plan.md: Status を Completed に更新、Task 80-B/C/D チェックマーク追加
- pattern3_with_if_phi.rs: cond_env を mut に修正 + #[allow(unused_mut)] 追加(将来の登録処理に備える)

Phase 80 完全完了(commit 84129a7e): Pattern2/3/4 全て BindingId 配線完了
Next: Phase 81 - Pattern2 ExitLine contract stabilization
2025-12-13 18:14:37 +09:00
889492b617 docs(joinir): Phase 80 Tasks 80-0/80-A - Status verification + design doc
Task 80-0: Current status verification
-  970/970 lib tests PASS (production stable)
-  Core VM smoke tests PASS (json_pp_vm)
-  Phase 79 E2E tests broken (AST API mismatch, out-of-scope)
-  Pre-existing json_lint_vm failure (Pattern2 verifier, out-of-scope)
- **Conclusion**: Phase 80 has ZERO blockers

Task 80-A: SSOT design doc created
- New: docs/development/current/main/phase80-bindingid-p3p4-plan.md (336 lines)
- Pattern3/4 BindingId wiring strategy
- Implementation order: 80-B (P3) → 80-C (P4) → 80-D (E2E)
- Code examples and success metrics
- Fallback detection mechanism (existing log tags)

Design principles (consistent with Phase 74-79):
- Dev-only code (feature-gated)
- Dual-path maintained (BindingId priority + name fallback)
- Structural detection only (NO by-name branching)
- Fail-Fast error handling
- Zero production impact

Updated docs:
- 01-JoinIR-Selfhost-INDEX.md: Phase 79 Activation status
- 10-Now.md: Phase 80 tasks 80-0/80-A complete
- 20-Decisions.md: BindingId migration complete status
- joinir-architecture-overview.md: Phase 79/80 sections

Next: Task 80-B (Pattern3 BindingId registration)
2025-12-13 17:26:15 +09:00