Back to list
skanehira

problem-definition

by skanehira

my dotfiles

83🍴 4📅 Jan 21, 2026

SKILL.md


name: problem-definition description: JTBD(Jobs To Be Done)とペイン・ゲイン分析を用いて、ユーザーの問題を深掘りし定義する。新規プロダクト企画の初期段階、既存プロダクトの方向性見直し、ターゲットユーザーの理解が不十分な場合に使用。「問題を定義したい」「ユーザーのペインを整理」「JTBDで分析」「誰のどんな問題か明確にしたい」などのリクエストで起動。

問題定義

概要

対話を通じてユーザーの問題を深掘りし、以下を生成する:

  1. ジョブ定義(JTBD)
  2. ペイン・ゲイン分析
  3. ターゲットユーザー像

参照ドキュメント

ワークフロー

フェーズ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層構造

  1. 機能的ジョブ: 実用的に達成したいこと
  2. 感情的ジョブ: どう感じたいか
  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