AgentSkillsCN

feature-spec

功能规格书与 PRD 编写技能。可交互式生成按领域与关注点拆分的 Markdown 规格书集合,针对前端、后端及数据库表分别采用专属模板。“想撰写功能规格书”、“想制定页面规格”、“想制作 PRD”、“想汇总界面规格”、“想梳理用户故事”、“想明确功能需求”——当收到此类需求时即可调用此技能。

SKILL.md
--- frontmatter
name: feature-spec
description: 機能仕様書・PRD作成スキル。1機能をドメイン・関心ごとに分割したMarkdown仕様書群を対話的に生成する。フロントエンド・バックエンド・テーブルで専用テンプレートを使い分ける。「機能仕様書を書きたい」「ページの仕様を作りたい」「PRDを作りたい」「画面仕様をまとめたい」「ユーザーストーリーを整理したい」「機能の要件定義をしたい」などのリクエスト時に使用。

機能仕様書 / PRD ジェネレーター

⚠️ 最重要ルール: ドメインごとにファイルを分割する

機能仕様書は必ず複数ファイルに分割して出力すること。 機能の「ドメイン(関心領域)」ごとに {domain}-spec.md を1ファイルずつ作成する。 ドメインの種類に応じてフロントエンド / バックエンド / テーブル の専用テンプレートを使い分ける。

出力例(ECサイト 商品管理機能の場合):

code
docs/product-management/
├── index.md                # 概要・背景・スコープ・ユーザーストーリー・処理フロー・仕様書一覧
├── product-list-spec.md    # [FE] 商品一覧画面・検索・フィルタ・ソート・ページネーション
├── product-detail-spec.md  # [FE] 商品詳細画面・画像表示・レビュー表示
├── product-form-spec.md    # [FE] 商品登録/編集フォーム・バリデーション・画像アップロード
├── product-api-spec.md     # [BE] 商品CRUD API・検索API・画像アップロードAPI
├── image-api-spec.md       # [BE] 画像処理・リサイズ・S3連携
├── products-table-spec.md  # [DB] productsテーブル・categories・product_images
└── technical-spec.md       # [BE] 技術スタック・モジュール構成・エラーハンドリング・制限事項

禁止事項: 全てを1ファイルにまとめて出力してはならない。 必須事項: Write ツールを使い、ファイルごとに個別に書き出すこと。

テンプレート

ドメインの種類に応じて使い分ける:

テンプレートパス使い分け
エントリーポイントassets/templates/index.md機能ごとに1つ
フロントエンド仕様assets/templates/frontend-spec.md画面・UI・ユーザー操作・フォーム・状態管理
バックエンド仕様assets/templates/backend-spec.mdAPI・ビジネスロジック・認証・バッチ処理・外部連携
テーブル仕様assets/templates/table-spec.mdDBスキーマ・制約・インデックス・リレーション・マイグレーション
PRDassets/templates/prd.mdプロダクト要件定義書(単一ファイル)

ドメイン分割の考え方

  • 独立して読める単位にする(1ファイルで1つの関心が完結)
  • 1ファイルが長くなりすぎないようにする(目安: 100〜300行)
  • ドメインがフロント/バック/テーブルのどれに属するかでテンプレートを選ぶ
  • 横断的な技術仕様は technical-spec.md(バックエンドテンプレート)にまとめる
  • テンプレートの全セクションを使う必要はない。不要なセクションは削除必要なセクションは自由に追加してよい

ワークフロー

code
1. ドキュメント形式を判定(機能仕様書 or PRD)
   ↓
2. ヒアリング(バッチ質問)
   ↓
3. ドメインを特定し、ファイル構成を確定
   ↓
4. ファイル構成をユーザーに提示して確認
   ↓
5. Write ツールで index.md を書き出し
   ↓
6. Write ツールで各 {domain}-spec.md を1ファイルずつ書き出し
   ↓
7. 最終ディレクトリ構成を表示

Step 1: 形式の判定

  • 「機能仕様書」「画面仕様」「実装仕様」 → 機能仕様書
  • 「PRD」「プロダクト要件」「要件定義書」 → PRD
  • 曖昧な場合 → AskUserQuestion で確認

PRDの場合: ヒアリング → assets/templates/prd.md を元に生成 → Writeで書き出し。

Step 2: ヒアリング

references/hearing-patterns.md を読み、バッチ形式で質問する。

ルール:

  • 1回のバッチで1〜4問を AskUserQuestion で質問
  • ユーザーが既に回答済みの質問はスキップ
  • ユーザーの言語に合わせる

Step 3: ドメイン特定とファイル構成の確認

ヒアリング完了後、ファイルを書き出す前に:

  1. 機能のドメイン(関心領域)を特定する
  2. 各ドメインに {domain}-spec.md のファイル名と使用テンプレート(FE/BE/DB)を割り当てる
  3. ファイル構成をユーザーに提示して確認する

提示フォーマット:

code
以下のファイル構成で仕様書を生成します:

docs/{feature-name}/
├── index.md                # 概要・背景・スコープ・処理フロー
├── {domain-a}-spec.md      # [FE] {内容}
├── {domain-b}-spec.md      # [BE] {内容}
└── {domain-c}-table-spec.md # [DB] {内容}

この構成でよろしいですか?

Step 4: ファイル書き出し

各ファイルを Write ツールで個別に書き出す。

4.1 index.md を書き出す

  1. assets/templates/index.md を Read ツールで読む
  2. ヒアリング結果でテンプレートを埋める
  3. 「仕様書一覧」に全 {domain}-spec.md へのリンクを記載
  4. Write ツールで 書き出す

4.2 各 {domain}-spec.md を書き出す

ドメインごとに繰り返す:

  1. そのドメインに対応するテンプレート(frontend-spec / backend-spec / table-spec)を Read ツールで読む(テンプレート種別ごとに初回のみ)
  2. ヒアリング結果でテンプレートを埋める
  3. 不要なセクションは削除ドメイン固有のセクションは追加
  4. 関連する他の {domain}-spec.md への相対リンクを設定
  5. Write ツールで 書き出す
  6. 次のドメインへ

Step 5: 完了報告

全ファイル書き出し後、最終的なディレクトリ構成を表示する。

出力先

デフォルト出力先: docs/ カスタム出力: ユーザーが指定した場合はそのパスを使用。

PRD: docs/prd-{name}.md