원클릭으로
tdd-workflow
TDDワークフローを強制し、テストファースト開発を支援します。新機能実装時に自動起動し、Red-Green-Refactorサイクルを確実に実行します。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
TDDワークフローを強制し、テストファースト開発を支援します。新機能実装時に自動起動し、Red-Green-Refactorサイクルを確実に実行します。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
作業進捗をGitHub issueに自動報告します。計画立案時、知見獲得時、問題発覚時にブランチ名からissue番号を抽出し、構造化されたコメントを投稿します。
note.com APIの調査を支援します。mitmproxyとPlaywrightを使用してHTTPトラフィックをキャプチャ・分析し、API動作を解明します。
コード品質基準の完全遵守を保証します。コミット前の品質チェックを自動実行し、エラーがある状態でのコミットを防止します。
プロジェクト憲法への準拠を検証します。実装完了時やPR作成時に全Articleをチェックし、違反がないことを確認します。
コード変更、API変更、新機能追加時にドキュメントを自動更新します。公開APIやインターフェースの変更、新クラス・関数・モジュールの追加、アーキテクチャの重要な変更、ユーザーからの明示的なドキュメント更新依頼時に起動します。プロジェクトのドキュメント標準に準拠した更新を提案します。
MCPサーバー開発を支援します。プロトコル準拠、Pydanticスキーマ設計、Playwright統合のベストプラクティスを提供します。
| name | tdd-workflow |
| description | TDDワークフローを強制し、テストファースト開発を支援します。新機能実装時に自動起動し、Red-Green-Refactorサイクルを確実に実行します。 |
| allowed-tools | Read Edit Write Glob Grep Bash |
このスキルは、Constitution Article 1: Test-First Imperative を強制し、テスト駆動開発(TDD)ワークフローを支援します。
以下の状況で自動起動します:
目的: 失敗するテストを先に作成する
テストファイルの作成/特定
test_<機能名>.pytests/ ディレクトリテストケースの設計
テストの実行と失敗確認
uv run pytest tests/test_<機能名>.py -v
ユーザー承認
目的: テストを通過する最小限のコードを実装する
実装ファイルの作成
テストの実行と成功確認
uv run pytest tests/test_<機能名>.py -v
品質チェック
uv run ruff check --fix . && uv run ruff format . && uv run mypy .
目的: テストを維持しながらコードを改善する
コードの改善
テストの再実行
uv run pytest tests/test_<機能名>.py -v
全テストの確認
uv run pytest
| 実装ファイル | テストファイル |
|---|---|
src/auth.py | tests/test_auth.py |
src/article.py | tests/test_article.py |
src/session.py | tests/test_session.py |
# tests/test_auth.py
import pytest
class TestLogin:
"""ログイン機能のテスト"""
def test_login_success(self) -> None:
"""正常なログインが成功すること"""
...
def test_login_invalid_credentials(self) -> None:
"""無効な認証情報でエラーになること"""
...
class TestLogout:
"""ログアウト機能のテスト"""
def test_logout_success(self) -> None:
"""正常なログアウトが成功すること"""
...
test_<機能>_<状況>_<期待結果>test_login_with_valid_credentials_returns_sessionStep 1: テスト作成(Red)
# tests/test_auth.py
import pytest
from src.auth import login
class TestLogin:
def test_login_success(self) -> None:
"""正常なログインが成功すること"""
result = login("valid_user", "valid_password")
assert result.success is True
assert result.session_id is not None
def test_login_invalid_password(self) -> None:
"""無効なパスワードでエラーになること"""
with pytest.raises(AuthenticationError):
login("valid_user", "wrong_password")
Step 2: テスト失敗確認
uv run pytest tests/test_auth.py -v
# FAILED - ImportError: cannot import name 'login' from 'src.auth'
Step 3: ユーザー承認
「このテストケースで進めてよろしいですか?」
Step 4: 最小実装(Green)
# src/auth.py
from dataclasses import dataclass
@dataclass
class LoginResult:
success: bool
session_id: str | None
class AuthenticationError(Exception):
pass
def login(username: str, password: str) -> LoginResult:
if password == "wrong_password":
raise AuthenticationError("Invalid credentials")
return LoginResult(success=True, session_id="session_123")
Step 5: テスト成功確認
uv run pytest tests/test_auth.py -v
# PASSED
Step 6: リファクタリング(Refactor)
必要に応じてコードを改善
実装開始前に確認:
実装完了時に確認: