mcpField
S
strict-tdd

strict-tdd

github.com/proffesor-for-testingテスト・品質51961 回インストール今日更新
リポジトリ

strict-tdd について

strict-tdd は、失敗するテストを先に求めることで Red-Green-Refactor を適用するセッション限定のスキルです。TypeScript や JavaScript のプロジェクトで作業するコーディングエージェント向けです。

主な機能

  1. 01セッション単位の TDD 適用
  2. 02対象モジュールをカバーするテストファイルの必須化
  3. 03本番コードの変更前に失敗するアサーションを要求
  4. 04テストと設定ファイルは書き込み可能

活用シーン

  1. 01src/ の変更でテスト優先を徹底
  2. 02テストと実装の同時作成を防止

インストール

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

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill strict-tdd

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

同梱ファイルscripts/enforce-red-phase.sh

詳細

厳格な TDD モード

有効にすると、このスキルはセッション中のみ有効なフックを登録し、Red-Green-Refactor の規律を徹底します。

概要

次の条件を満たさない限り、src/(本番コード)への書き込みをブロックします。

  1. 対象モジュールをカバーするテストファイルが存在する
  2. そのテストに少なくとも 1 つの失敗するアサーションがある(Red フェーズが確認済み)

これにより、テストと実装を同時に記述してしまうという、エージェントによくある失敗を防ぎます。

有効化

/strict-tdd

現在のセッション中のみ有効です。

フックの設定

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hook": ".claude/skills/strict-tdd/scripts/enforce-red-phase.sh",
        "condition": "file matches src/**/*.{ts,js} AND NOT src/**/*.test.{ts,js}"
      }
    ]
  }
}

適用ロジック

#!/bin/bash
# enforce-red-phase.sh
# Called before any Write/Edit to src/ files

TARGET_FILE="$1"
TEST_FILE="${TARGET_FILE%.ts}.test.ts"

if [ ! -f "$TEST_FILE" ]; then
  echo "BLOCKED: No test file found at $TEST_FILE"
  echo "Write a failing test first (Red phase), then implement."
  exit 1
fi

# Check if tests are currently failing (Red phase)
npx jest "$TEST_FILE" --passWithNoTests 2>/dev/null
if [ $? -eq 0 ]; then
  echo "WARNING: Tests are passing. Are you in Green/Refactor phase?"
  echo "If adding new behavior, write a failing test first."
fi

注意点

  • src/ のファイルのみブロックします。テストファイルと設定ファイルは常に書き込み可能です
  • Refactor フェーズでは、テストは引き続き成功するはずです。これは想定どおりであり、違反として扱わないでください
  • テストランナーがインストールされていない場合、フックでエラーが発生します。jest/vitest が利用可能であることを確認してください
  • エージェントが別のパスに書き込んで回避しようとする可能性があります。フックは本番コードのすべてのパスに一致するようにしてください

コメント