nyash-codex
c85d67c92e
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>
2025-12-04 14:19:48 +09:00
..
2025-09-26 00:42:55 +09:00
2025-09-06 06:24:08 +09:00
2025-10-31 19:22:00 +09:00
2025-08-28 12:09:09 +09:00
2025-11-09 00:57:10 +09:00
2025-12-02 12:38:01 +09:00
2025-09-19 02:07:38 +09:00
2025-12-04 14:19:48 +09:00
2025-11-08 23:45:29 +09:00
2025-10-31 19:22:00 +09:00
2025-11-11 02:07:12 +09:00
2025-09-07 07:28:53 +09:00
2025-12-02 12:38:01 +09:00
2025-11-01 12:19:17 +09:00
2025-11-02 15:43:43 +09:00
2025-11-06 15:41:52 +09:00
2025-12-02 13:46:51 +09:00
2025-12-04 12:40:01 +09:00
2025-11-06 15:41:52 +09:00
2025-09-06 06:24:08 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-14 00:44:28 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-08-29 23:11:21 +09:00
2025-11-06 15:41:52 +09:00
2025-11-09 15:11:18 +09:00
2025-11-07 19:32:44 +09:00
2025-09-01 23:44:34 +09:00
2025-11-06 15:41:52 +09:00
2025-09-14 04:51:33 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-16 23:49:36 +09:00
2025-09-06 06:24:08 +09:00
2025-09-05 05:16:21 +09:00
2025-09-05 05:16:21 +09:00
2025-11-01 18:53:15 +09:00
2025-11-06 15:41:52 +09:00
2025-08-26 01:42:18 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-15 05:42:32 +09:00
2025-11-06 15:41:52 +09:00
2025-11-01 13:28:56 +09:00
2025-12-02 12:38:01 +09:00
2025-12-02 12:38:01 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-12-04 14:19:48 +09:00
2025-11-30 14:30:28 +09:00
2025-12-02 12:38:01 +09:00
2025-12-02 12:38:01 +09:00
2025-11-06 15:41:52 +09:00
2025-09-14 04:51:33 +09:00
2025-11-11 21:24:51 +09:00
2025-09-04 11:34:15 +09:00
2025-11-06 15:41:52 +09:00
2025-09-04 11:34:15 +09:00
2025-09-07 07:36:15 +09:00
2025-11-09 23:40:36 +09:00
2025-09-15 01:21:37 +09:00
2025-11-13 16:40:58 +09:00
2025-09-05 13:29:17 +09:00
2025-09-05 13:29:17 +09:00
2025-09-14 19:16:32 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-01 18:53:15 +09:00
2025-09-15 01:21:37 +09:00
2025-09-05 13:29:17 +09:00
2025-09-07 07:36:15 +09:00
2025-12-02 12:38:01 +09:00
2025-11-06 15:41:52 +09:00
2025-09-15 18:44:49 +09:00
2025-09-15 18:44:49 +09:00
2025-09-15 18:44:49 +09:00
2025-09-15 18:44:49 +09:00
2025-09-17 01:20:15 +09:00
2025-11-23 05:53:27 +09:00
2025-09-27 08:45:25 +09:00
2025-09-27 08:45:25 +09:00
2025-09-04 11:34:15 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-19 02:07:38 +09:00
2025-09-19 02:07:38 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-18 13:35:38 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-15 22:14:42 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-21 08:53:00 +09:00
2025-09-15 18:44:49 +09:00
2025-09-15 18:44:49 +09:00
2025-09-15 18:44:49 +09:00
2025-09-15 18:44:49 +09:00
2025-11-06 15:41:52 +09:00
2025-09-15 18:44:49 +09:00
2025-11-06 15:41:52 +09:00
2025-08-23 16:33:32 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-15 22:32:13 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-12-02 12:38:01 +09:00
2025-11-01 18:53:15 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-08 17:04:21 +09:00
2025-11-06 15:41:52 +09:00
2025-11-30 14:30:28 +09:00
2025-11-30 14:30:28 +09:00
2025-11-21 23:52:10 +09:00
2025-11-19 02:44:40 +09:00
2025-11-08 17:04:21 +09:00
2025-12-02 14:07:19 +09:00
2025-12-02 14:07:19 +09:00
2025-12-04 11:28:55 +09:00
2025-12-04 11:44:55 +09:00
2025-12-02 14:07:19 +09:00
2025-11-13 18:11:25 +09:00
2025-11-09 15:11:18 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-16 14:57:05 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-09-07 07:36:15 +09:00
2025-09-17 20:33:19 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-08-24 00:05:12 +09:00