Agent skill

requirements

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/requirements

SKILL.md

要件定義エージェント

役割

プロジェクトの要件定義を担当し、開発チームが実装可能な形式で要件をドキュメント化します。

要件定義書構成

docs/requirements/
├── PRD.md                       # プロダクト要件定義書
├── functional/
│   ├── overview.md              # 機能要件概要
│   ├── FR-001-auth.md           # 認証機能要件
│   ├── FR-002-user.md           # ユーザー管理要件
│   └── ...
├── non-functional/
│   └── NFR.md                   # 非機能要件
├── use-cases/
│   ├── UC-001-login.md          # ログインユースケース
│   └── ...
└── user-stories/
    ├── US-001-registration.md   # ユーザー登録ストーリー
    └── ...

PRD(プロダクト要件定義書)テンプレート

markdown
# プロダクト要件定義書 (PRD)

## ドキュメント情報
| 項目 | 内容 |
|------|------|
| プロダクト名 | [プロダクト名] |
| バージョン | 1.0 |
| 作成日 | YYYY-MM-DD |
| ステータス | Draft / Review / Approved |

---

## 1. エグゼクティブサマリー

### 1.1 背景
[プロダクトが必要とされる背景・課題]

### 1.2 目的
[プロダクトが解決する問題と達成したい目標]

### 1.3 成功指標 (KPI)
| 指標 | 目標値 | 測定方法 |
|------|--------|---------|
| [指標1] | [目標] | [方法] |
| [指標2] | [目標] | [方法] |

---

## 2. ターゲットユーザー

### 2.1 ペルソナ
#### ペルソナ1: [名前]
- **属性**: [年齢、職業、技術レベル]
- **ゴール**: [達成したいこと]
- **ペイン**: [現在の課題]
- **利用シーン**: [どのような場面で使うか]

### 2.2 ユーザーセグメント
| セグメント | 説明 | 優先度 |
|-----------|------|--------|
| [セグメント1] | [説明] | 高 |
| [セグメント2] | [説明] | 中 |

---

## 3. スコープ

### 3.1 対象範囲(In Scope)
- [機能1]
- [機能2]
- [機能3]

### 3.2 対象外(Out of Scope)
- [対象外機能1]
- [対象外機能2]

### 3.3 前提条件
- [前提条件1]
- [前提条件2]

### 3.4 制約条件
- [制約1]
- [制約2]

---

## 4. 機能要件

### 4.1 機能一覧
| ID | 機能名 | 説明 | 優先度 | ステータス |
|----|--------|------|--------|-----------|
| FR-001 | ユーザー認証 | ログイン・ログアウト機能 | Must | 未着手 |
| FR-002 | ユーザー管理 | プロフィール編集機能 | Should | 未着手 |
| FR-003 | [機能名] | [説明] | Could | 未着手 |

### 4.2 優先度定義
- **Must**: リリースに必須
- **Should**: 重要だが必須ではない
- **Could**: あれば良い
- **Won't**: 今回は対象外

---

## 5. 非機能要件

### 5.1 性能要件
| 項目 | 要件 |
|------|------|
| レスポンスタイム | 95%ile < 200ms |
| スループット | 1000 req/sec |
| 同時接続数 | 10,000 |

### 5.2 可用性要件
| 項目 | 要件 |
|------|------|
| 稼働率 | 99.9% |
| 計画停止 | 月1回、深夜2時間以内 |

### 5.3 セキュリティ要件
- 認証: JWT Bearer Token
- 通信: TLS 1.3
- データ保護: 個人情報は暗号化

### 5.4 その他
- 対応ブラウザ: Chrome, Firefox, Safari, Edge(最新2バージョン)
- 対応デバイス: デスクトップ、タブレット、スマートフォン

---

## 6. リリース計画

### 6.1 マイルストーン
| フェーズ | 内容 | 目標日 |
|---------|------|--------|
| MVP | 基本機能 | YYYY-MM-DD |
| v1.0 | 全機能 | YYYY-MM-DD |
| v1.1 | 改善 | YYYY-MM-DD |

### 6.2 MVP機能
- FR-001: ユーザー認証
- FR-002: 基本機能A
- FR-003: 基本機能B

---

## 7. 用語集
| 用語 | 定義 |
|------|------|
| [用語1] | [定義] |
| [用語2] | [定義] |

機能要件テンプレート

markdown
# FR-001: ユーザー認証

## 基本情報
| 項目 | 内容 |
|------|------|
| 要件ID | FR-001 |
| 要件名 | ユーザー認証 |
| 優先度 | Must |
| ステータス | Draft |
| 関連UC | UC-001, UC-002 |

## 概要
ユーザーがシステムにログイン・ログアウトできる機能

## 詳細要件

### FR-001-1: ログイン
- メールアドレスとパスワードでログインできる
- ソーシャルログイン(Google, GitHub)に対応する
- ログイン失敗時は適切なエラーメッセージを表示する
- 5回連続失敗でアカウントをロックする

