원클릭으로
requirements
機能開発・バグ修正の着手前に使用。メインセッションで人間パートナーと対話し、要件を構造化する。コード調査は Explore エージェントに委譲。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
機能開発・バグ修正の着手前に使用。メインセッションで人間パートナーと対話し、要件を構造化する。コード調査は Explore エージェントに委譲。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
実装完了後のコードレビューに使用。仕様準拠・コード品質・セキュリティの3観点を並列レビューし、指摘を依存解決して修正する。
セッション完了後の振り返りに使用。ワークフロー遵守の検証、ユーザ指摘の収集と自己改善提案、改善後のリグレッション確認を行う。
ワークフローを開始する。ユースケースを選択し、適切なステップを順に実行する
設計確定後、実装前に使用。設計をタスクに分解し、実装順序と依存関係を明確にする。
大規模プロジェクト(複数機能・フェーズ分割が必要)で使用。全体をフェーズに分割し、マイルストーンとリスクを定義する。各フェーズは planning スキルに渡す。
要件確定後、実装前に使用。メインセッションで人間パートナーと対話しながら設計を深掘りし、合意した設計を design.md にまとめる。
| name | requirements |
| description | 機能開発・バグ修正の着手前に使用。メインセッションで人間パートナーと対話し、要件を構造化する。コード調査は Explore エージェントに委譲。 |
実装の前に、何を作るか・なぜ作るかを構造化する。 人間パートナーとの対話を通じて曖昧さを除去し、全員(人間・AI)が参照できる要件ドキュメントを作る。
入力: 人間パートナーからのタスク指示
出力: requirements/REQ-*/requirements.md + context.md(+ 必要に応じて decisions.md)
原則: 曖昧な要件から始めた実装は、曖昧な結果を生む。
構造化された要件なしに設計を始めるな
要件が頭の中にある? それはまだ要件ではない。書け。
タスクサイズによらず要件定義を行う。タスクが小さければ書く量が少なくなるだけで、プロセスは同じ。
常に:
例外(人間パートナーに確認すること):
digraph requirements {
rankdir=TB;
input [label="タスク受領", shape=ellipse];
explore [label="調査\nExplore エージェント\n(コード/ドキュメント)", shape=box, style=filled, fillcolor="#cce5ff"];
shaping [label="深掘り対話\n「何がしたいか」「なぜか」\nAskUserQuestion", shape=box, style=filled, fillcolor="#ccffcc"];
gap [label="差分分析\n既知/未知/曖昧を整理", shape=box, style=filled, fillcolor="#cce5ff"];
dialog [label="差分ヒアリング\nAskUserQuestion\n(不足部分だけ)", shape=box, style=filled, fillcolor="#ccffcc"];
structure [label="要件ドキュメント\n構造化・作成", shape=box, style=filled, fillcolor="#ccccff"];
review [label="人間パートナーの\n承認", shape=diamond];
done [label="要件確定\n→ 次のステップへ", shape=ellipse];
input -> explore;
explore -> shaping;
shaping -> gap;
gap -> dialog;
dialog -> structure;
structure -> review;
review -> done [label="承認"];
review -> dialog [label="修正\n要求"];
}
Explore エージェントにコードベース・ドキュメントの調査を委譲する。
調査対象:
調査結果から、以下を整理する:
この整理が次の差分ヒアリングの質問を決める。テンプレ質問を機械的に全部聞くな。不足している論点だけ質問を生成しろ。
AskUserQuestion を使い、不足部分だけを段階的に質問する。
質問の原則:
ヒアリング観点:
| 観点 | 質問例 |
|---|---|
| 目的 | この機能は誰のどんな問題を解決する? |
| スコープ | 今回やること・やらないことの境界は?やらない理由は? |
| 振る舞い | 正常系はどう動く?異常系は? |
| 入出力 | 入力は何?出力は何?型は? |
| 前提・制約 | 既存API互換は必要?依存サービスは? |
| 受け入れ条件 | 何が確認できたら「完了」と言える? |
ヒアリング記録: 質問と回答は context.md に記録する(フォーマットは後述)。
対話で得た情報を要件ドキュメントにまとめる。確定した事実だけを requirements.md に、背景・経緯を context.md に分離する。
要件ドキュメントを人間パートナーに提示し、承認を得る。 修正要求があれば対話に戻る。
REQ ごとにディレクトリを作成する:
requirements/REQ-001-user-register/
requirements.md # 正本。下流はこれだけ読む
context.md # 背景、ヒアリング記録、前提・仮説
decisions.md # 任意。除外判断や代替案の検討があるときだけ
| ファイル | 中身 | 読む人 |
|---|---|---|
requirements.md | 承認済みの事実(FR, AC, NFR, スコープ) | spec-compliance-reviewer, implementer, verifier |
context.md | 背景、ヒアリング記録、前提・仮説 | 人間(振り返り・トレーサビリティ) |
decisions.md | スコープ外判断、代替案、再検討条件 | 人間(判断の追跡)。除外判断があるときのみ |
---
status: Draft | Approved
owner: [担当者]
last_updated: YYYY-MM-DD
---
# REQ-001: <タイトル>
## 概要
[1-2文でタスクの目的を記述]
## ユーザー価値
- **対象ユーザー**: [誰が使うか]
- **達成したいこと**: [何をしたいか]
- **期待する価値**: [それによって何が得られるか]
## スコープ
### やること
- [具体的な変更内容1]
- [具体的な変更内容2]
### やらないこと
- [除外する内容1] — 理由: [なぜやらないか]
- [除外する内容2] — 理由: [なぜやらないか]
## 前提・制約
- [既存API互換、依存サービス、既存データ前提など]
## 機能要件
### FR-1: <機能名>
- **振る舞い**:
- WHEN [トリガー条件] のとき、システムは [動作] しなければならない。
- **入力**: [入力の型・形式]
- **出力**: [出力の型・形式]
- **異常系**:
- IF [異常条件1] の場合、システムは [エラー動作1] を返さなければならない。
- IF [異常条件2] の場合、システムは [エラー動作2] を返さなければならない。
### FR-2: <機能名>
...
## 非機能要件(該当する場合のみ)
- **パフォーマンス**: [応答時間、スループット等]
- **互換性**: [後方互換の要件]
- **セキュリティ**: [認証・認可の要件]
## 受け入れ条件
### AC-1: <検証シナリオの要約>
Covers: FR-1
Given [前提条件]
When [操作]
Then [期待結果]
### AC-2: <検証シナリオの要約>
Covers: FR-1
Given [前提条件]
When [操作]
Then [期待結果]
## 影響範囲
- **変更対象ファイル**: [既知の場合]
- **依存する既存機能**: [影響を受ける機能]
## 未解決事項(あれば)
- [ ] [まだ決まっていないこと]
# REQ-001: <タイトル> — コンテキスト
## 背景・動機
[なぜこの変更が必要か。ビジネス的な経緯]
## 調査結果
[Explore エージェントの報告要約]
## ヒアリング記録
### Q1: [質問内容]
- **カテゴリ**: [目的/スコープ/振る舞い/入出力/制約/受け入れ条件]
- **背景**: [なぜこの質問をしたか]
- **回答**: [人間パートナーの回答]
- **要件への反映**: [この回答がどのFR/AC/スコープに反映されたか]
### Q2: [質問内容]
...
## 前提・仮説(未確認)
- [確認できていない前提1] — 確認方法: [どう確認するか]
- [確認できていない前提2] — 確認方法: [どう確認するか]
## 関連資料
- [参照した既存ドキュメントへのリンク]
# REQ-001: <タイトル> — スコープ判断
## Scope Decisions
| ID | Item | Decision | Reason | Basis | Revisit Trigger |
|----|------|----------|--------|-------|-----------------|
| SD-1 | [除外項目] | Out of Scope | [なぜやらないか] | [判断根拠・合意日] | [再検討する条件] |
| SD-2 | [採用項目] | In Scope | [なぜやるか] | [判断根拠] | - |
## 代替案の検討(あれば)
### [検討した代替案]
- **概要**: [何を検討したか]
- **不採用理由**: [なぜ採用しなかったか]
| セクション | 参照する下流 | 理由 |
|---|---|---|
| FR-*(WHEN/IF記法) | spec-compliance-reviewer | 曖昧さのない照合基準 |
| AC-*(Given/When/Then) | implementer, verifier | TDDテスト構造に直接対応 |
| AC の Covers: FR-x | spec-compliance-reviewer, verifier | FR と AC の機械的な追跡 |
| スコープ(やらないこと+理由) | spec-compliance-reviewer | スコープ逸脱の検出 + 判断の追跡 |
| 前提・制約 | implementer | 仕様が立つ土台の明示 |
| ユーザー価値 | spec-compliance-reviewer | 「誰の何の価値か」の検証 |
| ヒアリング記録(context.md) | 人間 | 判断経緯のトレーサビリティ |
| Scope Decisions(decisions.md) | 人間 | 除外理由と再検討条件の追跡 |
| 言い訳 | 現実 |
|---|---|
| 「要件は自明だ」 | 自明に見える要件こそ、人によって解釈が割れる |
| 「実装しながら固める」 | スコープが際限なく膨張する。事前に境界を決めろ |
| 「ドキュメントを書く時間がない」 | 手戻りの時間の方がはるかに高い |
| 「口頭で合意した」 | 口頭の合意は蒸発する。書いて初めて合意 |
| 「アジャイルだから要件定義は不要」 | アジャイルでもユーザーストーリーは書く |
| 「小さい変更だから」 | 小さい変更でも経緯は残せ。書く量が少ないだけでスキップする理由にならない |
以下のどれかに当てはまったら、要件定義に戻れ。
人間パートナー: 「ユーザー登録機能を作って」
差分ヒアリング:
Q1: 登録に必要なフィールドは? (選択肢: メール+パスワード / メール+パスワード+表示名 / その他)
A: メール+パスワード+表示名
Q2: メールの重複チェックは必要ですか?
A: はい、エラーを返す
Q3: パスワードの要件は? (選択肢: 8文字以上 / 8文字以上+記号必須 / カスタム)
A: 8文字以上、それ以外は特になし
requirements.md:
---
status: Approved
owner: your-name
last_updated: 2026-03-31
---
# REQ-001: ユーザー登録 API
## 概要
新規ユーザーをメール・パスワード・表示名で登録する API エンドポイント。
## ユーザー価値
- 対象ユーザー: 新規ユーザー
- 達成したいこと: メールアドレスとパスワードでアカウント登録したい
- 期待する価値: サービスの初回利用を開始できる
## スコープ
### やること
- POST /users エンドポイントの作成
- 入力バリデーション
- パスワードのハッシュ化保存
### やらないこと
- OAuth/ソーシャルログイン — 理由: MVPではメール登録を優先。複数IdP要件が出たら再検討
- メール認証フロー — 理由: 初期リリースでは不要。ユーザー数増加後に追加予定
## 前提・制約
- 既存の Express + PostgreSQL 環境を使用
- bcrypt でパスワードハッシュ化
## 機能要件
### FR-1: ユーザー登録
- **振る舞い**:
- WHEN クライアントが有効な登録リクエストを POST /users に送信したとき、システムはユーザーを作成し 201 Created を返さなければならない。
- **入力**: { email: string, password: string, displayName: string }
- **出力**: { id: string, email: string, displayName: string }
- **異常系**:
- IF email が既存ユーザーと重複している場合、システムは 409 Conflict を返さなければならない。
- IF password が8文字未満の場合、システムは 400 Bad Request を返さなければならない。
## 受け入れ条件
### AC-1: 有効な入力で登録が成功する
Covers: FR-1
Given 未登録のメールアドレスが入力されている
When ユーザーが POST /users に有効なリクエストを送信する
Then 201 が返り、ユーザーが作成される
### AC-2: 重複メールで登録が拒否される
Covers: FR-1
Given 同じメールアドレスのユーザーが既に存在する
When ユーザーが POST /users にそのメールで登録を試みる
Then 409 が返る
### AC-3: 短いパスワードで登録が拒否される
Covers: FR-1
Given パスワードが8文字未満
When ユーザーが POST /users に登録を試みる
Then 400 が返る
### AC-4: パスワードが安全に保存される
Covers: FR-1
Given ユーザーが正常に登録された
When データベースのユーザーレコードを確認する
Then パスワードが平文ではなくハッシュ化されて保存されている
要件確定前に確認:
| 問題 | 解決策 |
|---|---|
| 人間パートナーが要件を決められない | 選択肢を提示して選んでもらう。「AとBどちらですか?」 |
| 要件が大きすぎる | タスクを分割する。1つの REQ で1つの機能 |
| 技術的な制約がわからない | Explore エージェントにコードベース調査を委譲 |
| 要件が曖昧なまま進みたいと言われた | リスクを伝えた上で、最低限の AC だけでも合意する |
| やらないことの理由が不明確 | decisions.md に Revisit Trigger 付きで記録し、後で再検討可能にする |
| 担当 | 責務 | できること |
|---|---|---|
| メインセッション(あなた) | 対話・評価・意思決定 | AskUserQuestion、判断、ドキュメント作成 |
| Explore エージェント | コードベース/ドキュメント調査 | Read, Grep, Glob(調査のみ) |
鉄則: 対話はサブエージェントに委譲するな。対話はメインセッションの責務だ。
Explore エージェントは「調べてきて」と頼む調査員。「ユーザーと話してきて」とは頼めない。
あなたはこのスキルの対話プロセスをメインセッションで自分で実行する。調査だけ Explore エージェントに委譲する。
Claude Code 組み込みの Explore サブエージェント(subagent_type: "Explore")に既存コードベース・ドキュメントの調査を委譲する。Explore は .claude/agents/ に定義ファイルを持たない Claude Code 標準のサブエージェントである。
メインセッションで AskUserQuestion を使い、「何がしたいか」「なぜか」を段階的に深掘りする。
調査結果と対話で得た情報から、以下を整理する:
この整理が次の差分ヒアリングの質問を決める。テンプレ質問を機械的に全部聞くな。不足している論点だけ質問を生成しろ。
AskUserQuestion を使い、不足部分だけを段階的に質問する。
requirements/REQ-<連番>-<slug>/ ディレクトリに出力する前提スキル:
必須ルール:
出力:
requirements/REQ-<連番>-<slug>/requirements.md — 下流の全スキル・エージェントが参照する正本requirements/REQ-<連番>-<slug>/context.md — 背景・ヒアリング記録・前提requirements/REQ-<連番>-<slug>/decisions.md — スコープ判断(除外判断があるときのみ)次のステップ:
このスキルの出力を参照するエージェント: