アプリ・Webサービス・業務ツールの制作を、証拠分析→確定的な初稿→要件定義→体験設計→機能分解→実装→品質ゲート→リリース判定の手順ゲート制で進めるスキル。質問で要件を埋めるのではなく、依頼文・既存コード・資料・ログから最有力案を選び、動く成果物を先に出して差分で改善する。ユーザーが「アプリを作りたい」「ツールを作って」「〜を自動化したい」「システム化したい」「要件定義」「仕様を決めたい」「UI/UXを設計して」「体験を良くしたい」「機能を洗い出して」「MVPを決めたい」「品質チェック」「リリースしていいか判断して」などと言ったら必ず使用する。外部データの取込・マスタ・締め処理を伴う業務システムでは references/data-lifecycle.md も併用する。新規・既存を問わずアプリの制作・改善・リニューアルで使用する。
testing-excellence
アプリのテストはすべてこのスキルを使う。開発中のTDD(テストファースト)から、 ユーザー目線のE2E・受入テスト、インフラ/デプロイ検証、リリース前の網羅テストまでを1つに統合。 「テストを書いて」「テストして」「動作確認して」「TDDで進めて」「カバレッジを確認」 「E2Eテスト」「リリース前にちゃんとテストしたい」「本番で動くか確認」「回帰テスト」 などの文脈で必ず使用する。§0「適用段階」に従い、たたき台〜v1 では「壊れたら困る順」の最小テスト、 固定化段階(v1 到達後のブラッシュアップ)ではユーザーがテストと明示しなくてもTDDサイクルを適用する。 セキュリティ・コスト・パフォーマンスの監査は Skill launch-security を併用する。
インストール方法を見る含まれるファイル(2)
- SKILL.md7.7 KB
- references/tdd-and-patterns.md9.3 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Testing Excellence — 開発中TDDからリリース前網羅テストまで
テストは「書いたコードの確認」ではなく「アプリがユーザーの目的を果たすことの証明」。 開発中はTDDで守り、リリース前は4層(ユニット→統合→E2E→インフラ/受入)で網羅する。
0. 適用段階(先に読む)
本スキルは mvp-first-development §9「たたき台 → 確認 → 固定化」と app-orchestrator 裁定ルール4に従って段階的に適用する。
| 段階 | 書くテスト | 本スキルの適用範囲 |
|---|---|---|
| たたき台〜確認(v0 まで) | 計算ロジック・パーサー・集計と、理由表示など「文言が出ること」の固定だけ | §4 のインフラ検証(デプロイ後のスモーク)のみ必須。§2 の TDD サイクルと §5 は使わない |
| v1 までに | 上に加え、最頻業務と必須業務フローの E2E を「壊れたら困る順」に最小本数 | §3 を最小本数で。カバレッジは v0・v1 いずれのゲートにもしない |
| 固定化(v1 到達後のブラッシュアップ) | OK が出た主要フローの回帰テスト。以後の新機能・バグ修正は §2 の TDD サイクル | §1〜§6 を全て適用。カバレッジ 80% はこの段階の目標 |
リリース可否は INV-5 の3判定だけで決まり、本スキルのチェックリスト(§5)は公開を止める理由にならない(INVARIANTS.md)。
1. テスト戦略の全体像(4層)
| 層 | 対象 | ツール | 目安 |
|---|---|---|---|
| ユニット | 関数・ユーティリティ・コンポーネント | Vitest/Jest | 多数・高速 |
| 統合 | APIエンドポイント・DB操作・認可 | Vitest + ローカルD1/モック | 主要API全部 |
| E2E(ユーザー目線) | クリティカルユーザーフロー | Playwright | 主要フロー3〜10本 |
| インフラ/受入 | 本番相当環境での実動確認 | curl・wrangler・実ブラウザ | リリース毎 |
ユニット・統合は pnpm test、E2E・受入は pnpm run preview で立てたローカル本番相当環境(既定は http://localhost:8787)に対して実行する。
カバレッジ目標は固定化段階で80%以上(§0)。ただし数字合わせより「壊れたら困る順」にテストする。
2. 開発中: TDDサイクル
新機能・バグ修正は必ずこの順で進める(詳細パターンは references/tdd-and-patterns.md):
1. RED : ユーザージャーニーからテストケースを書く → 実行して失敗を確認
2. GREEN : テストを通す最小実装
3. REFACTOR: テストが通ったまま整理(immutability・小さい関数)
4. 検証 : カバレッジ確認(固定化段階では80%+)
- テストはユーザーに見える振る舞いを検証する。実装詳細(内部state・呼び出し回数)に依存させない。
- セレクタはセマンティック(role/label/text)を使う。CSSクラス依存は禁止。
- 各テストは独立させる(beforeEachでリセット。実行順依存禁止)。
- バグ修正はまず再現テストを書き、失敗を確認してから直す。テストを直して逃げない(テスト自体が誤りの場合のみ修正)。
- モック方針・ファイル配置・CI設定も
references/tdd-and-patterns.md参照。
3. ユーザー目線テスト(E2E・受入)
- クリティカルフローをユーザーの言葉でシナリオ化する(例:「ログイン→商品を検索→カートに入れ→注文確定→完了メールが届く」)。
- 実装は Playwright。
pnpm run previewで本番相当のローカル環境を起動し、そのURLに対して実行する。ハッピーパスだけでなく:- 入力ミス時にどう直せばいいか分かるエラーが出るか
- 二重送信・戻るボタン・リロードで壊れないか
- 空データ状態(初回ユーザー)と大量データ状態の両方
- モバイル幅(375px)での操作可能性(レスポンシブ崩れがないか。基準は Skill jp-web-design / ux-design)
- 受入基準は要件定義(app-excellence の手順ゲート)の「ユーザーができること」と1対1で対応させる。
4. インフラ・デプロイ検証(本番相当)
デプロイ後(またはプレビューURL)で必ず実行:
# スモークテスト: トップ・主要API・認証が生きているか
curl -sf "$ORIGIN/" -o /dev/null && echo "OK: top"
curl -s "$ORIGIN/api/health" | head -c 200
# SPA配信時: APIがフォールバックに横取りされていないか
curl -H "Accept: text/html" -H "Sec-Fetch-Mode: navigate" "$ORIGIN/api/me" | head -c 100
- D1 migrationが本番に適用済み(
wrangler d1 migrations listで未適用ゼロ) - Secretsが本番に存在する(値は表示しない。cloudflare-secure-deploy の手順)
- 認証フローの実動確認(許可ユーザー成功・拒否ユーザー失敗。better-auth-google-gate の受入テスト)
-
wrangler tailでエラーログが出ていない - 実ブラウザで主要フロー1周(Browserペインでの目視確認を含む)
5. 固定化段階の網羅チェックリスト(v1 到達後)
- ユニット・統合テスト全パス、カバレッジ80%+
- E2Eクリティカルフロー全パス(デスクトップ+モバイル幅)
- 回帰: 既存機能の主要フローが壊れていない
- エラー系: 不正入力・権限なし・404・ネットワーク断で適切な表示
- 空状態・ローディング状態・大量データ状態の表示確認
- インフラ検証(§4)全項目
- セキュリティ・コスト・パフォーマンス監査 → Skill launch-security で GO 判定
本チェックリストは固定化段階の品質目標であり、v0・v1 の公開可否は INV-5 の3判定(launch-security の段階別ゲートを含む)で決まる。未達項目は残課題リストへ記録する。
6. 報告形式
テスト結果:
ユニット/統合: X件 pass / Y件 fail(failの内容と対処)
E2E: シナリオ別の結果
カバレッジ: XX%
インフラ検証: 各項目の実測結果(コマンド出力の要点)
未実施・未確認: 残っている事実だけを明示(「たぶん動く」で完了報告しない)
関連
- TDD詳細パターン・モック・CI・よくある失敗パターン:
references/tdd-and-patterns.md - ローカル本番相当環境の起動・デプロイ手順: Skill wrangler / cloudflare-secure-deploy
- セキュリティ・コスト・パフォーマンス: Skill launch-security
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
Webアプリの準備→要件定義→設計→実装→公開→品質ゲートを実行する内部オーケストレーター。Claude Codeの /build-app /improve-app、Codexの $build-app / $improve-app から明示的に委譲された場合、custom agent起動時、または利用者が $app-orchestrator を明示した場合だけ使用する。一般のアプリ相談から暗黙起動しない。
run-extract-blueprint が生成した章別ブループリントの忠実性を独立 context で評価したいとき、事実/推測区別と粒度と被覆を検証し draft_hash に束縛した PASS/FAIL verdict をローカル品質ゲート (C01 の周回内の受入判定・差し戻し) へ渡したいときに使う。
確認点で利用者が見る深さを選んだあと打ち合わせ資料を作り手とは別の目で確かめたいとき、正確さ・言葉・見た目・シンプルさの指摘を資料の編集なしで受け取りたいときに使う。
生成した handout 資料が初心者に伝わるか読みやすさレビューを依頼したいとき、独立 context のレビュアーから指摘と根拠つきの verdict を回収したいときに使う。
Notion ページを描画する直前に粒度を検証したいとき、info-collector-agent ページと同等の section 充足度を section_canonical_map 基準で機械検証したいときに使う。