mcpField
B
backprop

backprop

github.com/juliusbrusseeテスト・品質1.2k2.6k 回インストール11 週間前に更新
リポジトリ

backprop について

backpropは、バグや検証失敗をコード修正と仕様変更につなげるスキルです。原因を追跡し、必要に応じて不変条件とテストを追加して修正を検証し、関連変更をまとめてコミットします。

主な機能

  1. 01失敗の根本原因を追跡
  2. 02仕様に§Bの記録を追加
  3. 03必要に応じて動作不変条件を追加
  4. 04新しい不変条件のテストを作成
  5. 05修正と全テストスイートを検証
  6. 06仕様、テスト、コードをまとめてコミット

活用シーン

  1. 01ユーザー報告のバグ修正
  2. 02ビルド検証失敗への対応
  3. 03本番インシデントの教訓を記録

インストール

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

$npx skills add https://github.com/juliusbrussee/cavekit --skill backprop

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

詳細

backprop — バグ → 仕様

計画してから実行する方法ではコードを修正できますが、その経緯は忘れられます。 SDDではコードを修正し、仕様も編集することで、再発を不可能にします。 その編集が backprop です。

backprop を行うタイミング

  • /build の検証でテストが失敗したとき。
  • ユーザーからバグの報告があったとき。
  • 本番環境のインシデント後に事後分析を行うとき。
  • /check で VIOLATE が検出され、根本原因が判明したとき。

6つのステップ

1. TRACE

失敗の出力またはバグ報告を読みます。 誤った動作が起きている正確なファイルと行番号を見つけます。 根本原因を、簡潔な一文で示します。

2. ANALYZE

次の3つの質問をします。

  • 新しい §V 不変条件があれば、この種類のバグを検出できますか?(最も多いケースでは、できます)
  • §I に誤りがありますか?仕様で、コードでは実現できない形を要求していましたか?(ときどきあります)
  • §T に誤りがありますか?作るものを間違えましたか?(まれですが、実際にあります)
3. PROPOSE

仕様の変更案を作成します。§B は必ず追加します。§V/§I/§T はケースバイケースです。

テンプレート:

§B row: B<next>|<date>|<root cause>|V<N>
§V line: V<next>: <testable rule that would have caught it>

例:

§B row: B3|2026-04-20|refund job ran twice on retry|V7
§V line: V7: ∀ refund → idempotency key check before charge reversal
4. GENERATE TEST

テストのない新しい不変条件は嘘です。まず失敗するテストを追加します。 不変条件を明記する名前をテストに付けます。例:TestV7_RefundIdempotent。

5. VERIFY

コードを修正します。テストを実行し、必ず合格させます。全テストスイートを実行し、リグレッションがないことを確認します。

6. LOG

仕様の編集、テスト、コードの修正をまとめてコミットします。 コミットメッセージ:backprop §B.<n> + §V.<N>: <one-line cause>。

良い不変条件の条件

  • コードでテストできる(grep または assert で検証できる)。
  • ファイルではなく、動作を対象にしている。
  • 可能な場合は肯定形で記述する(⊥ forbid より ! hold)。
  • 適用される §I の対象領域を参照している。

悪い例:V8: コードは正しくあるべきです。 良い例:V8: ∀ pg_query ! params interpolated via driver, ⊥ string concat.

§V を追加しないケース

  • バグが純粋に機械的なタイプミスで、同種の事例がない場合(使い捨てコードでの i++ と i-- の取り違えなど)。
  • 修正が一度限りの移行である場合。
  • 根本原因が外部依存関係にある場合(代わりに依存関係をアップグレードし、§C に記録します)。

それでも §B の項目は追加します。この失敗モードを検討したことを記録してください。今後、同じ兆候のバグが発生した場合、§B を検索すれば前例を確認できます。

出力形式

backprop の実行ごとに、次のものを作成します。

  1. §B の項目(必須)。
  2. §V の項目(通常)。
  3. テストファイル(§V を追加した場合)。
  4. コードの修正。
  5. 1つのコミット。

ダッシュボードはありません。ログファイルもありません。SPEC.md と git が全履歴です。

コメント