跳到正文
cccskills
免费在 GitHub 公开

tdd-impl

Kent Beck/t-wada 流の TDD でテストコードとプロダクションコードを実装する。Triggers on: '/tdd-impl', 'TDDで実装', 'TDD実装'

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md5.6 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

TDD実装(t-wada / Kent Beck 流)

設計が確定した後、テストリスト → Red → Green → Refactor のサイクルで実装する手法。要件理解・設計・必須ゲート通過・セルフレビューはこのスキルの責務外(呼び出し元が回す)。


Phase 1: テストリスト

実装に入る前に、検証したい振る舞いを過不足なくリスト化する。

  • 完了条件・受入基準を「テストとして書ける粒度」に分解
  • 正常系・異常系・境界値を含める
  • 優先順位: 「テスト容易性 × 重要度 × 不確実性」が高いものから着手
  • 1項目 = 1テストに対応

実装中に気付いた観点は着手前に必ずリストへ追記する(書き忘れ防止)。


Phase 2: Red — 1 つだけテストを書く

リストから 1 項目選び、テストコードに翻訳する。

  • Arrange-Act-Assert で構造化
  • 意味のあるアサーションを必ず置く(常に真の検証は禁止)
  • テストが失敗することを確認するまで次に進まない
  • 「正しい理由で失敗している」ことを確認(コンパイルエラーや想定外の例外で落ちていないか)

複数テストを先にまとめて書かない。1テスト→Red→Green→Refactor で1サイクル。


Phase 3: Green — 本当に成功させる

テストを通すための最小限の実装だけを書く。美しさは Refactor まで保留。

厳禁:

  • アサーションの削除や緩和
  • test.skip / コメントアウトでの回避
  • テスト側を書き換えて「とりあえず緑」にする

実装の 3 つのギア

ギアいつ使うかやり方
仮実装(Fake It)一般解への自信が無いとき、最初の一歩ハードコードで通す(例: return 42)
三角測量(Triangulation)仮実装の後、一般化を強制したいとき別ケースのテストを追加し、ハードコードでは通らないようにして一般解を引き出す
明白な実装(Obvious Implementation)一般解への自信が高く、テストとの結びつきが明確いきなり一般化された実装を書く

迷ったら 仮実装 → 三角測量 のルートで安全側に倒す。


Phase 4: Refactor — 緑のうちに改善する

テストが緑のまま、設計を改善する。

Refactor 判断

質問Yes なら refactor
同じロジックが2箇所以上に出現✅
名前が振る舞いを表していない✅
関数が複数の責務を負っている✅
マジック値が散らばっている✅

すべて No ならやらない判断を明示して次のテストへ。

禁止:

  • 今のテストでカバーされていない設計変更
  • 将来必要かもしれない抽象化の先取り
  • テストを赤にする変更(赤になったら直ちに戻す)

Phase 5: 繰り返し

テストリストが空になるまで Phase 2〜4 を繰り返す。各サイクル終了時、既存テストを含む全テストが緑であることを確認する。


既存変更・バグ修正時の追加ルール

  • 変更前に既存テストが全て緑であることを確認(基準点の固定)
  • バグ修正は再現テスト先行: バグを再現する失敗テストを先に書き、それが緑になることで修正の妥当性を示す
  • 変更後にも既存テストが緑であることを確認
  • 後方互換性が壊れる場合は実装を進める前に呼び出し元へ申告

LLM 特有の罠と対策

罠対策
実装ファーストに傾くPhase 2 の Red 観測まで実装ファイルを開かない
テストをまとめ書き1サイクル1テスト。追加観点は次サイクルへ
Green を急いで誤魔化すアサーション緩和・スキップ禁止。仮実装は OK だが三角測量で一般化
Refactor を飛ばす判断チェックリストを通過(やらない判断も明示)
テストリスト軽視追加観点は実装前に必ずリストへ

テストコードのガイドライン

  • プロジェクトのテストフレームワーク・既存パターンに従う
  • 単体テストと結合テストの粒度を分けて書く
  • モックは外部サービス・認証・インフラ層に限定(ビジネスロジックはモックしない)
  • 1テスト1検証、テスト名は振る舞いの説明

完了条件

  • テストリストの全項目がテストとして実装され、すべて緑
  • 既存テストを壊していない
  • 完了条件・受入基準をテストレベルで満たしている

/quality-check はこのスキルの範囲外(呼び出し元が完了後に実行)。


返却内容

  • テストリスト(最終版・チェック状況)
  • 追加・変更したファイル一覧(テスト / プロダクション別)
  • 各サイクルで使ったギア(仮実装/三角測量/明白な実装)と理由
  • 既存テストの実行状況(変更前/変更後)
  • 後方互換性に影響がある場合はその内容

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Codexによるread-onlyローカルレビューを実行する。Triggers on: '/codex-review', 'Codexでレビューして', 'クロスモデルレビューして'

中文简介正在准备中。当前显示原文说明。

masanami/claude-harness52026年10月19日 更新

調査(read-only)または雑務(workspace-write)をCodexへ委譲し、結論をJSONで受け取る。Triggers on: '/codex-task', 'Codexで調べて', 'Codexにやらせて', 'Codexへ委譲'

中文简介正在准备中。当前显示原文说明。

masanami/claude-harness52026年10月19日 更新

commit

免费

Conventional Commits形式でコミットする。Triggers on: '/commit', 'コミットして', 'commit changes'

中文简介正在准备中。当前显示原文说明。

masanami/claude-harness52026年10月19日 更新

恒常的な設計決定を ADR として記録する(退役する機能仕様から ADR 昇格の要否を判定するモードを併せ持つ)。定常フローの必須ステップではなく、必要時に呼ぶ。Triggers on: '/create-adr', 'ADRを書いて', '設計判断を記録', 'ADR昇格を判定'

中文简介正在准备中。当前显示原文说明。

masanami/claude-harness52026年10月19日 更新

仕様(チケットの完了条件・受入基準)からE2Eテストを実装する(非対話)。Triggers on: '/create-e2e', 'E2Eテストを書いて', 'E2Eテストを追加して'

中文简介正在准备中。当前显示原文说明。

masanami/claude-harness52026年10月19日 更新

機能仕様ドキュメントから要件チケットを作成する、または親要件チケットを実装チケット群に分解する。Triggers on: '/create-ticket', 'チケットを作成', 'Issueを作って', 'create ticket', '実装チケットに分解'

中文简介正在准备中。当前显示原文说明。

masanami/claude-harness52026年10月19日 更新

查看 masanami 的全部技能

报告此技能的问题