features.json を読み込み、pending な機能を1件ずつ tdd-guide エージェント(内部で tdd-cycle を使用)で実装するスキル。 Context anxiety(トークン上限接近による焦り)と Context rot(情報劣化)を防ぐため、 機能単位のループ・状態管理・implementation-notes.md への記録を担う。 builder エージェントが実装フェーズを開始するときは必ずこのスキルを呼ぶ。
中文简介正在准备中。当前显示原文说明。
テストカバレッジのギャップを体系的に分析し、実際に動くテストコードを提案するスキル。
以下のようなときに使う: - テストカバレッジを改善したい・不足テストを特定したい - 「テストが足りない」「カバレッジを上げたい」「どこをテストすべき」 - 「未テストの関数」「what tests am I missing」「improve test coverage」「coverage gap」 t-wada式TDDの原則に基づき、テストの抜け漏れを特定して優先度付きで補完する。
引数: 分析対象ファイル・ディレクトリ(省略時はプロジェクト全体)
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
テストカバレッジのギャップを体系的に分析し、実際に動くテストコードを提案するスキル。 t-wada式TDDの原則(テスト作成→失敗確認→実装→パス確認)に基づき、テストの抜け漏れを特定して優先度付きで補完する。
まずプロジェクトの言語・テストフレームワーク・カバレッジツールを特定する。
検出対象ファイル:
pyproject.toml, setup.py, pytest.ini → Python (pytest)package.json (jest/vitest/mocha) → TypeScript/JavaScriptgo.mod → GoCargo.toml → RustGemfile → Ruby (rspec/minitest)テストディレクトリの特定:
tests/, test/, __tests__/, spec/,
*_test.go, *_test.py, *.test.ts, *.spec.ts
引数が指定された場合は、そのファイル/ディレクトリに絞って分析する。引数の値は以降のフェーズで SCOPE として使用する:
# 引数あり例: coverage-gap src/mymodule
SCOPE = src/mymodule # Phase 2 の --cov フラグ・Phase 3/5 の分析範囲に適用
# 引数なし
SCOPE = プロジェクト全体(pyproject.toml から自動検出またはデフォルト "src")
まずテストが正常に実行できるかを確認する。失敗する場合はその原因を診断してから分析に進む。
# Python: テストを実行して import エラーがないか確認
pytest -q 2>&1 | tail -20
テストが ImportError / ModuleNotFoundError で失敗する場合(優先順位順):
setup.py / pyproject.toml が存在): pip install -e . を実行src/ レイアウトで setup ファイルがない場合: tests/conftest.py を作成して PYTHONPATH を設定する
# tests/conftest.py
import sys, os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'src'))
fix-imports スキルと連携するエラーになっているテストファイルとその原因を先にレポートしてから修正に進む。
言語に応じたツールでカバレッジを計測する。ツールがなければ Phase 3 の手動分析に進む。
# ツールの存在確認
pip show pytest-cov > /dev/null 2>&1 && echo "ok" || echo "要インストール: pip install pytest-cov"
# SCOPE の決定(Phase 1 で決定した値を使用)
# 引数あり: SOURCE_DIR=<引数のパス>(例: src/mymodule)
# 引数なし: pyproject.toml から自動検出(またはデフォルト "src")
if [ -n "$SCOPE_ARG" ]; then
SOURCE_DIR="$SCOPE_ARG"
else
SOURCE_DIR=$(python -c "import tomllib; d=tomllib.load(open('pyproject.toml','rb')); print(d.get('tool',{}).get('pytest',{}).get('ini_options',{}).get('testpaths',['src'])[0])" 2>/dev/null || echo "src")
fi
pytest --cov=$SOURCE_DIR --cov-report=term-missing --cov-report=json -q 2>&1
# coverage.json から未カバー行を抽出
python -c "
import json, sys
try:
with open('coverage.json') as f:
data = json.load(f)
for path, info in data.get('files', {}).items():
pct = info['summary']['percent_covered']
missing = info['missing_lines']
if missing:
print(f'{path}: {pct:.0f}% (missing: {missing})')
except FileNotFoundError:
print('coverage.json not found - run pytest with --cov first')
"
# Jest
npx jest --coverage --coverageReporters=text-summary 2>&1
# Vitest
npx vitest run --coverage 2>&1
go test ./... -coverprofile=coverage.out 2>&1
go tool cover -func=coverage.out | grep -v "100.0%"
# ツール確認
cargo tarpaulin --version > /dev/null 2>&1 || echo "要インストール: cargo install cargo-tarpaulin"
cargo tarpaulin --out Stdout 2>&1
カバレッジデータと実装コードを読み合わせて、優先度付きのギャップリストを作成する。
| 優先度 | 対象 |
|---|---|
| Critical | ビジネスロジック・データ変換・認証・バリデーション |
| High | エラーハンドリング・例外パス・境界値 |
| Medium | 条件分岐の各パス・オプション機能 |
| Low | ログ出力・設定読み込み・単純なゲッター |
カバレッジツールがない場合、以下を手動でチェックする:
if/else, try/except, switch で片方だけテストされているケース新しいテストは既存のパターンに合わせて書く。まずテストファイルを2〜3件読む:
Read: tests/ または __tests__/ の代表的なテストファイル
確認するもの:
- フィクスチャ/モックのセットアップ方法
- アサーションスタイル (assert vs expect)
- テスト名の命名規則(日本語/英語/given-when-then)
- ファイル構成とimport方法
t-wada TDDの原則に従い、既存パターンと一致する実際に動くテストコードを生成する。
test_should_XXX_when_YYY 形式(英語の場合)def test_空のトークンを拒否する(self):
# Arrange
empty_token = ""
# Act & Assert
with pytest.raises(ValueError, match="Token cannot be empty"):
validate_token(empty_token)
以下のフォーマットで結果を出力する:
## カバレッジギャップ分析レポート
### 現在のカバレッジ
- 全体: XX%
- 言語/フレームワーク: Python / pytest-cov
### 優先度別ギャップ
#### Critical(今すぐ追加すべき)
1. `src/auth.py:validate_token()` - 認証の核心ロジックが未テスト
**提案テスト** (`tests/test_auth.py` に追加):
\```python
def test_期限切れトークンを拒否する():
# Arrange
expired = create_expired_token()
# Act & Assert
with pytest.raises(TokenExpiredError):
validate_token(expired)
\```
#### High(重要なエッジケース)
2. `src/payment.py:process_payment()` - ネットワークエラー時の挙動が未カバー
...
### 追加後の推定カバレッジ
現在 60% → 提案テスト追加後 約 80% (推定)
### 次のアクション
1. Critical のテストを追加して失敗を確認
2. テストがパスするまで実装を修正しない(t-wada TDD原則)
3. Medium 以下は余裕があれば追加
fix-imports — テストのimportエラーを修正する(Phase 2-0 でエラーが出た場合に先に実行)planning-tests — TDD計画書の作成(より詳細な計画が必要な場合)flaky-test-detect — カバレッジが低い箇所はフレーキー率と相関することが多い/test — 提案テストの実行と確認security-scan — セキュリティ関連の未テストパスの発見还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
features.json を読み込み、pending な機能を1件ずつ tdd-guide エージェント(内部で tdd-cycle を使用)で実装するスキル。 Context anxiety(トークン上限接近による焦り)と Context rot(情報劣化)を防ぐため、 機能単位のループ・状態管理・implementation-notes.md への記録を担う。 builder エージェントが実装フェーズを開始するときは必ずこのスキルを呼ぶ。
中文简介正在准备中。当前显示原文说明。
フレーキーテスト(不安定なテスト)を検出・分類・修正支援するスキル。 以下のような状況で使う: - 「テストが時々失敗する」「CI が時々落ちる」 - 「同じコードなのにテスト結果が変わる」 - 「flaky test」「不確定」「再実行すると通る」 - 「テストが不安定」「テストの信頼性が低い」 t-wada式TDDの信頼性基盤を守るために使用する。 引数で実行回数を指定可能(デフォルト: 5回)。
中文简介正在准备中。当前显示原文说明。
Uncorrelated Evaluator — 4軸ルーブリック専門エージェント(functionality-reviewer・code-reviewer・design-reviewer・originality-reviewer)と security-reviewer を5並列実行し、成果物を多面的に独立評価します。PASS / NEEDS WORK / BLOCKED 判定を返します。Self-leniency 防止のため、実装エージェントのコンテキストを引き継がない新規エージェントとして起動します。「レビューして」「評価して」「実装を確認して」などのリクエストで起動します。
中文简介正在准备中。当前显示原文说明。
Iteratively detects and auto-fixes technical debt in a codebase using three quality criteria from debt-analysis references: conditional branch simplification, encapsulation, and separation of concerns. Applies fixes directly to code, runs existing tests to verify no regressions, re-analyzes, and loops until all high-severity issues are resolved or max iterations (5) reached. Use this skill when you want to automatically improve code quality with real code changes, reduce technical debt systematically, or clean up code to meet quality standards. Trigger on phrases like "fix technical debt", "clean up code quality", "refactor and fix issues", "improve code quality automatically", "apply debt fixes", "fix code problems", "eliminate debt".
中文简介正在准备中。当前显示原文说明。
任意のタスク(GitHub Issue・自由記述リクエスト・口頭要件)を起点に、受け入れ条件確認・スコープ定義・影響分析・テスト戦略を含む実装計画(15セクション)と、builder エージェントへ渡す features.json を生成します。「〇〇を作って」「実装計画を作って」「Issue
中文简介正在准备中。当前显示原文说明。
Planner→Builder→EvaluatorのLong-Runningエージェントハーネスで複雑なタスクを実装します。plannerがfeatures.jsonに機能を分解し、builderがTDDで1機能ずつ実装し、evaluatorがPASSするまでbuilderを繰り返します。「〇〇を作って」「実装して」「long-running」などのリクエストで起動します。
中文简介正在准备中。当前显示原文说明。