### FR-001-2: ログアウト
- ログアウトボタンでセッションを終了できる
- 全デバイスからログアウトできる

### FR-001-3: パスワードリセット
- メールアドレスでパスワードリセットを要求できる
- リセットリンクは24時間有効

## 受入基準
- [ ] 正しい認証情報でログインできる
- [ ] 不正な認証情報でログインが拒否される
- [ ] ログアウト後にセッションが無効化される
- [ ] パスワードリセットメールが送信される

## 画面・API
- 関連画面: ログイン画面、パスワードリセット画面
- 関連API: POST /api/auth/login, POST /api/auth/logout

ユースケーステンプレート

markdown
# UC-001: ユーザーログイン

## 基本情報
| 項目 | 内容 |
|------|------|
| ユースケースID | UC-001 |
| ユースケース名 | ユーザーログイン |
| アクター | 登録済みユーザー |
| 関連要件 | FR-001 |

## 概要
ユーザーがシステムにログインする

## 事前条件
- ユーザーアカウントが存在する
- ユーザーはログアウト状態

## 事後条件
- ユーザーはログイン状態
- セッションが開始される

## 基本フロー
1. ユーザーがログイン画面にアクセスする
2. システムがログインフォームを表示する
3. ユーザーがメールアドレスを入力する
4. ユーザーがパスワードを入力する
5. ユーザーがログインボタンをクリックする
6. システムが認証情報を検証する
7. システムがセッションを作成する
8. システムがダッシュボードにリダイレクトする

## 代替フロー
### 6a. 認証失敗
1. システムがエラーメッセージを表示する
2. ユーザーは再度入力できる

### 6b. アカウントロック
1. システムがロックメッセージを表示する
2. ユーザーはパスワードリセットを案内される

## 例外フロー
### E1. システムエラー
1. システムがエラーページを表示する
2. ユーザーはサポートに問い合わせる

## ユースケース図

┌─────────────────────────────────────┐ │ システム │ │ ┌─────────────────────────────┐ │ │ │ │ │ │ │ (ログイン) │ │ │ │ │ │ │ │ │ │ <> │ │ │ │ ▼ │ │ │ │ (認証処理) │ │ │ │ │ │ │ └─────────────────────────────┘ │ └─────────────────────────────────────┘ ▲ │ ┌───┴───┐ │ユーザー│ └───────┘

ユーザーストーリーテンプレート

markdown
# US-001: 新規ユーザー登録

## ストーリー
**As a** 新規ユーザー
**I want to** アカウントを作成したい
**So that** サービスを利用できるようになる

## 受入基準 (Acceptance Criteria)

### AC-1: 基本登録
**Given** ユーザーが登録画面にいる
**When** 有効なメールアドレスとパスワードを入力して登録ボタンを押す
**Then** アカウントが作成され、確認メールが送信される

### AC-2: バリデーション
**Given** ユーザーが登録画面にいる
**When** 無効なメールアドレスを入力する
**Then** エラーメッセージが表示される

### AC-3: 重複チェック
**Given** ユーザーが登録画面にいる
**When** 既存のメールアドレスを入力する
**Then** 「このメールアドレスは既に登録されています」と表示される

## 詳細
| 項目 | 内容 |
|------|------|
| ストーリーポイント | 5 |
| 優先度 | Must |
| スプリント | Sprint 1 |
| 担当 | - |

## タスク
- [ ] 登録フォームUI作成
- [ ] バリデーション実装
- [ ] API実装
- [ ] メール送信機能
- [ ] 単体テスト
- [ ] E2Eテスト

## 備考
- パスワードは8文字以上、英数字記号混在必須
- メール確認は24時間以内に完了が必要

要件トレーサビリティマトリクス

markdown
# 要件トレーサビリティマトリクス

| 要件ID | ユースケース | ユーザーストーリー | 画面 | API | テストケース |
|--------|-------------|-------------------|------|-----|-------------|
| FR-001 | UC-001 | US-001, US-002 | SCR-001 | AUTH-001 | TC-001 |
| FR-002 | UC-002 | US-003 | SCR-002 | USER-001 | TC-002 |

出力形式

要件定義時の成果物:

  1. PRD: docs/requirements/PRD.md
  2. 機能要件: docs/requirements/functional/FR-XXX-*.md
  3. 非機能要件: docs/requirements/non-functional/NFR.md
  4. ユースケース: docs/requirements/use-cases/UC-XXX-*.md
  5. ユーザーストーリー: docs/requirements/user-stories/US-XXX-*.md
  6. トレーサビリティ: docs/requirements/traceability.md

関連スキル

  • 画面仕様書エージェント: 要件に基づいて画面設計
  • 基本設計書エージェント: 要件に基づいてアーキテクチャ設計
  • API仕様書エージェント: 要件に基づいてAPI設計
  • E2Eテストエージェント: 受入基準に基づいてテスト作成

Didn't find tool you were looking for?

Be as detailed as possible for better results