← Back to list

problem-definition
by skanehira
my dotfiles
⭐ 83🍴 4📅 Jan 21, 2026
SKILL.md
name: problem-definition description: JTBD(Jobs To Be Done)とペイン・ゲイン分析を用いて、ユーザーの問題を深掘りし定義する。新規プロダクト企画の初期段階、既存プロダクトの方向性見直し、ターゲットユーザーの理解が不十分な場合に使用。「問題を定義したい」「ユーザーのペインを整理」「JTBDで分析」「誰のどんな問題か明確にしたい」などのリクエストで起動。
問題定義
概要
対話を通じてユーザーの問題を深掘りし、以下を生成する:
- ジョブ定義(JTBD)
- ペイン・ゲイン分析
- ターゲットユーザー像
参照ドキュメント
- JTBDフレームワーク: references/jtbd-framework.md
- 読み込みタイミング: フェーズ2でジョブを特定する時
ワークフロー
フェーズ1: 対象領域の把握
どの領域の問題を定義するか理解する。
AskUserQuestion({
questions: [
{
question: "どのような領域/ドメインの問題を定義しますか?",
header: "領域",
options: [
{ label: "領域を入力", description: "対象となる業界やドメインを記述" }
],
multiSelect: false
},
{
question: "すでに想定しているターゲットユーザーはいますか?",
header: "ターゲット",
options: [
{ label: "いる", description: "具体的なユーザー像がある" },
{ label: "いない", description: "これから特定する" }
],
multiSelect: false
}
]
})
遷移条件: 領域が明確になったらフェーズ2へ
フェーズ2: ジョブの特定(JTBD)
ユーザーが「雇いたい」ジョブを特定する。
ジョブの定義: ユーザーが特定の状況で達成したい進歩や成果
質問パターン:
- 「〇〇をするとき、何を達成しようとしていますか?」
- 「その作業の本当の目的は何ですか?」
- 「それがうまくいったら、どんな状態になりますか?」
- 「なぜ今のやり方では不満なのですか?」
AskUserQuestion({
questions: [
{
question: "ユーザーはどんな状況で、何を達成しようとしていますか?\n\n例: 「スロークエリが発生したとき、本番に影響を与えずに改善案を検証したい」",
header: "ジョブ",
options: [
{ label: "ジョブを入力", description: "[状況]のとき、[達成したいこと]" }
],
multiSelect: false
}
]
})
ジョブの3層構造
- 機能的ジョブ: 実用的に達成したいこと
- 感情的ジョブ: どう感じたいか
- 社会的ジョブ: 他者からどう見られたいか
AskUserQuestion({
questions: [
{
question: "機能的に何を達成したいですか?(実用的な目的)",
header: "機能的",
options: [
{ label: "機能的ジョブを入力", description: "例: クエリの実行時間を短縮したい" }
],
multiSelect: false
},
{
question: "感情的にどうなりたいですか?(気持ち)",
header: "感情的",
options: [
{ label: "感情的ジョブを入力", description: "例: 自信を持って対応したい、不安を解消したい" }
],
multiSelect: false
}
]
})
遷移条件: ジョブが明確に言語化できたらフェーズ3へ
フェーズ3: ペイン(痛み)の深掘り
現状の課題や不満を洗い出す。
質問パターン:
- 「今のやり方で最も困っていることは?」
- 「それによってどんな悪影響がありますか?」
- 「最悪の場合、何が起こりますか?」
- 「どれくらいの頻度でその問題に直面しますか?」
AskUserQuestion({
questions: [
{
question: "現状のやり方で最も困っていること、不満なことは何ですか?(複数可)",
header: "ペイン",
options: [
{ label: "ペインを入力", description: "困っていること、不満、リスクを列挙" }
],
multiSelect: false
}
]
})
ペインの分類
| 種類 | 説明 | 例 |
|---|---|---|
| 機能的ペイン | うまく動かない、時間がかかる | クエリ最適化に時間がかかる |
| 金銭的ペイン | コストがかかる | 外部DBAの費用が高い |
| プロセスペイン | 手順が面倒、非効率 | 本番で試すしかない |
| サポートペイン | 助けが得られない | 専門家がいない |
各ペインについて深掘り:
- 深刻度(1-5)
- 頻度(毎日/週/月/たまに)
- 影響範囲
遷移条件: 主要なペインが3-5個特定できたらフェーズ4へ
フェーズ4: ゲイン(得たい価値)の特定
ユーザーが本当に得たい価値を明確にする。
質問パターン:
- 「理想的な状態はどんな状態ですか?」
- 「それが解決したら、何ができるようになりますか?」
- 「期待を超えるとしたら、どんな体験ですか?」
AskUserQuestion({
questions: [
{
question: "問題が解決したら、どんな価値が得られますか?理想の状態は?",
header: "ゲイン",
options: [
{ label: "ゲインを入力", description: "得られる価値、理想の状態を列挙" }
],
multiSelect: false
}
]
})
ゲインの分類
| 種類 | 説明 | 例 |
|---|---|---|
| 必須ゲイン | なければ解決にならない | 改善効果が数値でわかる |
| 期待ゲイン | あって当然と思われる | 使いやすいUI |
| 望外ゲイン | 期待を超える驚き | AIが自動で改善案を提案 |
遷移条件: ゲインが整理できたらフェーズ5へ
フェーズ5: ターゲットユーザーの具体化
ペルソナを明確にする。
AskUserQuestion({
questions: [
{
question: "このジョブを最も強く持っているのはどんな人ですか?",
header: "ペルソナ",
options: [
{ label: "ペルソナを入力", description: "役職、スキルレベル、組織規模など" }
],
multiSelect: false
},
{
question: "逆に、ターゲットではない人は?",
header: "非ターゲット",
options: [
{ label: "非ターゲットを入力", description: "対象外のユーザー像" }
],
multiSelect: false
}
]
})
遷移条件: ターゲットが明確になったらフェーズ6へ
フェーズ6: 検証と確認
整理した内容をユーザーと確認する。
## 確認事項
1. ジョブの定義は正確か
2. ペインの優先順位は妥当か
3. ゲインは本当に求めているものか
4. ターゲットユーザーは具体的か
遷移条件: ユーザーが承認したらフェーズ7へ
フェーズ7: ドキュメント生成
確認が完了したら以下を生成する。
# 問題定義書
## ジョブ定義(JTBD)
### ジョブステートメント
[状況]のとき、[ターゲットユーザー]は[達成したいこと]したい。
なぜなら[動機/理由]だから。
### ジョブの3層構造
- **機能的ジョブ**: ...
- **感情的ジョブ**: ...
- **社会的ジョブ**: ...
## ペイン分析
| ペイン | 種類 | 深刻度 | 頻度 |
|--------|------|--------|------|
| ... | 機能的 | 5 | 毎日 |
## ゲイン分析
| ゲイン | 種類 | 優先度 |
|--------|------|--------|
| ... | 必須 | 高 |
## ターゲットユーザー
### ペルソナ
- **役職**: ...
- **スキル**: ...
- **組織**: ...
- **課題**: ...
### 非ターゲット
- ...
出力ファイル
Write({
file_path: "docs/PROBLEM_DEFINITION.md",
content: problemDefinitionContent
})
フェーズ8: セルフレビュー(サブエージェント)
生成したドキュメントのレビューをサブエージェントに委譲する。
Task({
description: "問題定義レビュー",
subagent_type: "general-purpose",
prompt: `
以下の問題定義書をレビューし、問題があれば修正してください。
## レビュー対象ファイル
- docs/PROBLEM_DEFINITION.md
## レビュー観点
1. **ジョブの明確さ**: 誰が、どんな状況で、何を達成したいかが明確か
2. **ペインの具体性**: 抽象的すぎないか、深刻度・頻度が妥当か
3. **ゲインの妥当性**: 本当にユーザーが求めている価値か
4. **ターゲットの具体性**: ペルソナが具体的で、非ターゲットも明確か
5. **整合性**: ジョブ、ペイン、ゲイン、ターゲットが一貫しているか
## 出力形式
1. 発見した問題のリスト(問題がない場合は「問題なし」)
2. 各問題の修正内容
3. 修正後のファイル更新(Editツールで修正)
問題がなくなるまでレビューと修正を繰り返すこと。
`
})
質問のコツ
深掘りの質問
- 「なぜそれが問題なのですか?」(5回繰り返す)
- 「それが解決したら、次に何をしますか?」
- 「今はどうやって対処していますか?」
- 「それで満足していますか?なぜ?」
避けるべき質問
- 解決策を誘導する質問(「〇〇があったら嬉しいですか?」)
- Yes/Noで終わる質問ばかり
- 複数の概念を一度に聞く
完了条件
- ジョブが明確に定義されている
- ペインが3-5個特定され、優先順位がついている
- ゲインが整理されている
- ターゲットユーザーが具体的に定義されている
- PROBLEM_DEFINITION.mdが生成されている
- セルフレビューが完了し、問題が解消されている
関連スキル
- slc-ideation: 問題定義後、解決策のアイデアを磨く場合に使用
- competitor-analysis: 既存の解決策を調査する場合に使用
Score
Total Score
60/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon