機能
heal のオブザーバは 3 つのファミリに分かれています。Code は heal init でどのプロジェクトにも入る常時オンのファミリ。Test と Docs はオプトインで、.heal/config.toml で有効化したときにコードのメトリクスと並んで表示されます。各ファミリは独自のメトリクス・設定セクション・専用の Claude スキルペア(レビューと修正適用)を持ちます。
Code(常時オン)
Section titled “Code(常時オン)”「コードベースのどこが変更しにくいか?」
デフォルトのオブザーバファミリです。LOC・CCN・Cognitive Complexity・Churn・Change Coupling・Duplication・Hotspot・LCOM の 8 メトリクスを、コードベース自身の分布に合わせてcalibrate し、heal status で表示します。🔥 の Hotspot 装飾は、複雑かつ頻繁に編集されるファイル(リグレッションが集中しがちな場所)を強調します。
| ページ | こんなときに読む |
|---|---|
| Configuration | 閾値の調整、モノレポワークスペースの追加、解消ポリシーの変更をしたい |
| Metrics | 各メトリクスの意味と Severity の決まり方を知りたい |
| Skills | Claude セッションから heal を動かしたい(レビュー、解消、設定) |
有効化フラグはありません。heal init がすべての Code オブザーバを有効化した状態で config.toml を書きます。
Test(オプトイン: [features.test])
Section titled “Test(オプトイン: [features.test])”「どの本番コードがテストから見えていないか? どのテストが古くなっている、または黙って skip されているか?」
3 つのテスト品質オブザーバを追加し、各項目に is_test_file フラグを付けます。中心的なシグナルは 行カバレッジ で、外部リポータ(cargo llvm-cov、pytest --cov、nyc、scoverage)が生成した lcov.info を読み取ります。Hotspot のスコアにはカバレッジ未達ファイル向けの乗数が加わり、頻繁に変更され かつ カバレッジが不足し かつ 複雑なファイルが解消キューの上位に浮上します。post-commit のナッジには「N uncovered hotspot」の行が追加されるので、次にテストを書くべき場所が見えるようになります。
| ページ | こんなときに読む |
|---|---|
| Configuration | ファミリを有効化したい、または lcov.info を配線したい |
| Metrics | 各テストシグナルが何を捕まえるかを知りたい |
| Skills | Claude にテストスイートをレビューさせたい、カバレッジの穴を埋めさせたい |
有効化:
[features.test]enabled = true
[features.test.coverage]enabled = true既存リポータからの lcov.info がまだ無いときは、同梱のセットアップスキルを実行してください。スタックを判別し、リポータの配線と CI 連携を提案します。
claude /heal-test-reporter-setupDocs(オプトイン: [features.docs])
Section titled “Docs(オプトイン: [features.docs])”「どのドキュメントが、説明している実装からずれているか?」
ペアになったドキュメントとソースを比較する 7 つのドキュメント品質オブザーバを追加します:鮮度、識別子の参照切れ、ペアの欠落、内部リンク切れ、孤立ページ、TODO マーカーの密度、そして docs 用の Hotspot コンポーザ。各ドキュメントが説明するソースの対応表は小さな JSON ファイル(.heal/doc_pairs.json、/heal-doc-pair-setup が一度生成)で管理します。Markdown / RST の重複検出もこのファミリで有効になります。Hotspot のスコアにも、ペアになったドキュメントが古いファイルへの乗数が加わります。
| ページ | こんなときに読む |
|---|---|
| Configuration | ファミリを有効化したい、ペアファイルの中身を知りたい |
| Metrics | 各ドキュメントシグナルが何を捕まえるかを知りたい |
| Skills | Claude にペアを検出させたい、ドキュメントを監査させたい、修正を適用させたい |
有効化:
[features.docs]enabled = trueこのあと、同梱のペア設定スキルを 1 度実行してください。ソースツリーと doc ツリーを走査して doc ⇔ source の対応関係を推論し、.heal/doc_pairs.json を書き出します。この対応表が無いと docs ファミリは何と何を比べればよいか分からないため、このスキルの実行は「あれば便利」ではなく「有効化の一部」です。
claude /heal-doc-pair-setupどの順序で有効化するか
Section titled “どの順序で有効化するか”典型的な導入順は次のとおりです:
- まず Code から。
heal initを実行し、/heal-code-reviewで監査し、/heal-code-patchで解消します。最初の意図的なリファクタの波でCritical 🔥をゼロまで持っていけば、ベースラインが整います。 - 次に Test を追加。
lcov.infoがある(または用意できる)なら有効化します。coverage_pctとskip_ratioの Finding によって、「テストを追加しよう」が順序付きキューに変わります。 - 最後に Docs を追加。 ドキュメントのドリフトが頻繁に起きるようになったら有効化します。Layer A のペアリングには
/heal-doc-pair-setupを 1 回実行する必要がありますが、それ以降はheal statusのたびに doc ファミリも走ります。
オプトインのファミリは後から無効化できます。enabled = false にすれば、次の heal status --refresh で対応する項目が TODO リストから消えます。再度有効化すれば再 calibrationなしで戻ってきます。