mcpField
T
tcrdd

tcrdd

github.com/bseneテスト・品質7182 回インストール1 週間前に更新
リポジトリ

tcrdd について

tcrddは、ネイティブのGitを使って小さな段階でレッド・グリーン・リファクタリングを進めるスキルです。テストを実行し、その結果に応じて各段階をコミットまたは取り消す手順を、対話型と無人実行の両方で示します。

主な機能

  1. 01各段階を小さな一歩に限定
  2. 02実際のテスト結果で判断
  3. 03自動コミットまたは取り消し
  4. 04対話型と無人実行に対応
  5. 05失敗ログと復旧ガイド

活用シーン

  1. 01段階的なテスト駆動開発
  2. 02承認者不在でのコーディング作業
  3. 03テスト失敗後の変更残存を防止

インストール

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

$npx skills add https://github.com/bsene/skills --skill tcrdd

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
autonomous-execution.md
benchmarks.md
example-and-errors.md
further-reading.md
git-cycle.md
phase-guide.md
pragmatics.md

詳細

TCRDD

ネイティブの git を使って、レッド/グリーン/リファクタリングを進めます。各フェーズでステージングしてテストを実行し、期待どおりの結果なら自動コミットし、そうでなければ自動的に元に戻します(git reset --hard)。外部ツールは不要です。

事前条件:クリーンなツリーから開始してください。未コミットの変更や未追跡ファイルがない状態にします。 元に戻す処理(git add -A + git reset --hard)は未追跡ファイルを削除し、reflog からも復元できないため、サイクル開始時に存在する未追跡ファイルは失われます。残しておきたいファイルは、最初の add -A の前に git stash -u(または専用の worktree)で退避してください。

モード

  • インタラクティブ(人間がループに参加している):以下の承認ゲートを使用します。まず計画の承認を得てから、各ステージング・テストサイクルの前に差分の承認を得ます。
  • 自律(無人での実行など、人間による承認が得られない):そのままループを実行してください。 承認ゲートは任意です。省略して続行してください。フェーズごとにコミットし、一度に一つの小さなステップだけを進めます。決して、得られることのない承認を待って停止しないでください。

重要なガードレール

  • RED/GREEN と宣言したりコミットしたりする前に、実際のテストランナーの実行結果全体を確認してください。予測を根拠に先へ進んではいけません。
  • 無人実行でも、各フェーズで進めるのは小さなステップ一つだけにしてください。テストスイート全体や実装をまとめて実行・実装してはいけません。
  • テスト前に git add -A でステージングしてください。そうすれば、失敗したステップで新規ファイルも元に戻せます。リセット前に失敗の詳細を記録し、その後 tcr-failure-log.md に追記して、ログを別途コミットしてください。フェーズを実行する前にgit サイクルを読んでください。
  • リポジトリのテストコマンドを一度特定し(パッケージのスクリプト、Makefile、言語の慣習、次に README/CI、または確認を依頼)、各フェーズで同じ CI テストスイート全体を再利用してください。ただし、ユーザーが明示的に対象を限定している場合を除きます。
  • 自律実行では、予算を設定し、並行エージェントには隔離された worktree を使い、フェーズのコミットにタグを付け、予算に達したら停止してください。同じステップで元に戻す処理が2回を超えたら、ステップを分割してください。さらに分割した後、2回目の試行が停滞した場合は中断し、ブロッカーを報告してください。必要な構造化ハンドオフについては自律実行に従ってください。
  • 簡単なコード、GUI レイアウトの微調整、信頼できるサードパーティ内部のコード、または本当に使い捨ての作業に限り、スキップするか簡略化してください。長期的に使う GUI ロジックは切り出して TCRDD の対象とし、サードパーティとの境界では自分のコードをテストしてください。例外と限定的な制約については実用上の指針を読んでください。

ワークフロー

GREEN:現在失敗しているテストを通すために必要な最小限のコードだけを書いてください。 一般化したり、将来のケースに対応したりしてはいけません。以下の変換のうち、番号が最も小さいものを使ってください。

RED   → plan test → approval? → write test → diff approval? → stage + run tests
        test FAILS (expected)?   commit [RED]      → GREEN
        test PASSES (unexpected)? log → reset --hard → try again

GREEN → plan code → approval? → write code → diff approval? → stage + run tests
        tests PASS?  commit [GREEN]      → REFACTOR
        tests FAIL?  log → reset --hard  → try again

REFACTOR → plan cleanup → approval? → refactor → diff approval? → stage + run tests
           tests PASS (no behaviour change)? commit [REFACTOR]     → (loop or done or back to RED)
           tests FAIL?                       log → reset --hard   → try again

コードの書き方

各フェーズの前に(インタラクティブモードのみ):ユーザーの計画承認を得てから、ステージングとテスト実行の前に差分の承認を得てください。

一度に一つのステップ。まとめて一度に実行してはいけません。 各フェーズで進めるのは、小さなステップ一つだけです。失敗するテストを一つ書き、そのテストを通すための最小限のコードを書きます。自律モードでも、テストスイート全体や実装全体を一度に書いてはいけません。1回のターンで機能を完成させた場合、TCRDD を実行していません。

  • RED — 次の最小の振る舞いを選び、失敗するのに十分なテストだけを書きます(最初のコンパイルエラーまたはアサーション失敗で止めます)。
  • GREEN — 現在失敗しているテストに必要な最小限の本番コードを書きます。追加のヘルパー、依存関係、将来のケースは加えません。変換の段階から番号が最も小さい手法を使います。番号の大きい手法が必要になるなら、テストが大きすぎたということなので、分割してください。
  • REFACTOR — すべてのテストが成功したら、本番コードとテストコードを自由に整理します。
  • REPEAT — 機能が完成したか確認します。未完成なら RED に戻り、完成していれば中間コミットを一つのクリーンなコミットにまとめます。

詳細、12段階の全ステップ、小さなステップと一括実行の例、エラー処理の表については、以下の参考資料を参照してください。

必要に応じて読む

読むタイミングリンク
RED/GREEN/REFACTOR フェーズを書くとき、または変換方法を選ぶときフェーズガイド
ベビーステップの例を見るとき、またはリバート/不安定/ダーティツリーの状況が発生したとき例とエラー
無人で実行するとき、またはオーケストレーターに報告するとき自律実行
ステージ/テスト/コミット/リバートと失敗ログを実装するときGit サイクル
ループをスキップするか、簡略化するかを判断するとき実践的な考慮事項
TCR/TDD/TPP の理論と原著記事(Beck、Uncle Bob)について知りたいときさらに読む
ベンチマーク結果を確認するときベンチマーク

上流

TCRDD を始める前にスキル理由
その機能を開発する価値があるか判断できないときkanored/green/refactor のサイクルに取り組む前に、機能を分類します

コメント