Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
heal: AIが書いたコードの健全性を保つためのCLI
Search
Kazuyuki Suzuki
May 03, 2026
Technology
23
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
heal: AIが書いたコードの健全性を保つためのCLI
https://github.com/kechol/heal
https://kechol.net/heal/ja/quick-start/
Kazuyuki Suzuki
May 03, 2026
More Decks by Kazuyuki Suzuki
See All by Kazuyuki Suzuki
ProductZine Day 2025 Assuredのプロダクトディスカバリー
kechol
0
790
QuipperのWebエンジニア採用におけるコードテスト / Coding Test for Web Dev Candidates at Quipper
kechol
5
11k
BtoBプロダクト開発の現場 - forTeachers に最速で価値を届けるには -
kechol
7
3.7k
Other Decks in Technology
See All in Technology
AI時代における最適なQA組織の作り方
ymty
3
390
環境凍結という Toil を倒す -セルフサービス型 Ephemeral テスト環境の 設計と実践
shirouz
1
220
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
820
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
140
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
140
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
290
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
8
2.5k
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
440
RAGの精度向上とエージェント活用
kintotechdev
2
140
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
500
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
8k
Docker Desktop不要の時代が来る? WSL標準の「wslc」で Linuxコンテナを動かしてみた.
ueponx
0
730
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Building the Perfect Custom Keyboard
takai
2
810
KATA
mclloyd
PRO
35
15k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
960
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
580
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
340
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.5k
Agile that works and the tools we love
rasmusluckow
331
22k
Transcript
AI が書いたコードの健全性を 保つためのCLI heal Turn codebase health into agent triggers
AI が書いたコードを、AI に直してもらう。そのためのCLI です。
AI エージェントとコードの劣化 AI エージェントでコードを書くのが、当たり前になりました。機能追加のループは、 これまでにないスピードで回っています。 一方で、AI は目の前のタスクをこなすのは得意でも、コードベース全体への配慮は不 得意です。 似たコードを量産しがちで、重複 が静かに増えていきます
局所的な動作を優先するため、全体設計の整合性 が崩れていきます その帰結として、コードベース全体は次のような道をたどります。 機能追加 → 複雑性が増す → 不具合の温床に ↺ 放置すると、ずっと繰り返されます heal — Turn codebase health into agent triggers 2
コードの健全性を測る指標は、昔から存在します 「複雑な関数」 「変更が集中するファイル」 「重複したコード」 「凝集度の低いクラ ス」… こうしたコードの傷んだ箇所を測る指標は、何十年も前から研究されてきました。経 験のあるエンジニアがリファクタの判断に使ってきた指標です。 人の開発で機能してきた指標は、AI が書いたコードベースにもそのまま使えるはずで
す。 heal — Turn codebase health into agent triggers 3
そこで heal を作りました コードの劣化を、シグナルに。 シグナルを、AI のタスクに。 HEAL = Hook-driven Evaluation
& Autonomous Loop heal — Turn codebase health into agent triggers 4
コミットを起点に、改善が回り出す heal は git リポジトリで動く CLI です。heal init で1 度セットアップすれば、コミ
ットのたびに観測が走り、優先度つきの分析結果がキャッシュされます。 その分析結果を読んで実際に修正するのは、同梱の Claude Skill です。/heal-code- review がアーキテクチャを読み解き、/heal-code-patch が1 コミット1 修正で消化し ていきます。 + 増やすループ コード量 ↑ 要望 ↓ AI 実装 − 減らすループ 複雑性 ↓ heal シグナル ↓ Skill で修正 ↺ コミットのたびに、両方のループが回り続けます heal — Turn codebase health into agent triggers 5
Hotspot: もっとも重要な健全性指標 Hotspot とは、複雑 で、かつ 頻繁に変更されている ファイルのことです。 Hotspot = 複雑度
× 変更頻度 複雑だけど、誰も触らないファイル → 気にはなりますが、急ぎません シンプルで、よく変更されるファイル → 問題ありません 複雑で、よく触られているファイル → ここが次のバグの発生源です 開発者が変更のたびに「ここ、どうなってるんだっけ」と迷う場所ほど、ミスが入り 込みやすくなります。Hotspot は、その「迷いやすい場所」をデータで特定する指標 です。 直すなら、まずここから。コードベース全体の健全化への近道です。 heal — Turn codebase health into agent triggers 6
heal の内部アーキテクチャ ①〜④ はコミットごとに自動で動き、⑤ はユーザーが呼んだ時に動きます。 ① Hook — git の
post-commit フックが heal を起動する ↓ ② Observe — tree-sitter で AST を解析、git2 で履歴を解析 ↓ ③ Classify — Severity と Hotspot を判定する ↓ ④ Cache — 分析結果をキャッシュに保存する — ここまでが自動 / ここから手動 — ⑤ Use — CLI が改善箇所を表示、Skill がレビューや修正を実行 heal — Turn codebase health into agent triggers 7
CLI: 指標の分析結果を、優先度つきで出力 $ heal status HEAD bd75d4a (2179 findings) Drain
queue: T0 9 findings · T1 34 findings Critical [T0 Must drain] (9) crates/cli/src/commands/status.rs CCN=32 crates/cli/src/core/config.rs coupled LCOM=4 crates/cli/src/commands/hook.rs coupled coupled ... Next: `claude /heal-code-patch` drains the T0 queue 各指標 (CCN 、Coupling 、LCOM 等) の分析結果は、Severity と Hotspot で並べ替えら れて出力されます。コミットのたびに、自動で更新されていきます。 優先度の閾値は、そのコードベース自身の分布で calibration されます。プロジェクト の規模に依らず、相対的に妥当な優先度が付きます。 heal — Turn codebase health into agent triggers 8
Skill: アーキテクチャの改善案まで提示 $ claude /heal-code-review status.rs (CCN=32, Hotspot) → render()
に分岐が集中しています。Severity ごとに SectionRenderer を分けると、複雑度が下がります。 config.rs (LCOM=4, coupled) → load / validate / merge が同じ struct に同居しています。 責務を分離すると、依存関係も解消できます。 指標から問題箇所を読み解き、 「どこを」 「どう分割・整理すれば」健全になるか を、 具体的なリファクタ案として提示してくれます。 そのうち 機械的に修正できるもの (関数の抽出、責務分離、重複の統合など)は /heal-code-patch が引き取り、1 コミット1 修正で実際にコードを書き換えていきま す。アーキテクチャ判断が必要なもの は人の手元に残ります。 heal — Turn codebase health into agent triggers 9
ぜひ使ってみてください brew install kechol/tap/heal-cli https://github.com/kechol/heal https://kechol.github.io/heal/ja/ heal — Turn codebase
health into agent triggers 10
Appendix 1: 計測している指標 指標 対象 意味 LOC 言語ごとのコード行数 コードベースの規模 CCN
関数の分岐数 (McCabe) テストの難しさ Cognitive 関数の認知的複雑度 (Sonar) コードの読みにくさ Churn ファイルの変更頻度 変更の集中度 Change Coupling 一緒に変更されるファイル ファイル間の暗黙の依存度 Duplication コピペされたブロック 重複コードの多さ LCOM クラスの凝集度の欠如 クラスの責務の分散度 Hotspot 複雑度 × Churn バグが生まれやすい場所 heal — Turn codebase health into agent triggers 11
Appendix 2: 対応言語と構成 指標 対応言語 LOC すべての言語に対応 Churn / Change
Coupling / Hotspot すべての言語に対応 CCN / Cognitive / Duplication TypeScript / JavaScript / Python / Go / Scala / Rust LCOM TypeScript / JavaScript / Python / Rust (Go / Scala は未対応) 対応言語: TypeScript / JavaScript / Python / Go / Scala / Rust の6 言語をデフォルトで サポートしています。リリースバイナリにすべてバンドル済みです。 モノレポ対応: [[project.workspaces]] で workspace を宣言すれば、各 workspace を独立した分布でキャリブレーションできます。5kloc の CLI と 50kloc の API を、 別々のしきい値で評価できます。 heal — Turn codebase health into agent triggers 12