Files
hakorune/docs/development/current/main/design
nyash-codex 26de413be2 docs: finalize loop canonicalizer design (P0 implementation-ready)
## Summary
Loop Canonicalizer の設計を「実装可能」レベルまで固めた。

## P0: 設計詳細化

### LoopSkeleton の最小フィールド確定
- LoopSkeleton struct(steps/carriers/exits/captured)
- SkeletonStep enum(HeaderCond/BreakCheck/ContinueCheck/Update/Body)
- UpdateKind enum(ConstStep/Conditional/Arbitrary)
- ExitContract, CarrierSlot, CarrierRole の定義
- SSOT 境界の原則(入力: AST、出力: Skeleton のみ)

### Capability の語彙固定(Fail-Fast reason タグ)
- CAP_MISSING_* プレフィックスで統一
- 8 つの Capability を定義(ConstStepIncrement, SingleBreakPoint 等)
- 新規追加時は設計書を先に更新するルール

### RoutingDecision の出力先決定
- error_tags: Fail-Fast エラーメッセージ
- contract_checks: Phase 135 P1 verifier に統合
- NYASH_LOOP_ROUTING_TRACE: 開発時のルーティング追跡
- ErrorTagCollector を使用(新規 Box は作らない)

### 最初の対象ループ(skip_whitespace)の受け入れ基準
- Skeleton 差分を表形式で明示
- 必要 Capability を列挙
- 受け入れ基準 4 項目を定義

## P1/P2: 確認完了
- joinir-design-map.md に loop-canonicalizer.md へのリンク済み
- quick を重くしない運用は joinir-design-map.md に記載済み

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 04:39:52 +09:00
..

design/

docs/development/current/main/design/ は、長期参照する設計図SSOT 寄り)を置く場所。

  • 原則: “Phaseの作業ログ/完了報告” は ../phases/ に置く。
  • 原則: “不具合調査ログ” は ../investigations/ に置く。

現役の設計図(入口)

  • JoinIR の地図navigation SSOT: docs/development/current/main/design/joinir-design-map.md
  • Loop Canonicalizer設計 SSOT: docs/development/current/main/design/loop-canonicalizer.md