feat(hako_check): Phase 153 - Dead code detection revival (JoinIR version)
Implement comprehensive dead code detection for hako_check with JoinIR integration, following Phase 133/134/152 box-based modularity pattern. ## Key Achievements 1. **Comprehensive Inventory** (`phase153_hako_check_inventory.md`): - Documented current hako_check architecture (872 lines) - Analyzed existing HC011/HC012 rules - Confirmed JoinIR-only pipeline (Phase 124) - Identified Phase 153 opportunities 2. **DeadCodeAnalyzerBox** (`rule_dead_code.hako`): - Unified HC019 rule (570+ lines) - Method-level + box-level dead code detection - DFS reachability from entrypoints - Text-based analysis (no MIR JSON dependency for MVP) - Heuristic-based false positive reduction 3. **CLI Integration** (`cli.hako`): - Added `--dead-code` flag for comprehensive mode - Added `--rules dead_code` for selective execution - Compatible with --format (text/json-lsp/dot) 4. **Test Infrastructure**: - HC019_dead_code test directory (ng/ok/expected.json) - `hako_check_deadcode_smoke.sh` with 4 test cases ## Technical Details - **Input**: Analysis IR (MapBox with methods/calls/boxes/entrypoints) - **Output**: HC019 diagnostics - **Algorithm**: Graph-based DFS reachability - **Pattern**: Box-based modular architecture - **No ENV vars**: CLI flags only ## Files Modified - NEW: docs/development/current/main/phase153_hako_check_inventory.md - NEW: tools/hako_check/rules/rule_dead_code.hako - MOD: tools/hako_check/cli.hako - NEW: tools/hako_check/tests/HC019_dead_code/ - NEW: tools/hako_check_deadcode_smoke.sh - MOD: CURRENT_TASK.md ## Next Steps - Phase 154+: MIR CFG integration for block-level detection - Phase 160+: Integration with .hako JoinIR/MIR migration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -45,6 +45,38 @@
|
||||
|
||||
---
|
||||
|
||||
## 📌 Docs マップ(トップレベルとステータス)
|
||||
|
||||
新しくドキュメントを書くときや、どこに置くか迷ったときはこの表を基準にする。
|
||||
|
||||
| パス | 用途 | 主な対象 | ステータス |
|
||||
|------|------|----------|------------|
|
||||
| `reference/` | 言語仕様・正式なリファレンス | 利用者 / 実装者 | **Active / SSOT** |
|
||||
| `guides/` | チュートリアル・長めの読み物 | 利用者 / 新規開発者 | **Active** |
|
||||
| `how-to/` | 手順書・レシピ集 | 日常開発 | **Active** |
|
||||
| `quick-reference/` | コマンドやオプションの早見表 | 日常参照 | **Active** |
|
||||
| `development/` | Rust 実装側の設計・ロードマップ | コア開発者 | **Active(Rust層)** |
|
||||
| `private/` | 将来の整理待ちのメモ・長文案 | コア開発者 | **Draft / Incubator** |
|
||||
| `design/` | 公開可能な安定寄り設計ノート | 実装者 | **Active(安定設計)** |
|
||||
| `architecture/` | 全体アーキテクチャの俯瞰図 | 実装者 / 設計者 | **Active** |
|
||||
| `abi/` | Nyash/Hakorune ABI 関連 | 実装者 | **Active** |
|
||||
| `specs/` | 古めの仕様・実験的仕様 | 実装者 | **Legacy(必要に応じ参照)** |
|
||||
| `checklists/` | レビュー・設計チェックリスト | 実装者 | **Active** |
|
||||
| `tools/` | ドキュメント生成・補助スクリプト | 実装者 | **Active** |
|
||||
| `updates/` | リリースノート・変更履歴 | 利用者 / 実装者 | **Active** |
|
||||
| `releases/` | リリース関連ドキュメント | 利用者 | **Active** |
|
||||
| `archive/` | 旧ドキュメント・歴史資料 | 研究・考古学用 | **Archived(正本ではない)** |
|
||||
| `assets/` | 画像などの共有アセット | すべて | **Support** |
|
||||
| `ENV_VARS.md` | 環境変数リファレンス | 実装者 / 運用者 | **Active(集約先)** |
|
||||
|
||||
運用ルール(提案):
|
||||
- **新規仕様/設計**: まずは `private/` に置き、安定したら `reference/` or `design/` へ昇格する。
|
||||
- **Rust 実装寄りの話**: `development/` 配下に置く(セルフホスト側は `private/roadmap` 等)。
|
||||
- **古い資料・置き換え済み**: 内容を変えずに `archive/` 以下へ移動し、先頭に「Archived / 新しい場所」の一行メモを書く。
|
||||
- **ユーザー向けに見せたいもの**: `guides/`, `how-to/`, `quick-reference/`, `releases/` を優先する。
|
||||
|
||||
---
|
||||
|
||||
## 🎯 クイックアクセス
|
||||
|
||||
### すぐ始める
|
||||
|
||||
Reference in New Issue
Block a user