docs(CLAUDE.md): Add hako_check usage guide

hako_check ツール(Phase 153復活!)の使い方を CLAUDE.md に追加

内容:
- 基本的な使用方法(単発ファイル、ディレクトリ、オプション)
- 実用的な使用例(デッドコード検出、JSON-LSP出力)
- 環境変数制御ガイド(HAKO_CHECK_DEBUG, VERBOSE)
- 検出ルール一覧(HC011, HC012, HC019等)
- 出力例とトラブルシューティング
- 次のステップ(Phase 2-3計画)

セルフホスティング .hako 開発時の品質チェック手段として、
すぐに参照できるように MIRデバッグガイドの直後に配置

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-12-04 19:24:28 +09:00
parent dd314a0a72
commit e0a0928d79

View File

@ -55,6 +55,45 @@ done
- **解決**: `BTreeSet`/`BTreeMap`で決定的イテレーション保証 - **解決**: `BTreeSet`/`BTreeMap`で決定的イテレーション保証
- **残課題**: `variable_map: HashMap<String, ValueId>` (builder.rs等) - **残課題**: `variable_map: HashMap<String, ValueId>` (builder.rs等)
#### 🔍 **hako_check - セルフホスティング.hako品質チェック** (Phase 153復活)
**hako_check ツール**はセルフホスティングコンパイラの .hako ファイルをコード品質チェック!
```bash
# 基本的な使い方
./tools/hako_check.sh file.hako
./tools/hako_check.sh directory/
# 実用的な使い方
./tools/hako_check.sh apps/selfhost-runtime/boxes_std.hako # 単発チェック
./tools/hako_check.sh apps/selfhost-runtime/ --dead-code # デッドコード検出
./tools/hako_check.sh apps/selfhost-runtime/ --format json-lsp # エディタ統合用
# デバッグ情報が必要な時
HAKO_CHECK_DEBUG=1 ./tools/hako_check.sh file.hako # [DEBUG] 出力を含める
```
**環境変数制御**:
- `HAKO_CHECK_DEBUG=0` (デフォルト): デバッグ出力フィルタリング(クリーンな出力)
- `HAKO_CHECK_DEBUG=1`: 詳細デバッグ出力([DEBUG/...], [ControlForm::...] 等を表示)
- `HAKO_CHECK_VERBOSE=1`: 詳細モード(将来実装予定)
**検出ルール** (Phase 153):
- **HC011**: 呼ばれないメソッドunreachable method
- **HC012**: 参照されないスタティックボックスdead static box
- **HC019**: 到達不可能なコードunreachable code / dead code
- その他: arity mismatch など 15+ ルール
**出力例**:
```
[ERROR] ❌ MIR compilation error: Undefined variable: void
[lint/summary] failures: 1
```
**次のステップ (Phase 2-3)**:
- Rust側のデバッグ出力環境変数制御化
- エラーメッセージの構造化(ファイル:行番号表示、ヒント追加)
### 🎊 **Phase 33-10完了JoinIR If Lowering箱化モジュール化達成** (2025-11-27) ### 🎊 **Phase 33-10完了JoinIR If Lowering箱化モジュール化達成** (2025-11-27)
- **✅ 箱化モジュール化完了**: if_dry_runner.rs作成176行、vm.rs 83行→9行89%削減) - **✅ 箱化モジュール化完了**: if_dry_runner.rs作成176行、vm.rs 83行→9行89%削減)
- **✅ PHI guard実装**: 早期PHIチェックパターンマッチング前でJoinIR設計原則確立 - **✅ PHI guard実装**: 早期PHIチェックパターンマッチング前でJoinIR設計原則確立