claude/skills/requirements-analyzing-requirements/SKILL.md
ユーザー要件を分析し、システム設計ドキュメント(DESIGN.md)を生成します。ユーザー要件が曖昧または不明確な場合、システムアーキテクチャの設計が必要な場合、大規模な機能開発の設計仕様が必要な場合、技術的実現可能性の検証が必要な場合に使用します。不明点はAskUserQuestionツールで確認します。
npx skillsauth add skanehira/dotfiles requirements-analyzing-requirementsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
曖昧なユーザーリクエストを具体的で実行可能な設計仕様に変換する。要件を深く理解し、技術的実現可能性を検証し、アーキテクチャを設計し、開発者が従える詳細な設計ドキュメント(DESIGN.md)を生成する。
注: タスク分解とTODO.md生成は planning-tasks スキルで行う
rules/core/design.md(SOLID、高凝集度、低結合度)前のステップの出力ファイルを読み込む。
docs/USECASES.mddocs/FEASIBILITY.mddocs/GLOSSARY.mddocs/DOMAIN_MODEL.mdRead({ file_path: "docs/USECASES.md" })
Read({ file_path: "docs/FEASIBILITY.md" })
Read({ file_path: "docs/GLOSSARY.md" })
Read({ file_path: "docs/DOMAIN_MODEL.md" })
読み込んだ内容から以下を抽出:
遷移条件: ステップ1へ(要件理解を効率化)
ステップ1でAskUserQuestionを使って要件を確認。
遷移条件: ステップ1へ
ユーザーリクエストを複数の観点から分析する:
何を構築するか(What)
目的と価値(Why)
使用パターン(How)
タイムライン(When)
対象ユーザー(Who)
必須: 決して仮定を立てない
利用可能なツールを使用して既存の実装を調査する:
# 関連する実装を検索
Grep(pattern="relevant-keyword")
Read(file_path="related-file")
Glob(pattern="**/*.{js,ts,py}")
情報が不足している場合、AskUserQuestionツールを使用してユーザーに確認する:
AskUserQuestion({
questions: [
{
question: "この機能の認証方式はどれを使用しますか?",
header: "認証方式",
options: [
{
label: "JWT",
description: "JSON Web Tokenを使用したステートレス認証"
},
{
label: "Session",
description: "サーバーサイドセッション管理"
},
{
label: "OAuth 2.0",
description: "外部認証プロバイダーとの連携"
}
],
multiSelect: false
}
]
})
不明点が複数ある場合は、一度に複数の質問(最大4つ)を行うことができる 質問がなくなるまで繰り返して確認する
要件を明確に構造化する:
システム全体の構成と技術選定を行う:
システム構成
技術選定
データ設計
非機能要件の設計
エラー戦略
テスト戦略
最終的なゴールと検証手順を定義する。
以下のソースから検証に関する情報を収集する:
.github/workflows/、Makefile、package.jsonのscriptsなどから既存の検証手段を抽出検証手順について以下が不明な場合、AskUserQuestionで確認する:
設計ドキュメント(DESIGN.md)を生成する。
テンプレートは design-template.md を参照。
設計ドキュメントを書き出す:
// docsディレクトリにDESIGN.mdを出力
Write(
file_path="docs/DESIGN.md",
content=designContent
)
生成したDESIGN.mdをセルフレビューし、問題がなくなるまで修正を繰り返す。
1. DESIGN.mdを読み返す
2. 以下のチェックリストで問題を洗い出す
3. 問題があれば修正してファイルを更新
4. 問題がなくなるまで1-3を繰り返す(最大3回)
要件の完全性
設計の明確性
検証可能性
実装への橋渡し
問題を発見した場合:
3回のレビューで解決しない問題がある場合は、AskUserQuestionツールでユーザーに確認する。
設計完了前に確認:
tools
ローカルのコミット履歴と差分からDraft PRを作成する。ブランチ未作成・コミット未作成の状態でも、必要に応じてブランチ作成とコミットを行ってからPRを作成する。`.github/` にPRテンプレートがあれば内容を埋めて、なければ作業内容から本文を生成し、`AskUserQuestion`で作成可否を確認してから `gh pr create --draft` を実行する。「PRを出したい」「draft PRを作成」「プルリクを作って」「PR本文を生成」などのリクエストで起動。
tools
複数サブエージェントに異なる立場を与えて議論を反復し、相違が収束するまで議題を検証して結論を提示する。設計妥当性検証・実装方針比較・原因分析のセカンドオピニオン・アイデアの壁打ちに使用。「議論したい」「壁打ちしたい」「セカンドオピニオン」「複数視点で検証したい」などで起動。
tools
変更内容を分析し、Conventional Commit形式でコミットする (pushはユーザが手動)
development
React 19 + Vite+ (`vp`) + TypeScript + Tailwind CSS v4 + React Router v7 (HashRouter) でモバイル向け静的SPAデモサイトをTDDで構築し、Cloudflare Workers (Static Assets) へ自動デプロイするまでの標準ワークフローを提供する。テンプレートリポジトリ `skanehira/demo-site-template` を `gh repo create --template` で clone することで scaffold を省略する。`localStorage` でフロントエンドのみ完結する"フロントのみ完結デモ"に特化。デザインコンセプトの確立には `frontend-design` スキルを呼び出して連携する。起動トリガー:「デモサイトを作りたい」「モバイル向け静的デモ」「SPAを作ってCloudflareにデプロイ」「静的プロトタイプを公開」「localStorage でフロントだけ完結」。ユースケース:(1)クライアント提案用のUI/UXたたき台、(2)新機能のプロトタイプ、(3)モバイル向けランディング。ツールチェーンは Vite+ (`vp`) で統合(内部 PM は pnpm)。