mcpField
T
trellis-break-loop

trellis-break-loop

github.com/mindfold-ai開発15.0k128 回インストール4 週間前に更新
リポジトリ

trellis-break-loop について

修正済みのバグを根本原因の分析、再発防止策、プロジェクトガイドの更新につなげる開発者向けスキルです。ベイズ推論で不確かな原因も評価します。

主な機能

  1. 015つの観点でのバグ分析
  2. 02根本原因の分類
  3. 03予防策の計画
  4. 04ベイズ推論による仮説更新
  5. 05仕様とテンプレートの反映

活用シーン

  1. 01修正したバグの振り返り
  2. 02失敗した修正案の分析
  3. 03システム内の類似問題の探索
  4. 04再発防止ガイドの記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mindfold-ai/trellis --skill trellis-break-loop

インストール後、Claude Code で/trellis-break-loopを入力して読み込まれたか確認します。

詳細

ループを断ち切る — 深いバグ分析

デバッグが完了したら、「バグを修正 → 忘れる → 繰り返す」というサイクルを断ち切るために、この手順で深く分析してください。


分析フレームワーク

修正したばかりのバグを、次の5つの観点から分析してください。

1. 根本原因のカテゴリ

このバグはどのカテゴリに属しますか?

カテゴリ特徴例
A. 仕様の欠如実行方法に関するドキュメントがないチェックリストのない新機能
B. レイヤー間の契約レイヤー間のインターフェースが不明確API が想定と異なる形式を返す
C. 変更の反映漏れ1か所を変更し、ほかの箇所を見落とす関数シグネチャを変更したが、呼び出し箇所を見落とす
D. テストカバレッジの不足単体テストは通るが、統合テストで失敗する単独では動作するが、組み合わせると壊れる
E. 暗黙の前提ドキュメント化されていない前提にコードが依存しているタイムスタンプの秒とミリ秒
2. 修正に失敗した理由(該当する場合)

成功するまでに複数の修正を試した場合は、それぞれの失敗を分析してください。

  • 表面的な修正:根本原因ではなく、症状を修正した
  • 対象範囲の不足:根本原因を特定したが、すべてのケースをカバーできなかった
  • ツールの制約:grep で見落とした、型チェックが厳密ではなかった
  • メンタルモデル:同じレイヤーばかりを調べ、レイヤーをまたぐ問題を考えなかった
3. 再発防止の仕組み

再発を防ぐには、どのような仕組みが必要ですか?

種類説明例
ドキュメント関係者が把握できるように記録する思考ガイドを更新する
アーキテクチャ構造上、エラーが起きないようにする型安全なラッパー
コンパイル時厳密な型チェックを行い、逃げ道をなくすシグネチャの変更でコンパイルエラーが発生する
実行時モニタリング、アラート、スキャンを行う孤立したエンティティを検出する
テストカバレッジE2E テスト、統合テストを実施する一連の処理全体を検証する
コードレビューチェックリスト、PR テンプレートを使用する「X を確認しましたか?」
4. 系統的な範囲の拡張

このバグから、どのようなより広範な問題が見えてきますか?

  • 類似の問題:同じ問題がほかのどこに存在する可能性がありますか?
  • 設計上の欠陥:根本的なアーキテクチャ上の問題はありますか?
  • プロセス上の欠陥:開発プロセスに改善の余地はありますか?
  • 知識の不足:チームに不足している知識はありますか?
5. 知識の記録

得られた知見をシステムに定着させてください。

  • .trellis/spec/guides/ の思考ガイドを更新する
  • 関連する .trellis/spec/ ドキュメントを更新する
  • 該当する場合は、課題の記録を作成する
  • 根本修正のための機能チケットを作成する
  • 必要に応じてチェックガイドラインを更新する

出力形式

次の形式で分析結果を出力してください。

## Bug Analysis: [Short Description]

### 1. Root Cause Category
- **Category**: [A/B/C/D/E] - [Category Name]
- **Specific Cause**: [Detailed description]

### 2. Why Fixes Failed (if applicable)
1. [First attempt]: [Why it failed]
2. [Second attempt]: [Why it failed]
...

