From 11221aec29b3caa5c56cb7002fc1b4161727d612 Mon Sep 17 00:00:00 2001 From: nyash-codex Date: Thu, 4 Dec 2025 14:33:30 +0900 Subject: [PATCH] docs(claude.md): Add hako_check workflow for .hako development (Phase 153) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added new section "🔍 コード品質チェック - hako_check" after selfhost section: - 5-step workflow with hako_check examples - Development flow example (edit → run → check → fix loop) - Check contents: HC011, HC012, HC019 (dead code detection) - Value: JoinIR-based, safety net for Phase 160+ migration, instant feedback Integration with selfhost line creates complete .hako development experience: 1. NYASH_USE_NY_COMPILER=1 for fast iteration 2. ./tools/hako_check.sh --dead-code for quality assurance 3. Full verification loop without cargo build overhead 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- CLAUDE.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index e7d70211..31b8c23f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -187,6 +187,57 @@ NYASH_USE_NY_COMPILER=1 NYASH_PARSER_STAGE3=1 HAKO_PARSER_STAGE3=1 \ - **開発加速**: Rust パーサー強化のドライバーにもなる - **復活**: 2025-11-25 に StringBox.get() バグ修正で復活 (`4120ab65`) +#### 🔍 コード品質チェック - hako_check(Phase 153 復活!) + +**hako_check を使いながら .hako 開発するワークフロー**: + +```bash +# Step 1: .hako を実行テスト +NYASH_USE_NY_COMPILER=1 NYASH_PARSER_STAGE3=1 HAKO_PARSER_STAGE3=1 \ + ./target/release/hakorune program.hako + +# Step 2: コード品質チェック(基本チェック) +./tools/hako_check.sh program.hako + +# Step 3: デッドコード検出(Phase 153 新機能!) +./tools/hako_check.sh --dead-code program.hako +# → [HC019] unreachable method (dead code) +# → [HC019] dead static box (never referenced) + +# Step 4: 特定ルールのみチェック +./tools/hako_check.sh --rules dead_code program.hako + +# Step 5: JSON-LSP フォーマット出力(エディタ統合用) +./tools/hako_check.sh --format json-lsp --dead-code program.hako +``` + +**開発フロー例**: +```bash +# .hako ファイル編集 +vim src/compiler/my_feature.hako + +# 即座に実行テスト(cargo build 不要!) +NYASH_USE_NY_COMPILER=1 NYASH_PARSER_STAGE3=1 HAKO_PARSER_STAGE3=1 \ + ./target/release/hakorune src/compiler/my_feature.hako + +# コード品質確認(未使用関数・デッドコード検出) +./tools/hako_check.sh --dead-code src/compiler/my_feature.hako + +# 問題があれば修正 → 再実行 +# (ループ高速!セルフホスト + hako_check で完全な検証ワークフロー) +``` + +**チェック内容** (Phase 153): +- **HC011**: 呼ばれないメソッド(デッドメソッド) +- **HC012**: 参照されないスタティックボックス +- **HC019**: 到達不可能な関数・ブロック(新!デッドコード検出) +- その他: arity mismatch など 15+ ルール + +**💡 価値**: +- **JoinIR ベース**: コンパイラ側の制御フロー情報を活用(正確!) +- **.hako 移植時の安全ネット**: Phase 160+ で .hako JoinIR/MIR 移植するときの検証に使える +- **即座にフィードバック**: セルフホストの爆速開発と組み合わせ最強! + ## Start Here (必ずここから) - 現在のタスク: [CURRENT_TASK.md](CURRENT_TASK.md) - 📁 **Main**: [docs/development/current/main/](docs/development/current/main/)