docs(joinir): Phase 84 - Glossary + debug flag documentation

Phase 84 最小化実装:
- 0.1 用語セクション拡張: SSOT, Fail-Fast 追加
- デバッグフラグ新セクション: HAKO_JOINIR_DEBUG 推奨化、後方互換説明
- Phase 82-83 統合後の状態反映

Not included (Phase 84 後回し):
- Duplicate heading consolidation
- Phase 74-81 comprehensive summary section

次: 箱化モジュール化 + レガシー削除調査
This commit is contained in:
nyash-codex
2025-12-13 19:06:53 +09:00
parent 9e32807a96
commit 2dc5ccecec

View File

@ -36,13 +36,32 @@
---
## 0.1 用語routing / fallback / fail-fast
## 0.1 用語・デバッグフラグGlossary & Debug Flags
### 用語routing / fallback / fail-fast
本文では「fallback」という単語が文脈でぶれやすいので、先に用語を固定する
- **routing**: JoinIR Core 内での正規な経路選択Pattern ルータ、if-sum mode ↔ legacy P3 など)。理由が分かる形でログ/タグを付ける。
- **soft fallback**: 任意箱pre-validation / optional optimizerが失敗したときに、同等意味論の別 JoinIR 経路へ退避することJoinIR Core 外へは出ない)。
- **prohibited fallback**: 非 JoinIR への退避(例: LoopBuilder・サイレント退避・契約違反の握りつぶし。
- **SSOT** (Single Source of Truth): 設計・実装・テストの情報が集約される唯一の場所e.g., `is_joinir_debug()` for debug flag reading。Phase ドキュメントより SSOT ドキュメントを優先参照。
- **Fail-Fast**: エラー条件を明示的に検出・報告し、サイレント退避や暗黙的フォールバックを禁止する設計原則。
### デバッグフラグPhase 82 SSOT 統一)
JoinIR デバッグログを有効にするには **`HAKO_JOINIR_DEBUG=1`** を使用(`NYASH_JOINIR_DEBUG=1` は deprecated:
```bash
# 推奨Phase 82 以降)
HAKO_JOINIR_DEBUG=1 cargo test --release --lib
# LegacyPhase 82 以前、後方互換保証)
NYASH_JOINIR_DEBUG=1 cargo test --release --lib
```
実装: `src/config/env/joinir_flags.rs::is_joinir_debug()` が両者をチェック。
詳細: `docs/development/current/main/phase82-83-debug-flag-ssot-summary.md`
## 1. 不変条件Invariants