### 3. Prevention Mechanisms
| Priority | Mechanism | Specific Action | Status |
|----------|-----------|-----------------|--------|
| P0 | ... | ... | TODO/DONE |

### 4. Systematic Expansion
- **Similar Issues**: [List places with similar problems]
- **Design Improvement**: [Architecture-level suggestions]
- **Process Improvement**: [Development process suggestions]

### 5. Knowledge Capture
- [ ] [Documents to update / tickets to create]

中核となる理念

デバッグの価値はバグを修正することではなく、この種のバグが二度と起きないようにすることにあります。

洞察には3つのレベルがあります。

  1. 戦術的:このバグをどう修正するか
  2. 戦略的:この種のバグをどう防ぐか
  3. 哲学的:思考パターンをどう広げるか

30分の分析で、将来のデバッグにかかる30時間を節約できます。

思考フレームワーク:ベイズ推論

複数の根本原因が考えられ、証拠が不十分な場合は、最初の仮説に固執するのではなく、新たな証拠に応じて確信度を更新してください。

ステップ1:事前確率を設定する

調査を始める前に、何をどのような理由で信じているかを示してください。

仮説事前確率推論
H1:[原因 A]40%このパターンで最もよくある
H2:[原因 B]30%環境を考慮すると妥当
H3:[その他]30%その他全般

事前確率の合計は100%でなければなりません。確率を割り当てられない場合は、まず調査してください。

ステップ2:証拠を観察する

見つかった内容を記録し、信頼性を具体的に示してください。

  • 具体的に何を観察しましたか?
  • 信頼性はどの程度ですか?(テスト出力 > ログメッセージ > ユーザー報告 > 勘)
  • 複数の仮説で説明できますか?
ステップ 3:確信度を更新する

各仮説について、次のように考えます。この仮説が正しいとしたら、この証拠が得られる可能性はどのくらいか?

計算よりも、更新の方向が重要です。

  • H1 が正しい場合に強く予測される証拠 → H1 の確率が上がる
  • H2 と矛盾する証拠 → H2 の確率が下がる
  • すべての仮説で同程度にあり得る証拠 → 更新しない
ステップ 4:仮説を見分けられる証拠を探す

同じような証拠をさらに集めるのはやめましょう。上位の仮説間で大きく異なる証拠を探します。

H1 と H3 が拮抗している場合は、「H1 が正しく、H3 が正しくないとしたら、何が見つかるだろうか?」と考え、それを確認します。

ステップ 5:確信度を示す
確信度対応
90% 以上修正を進め、監視する
70~90%対処を進め、フォールバックチェックを追加する
50~70%確定前に仮説をテストする
50% 未満さらに証拠が必要。推測しない

証拠が不十分な場合、決めつけた表現は使わないでください。「最も可能性が高い」「可能性はあるが低い」「調査する価値がある」などの表現を使います。

よくある誤謬
誤謬例改善策
ベースレートの無視「テストが失敗した → コードが壊れている」ほかの原因でテストが失敗する頻度はどのくらいでしょうか?
確証バイアス「競合状態に違いない。競合を示す証拠を探そう」最有力の仮説に反する証拠を積極的に探します
アンカリング「前回はキャッシュの問題だった。今回もたぶんキャッシュだ」昨日のバグではなく、現在の状況をもとに事前確率を設定します

分析後:直ちに行うこと

重要:上記の分析が完了したら、直ちに次の作業を必ず行ってください。

  1. 仕様/ガイドを更新する - TODO を列挙するだけでなく、該当するファイルを実際に更新します。

    • クロスプラットフォームの問題の場合 → cross-platform-thinking-guide.md を更新する
    • クロスレイヤーの問題の場合 → cross-layer-thinking-guide.md を更新する
    • コード再利用の問題の場合 → code-reuse-thinking-guide.md を更新する
    • ドメイン固有の問題の場合 → backend/*.md または frontend/*.md を更新する
  2. テンプレートを同期する - .trellis/spec/ を更新したら、src/templates/markdown/spec/ に同期します

  3. 仕様の更新をコミットする - これが主な成果物であり、分析テキストだけではありません

分析がチャットにとどまるなら、価値はありません。価値があるのは、更新された仕様です。

コメント