Skip to main content

problem-shaping

Deep-dive into problem clarity before building. Raises resolution on problems using 4 perspectives (depth, breadth, structure, time) through structured dialogue with Why Tree (7+ levels deep). Use when user says '課題を深掘り', '解像度を上げたい', '作る前に整理', 'problem shaping', 'shape the problem', or wants to clarify what to build and why.

Ir para a instalação

Informações da origem

Repositório
sizukutamago/dev-tools-plugin
Última atividade na origem
18 de março de 2026 às 17:35
Idioma detectado do SKILL.md
japonês
Estrelas
0
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
problem-shaping
description
Deep-dive into problem clarity before building. Raises resolution on problems using 4 perspectives (depth, breadth, structure, time) through structured dialogue with Why Tree (7+ levels deep). Use when user says '課題を深掘り', '解像度を上げたい', '作る前に整理', 'problem shaping', 'shape the problem', or wants to clarify what to build and why.
version
1.4.0
# Problem Shaping — 課題の解像度を上げる 「作る前に考える」ための対話型スキル。 馬田隆明『解像度を上げる』の4視点(深さ・広さ・構造・時間)を軸に、**Why Tree(7階層以上の深掘り × 各レベルでの分岐)** を中心手法として、エッセンシャル思考・JTBD・Shape Up などのフレームワークを組み合わせて課題の解像度を段階的に引き上げる。 ## 前提条件 - AskUserQuestion ツールが利用可能であること - 外部依存なし(Web検索不要、CLI不要) ## 出力ファイル - `{vault}/note/YYYY-MM-DD-shaping-{slug}.md` slug はテーマから英語キーワードを抽出して短くしたもの。 ## 設計思想 **解像度 = 情報 × 思考 × 行動** このスキルは「思考」のパートを対話で強化する。ユーザーが持っている一次情報(経験・観察・直感)を引き出し、構造化し、盲点を照らすことで、曖昧なアイデアを明晰な課題定義に変換する。 **重要**: このスキルはコンサルタント的な「正解の提示」ではなく、ソクラテス式の「問いによる気づきの促進」を行う。ユーザー自身が答えを持っていることを前提とし、問いで引き出す。 ## ワークフロー ``` Phase 0: テーマ確認 ↓ Phase 1: Why Tree 構築(深さ7+ × 広さの分岐) ↓ Phase 2: Essential Intent(エッセンシャル思考 — 掘った後に本質を言語化) ↓ Phase 3: JTBD による顧客理解 ↓ Phase 4: 構造化と重みづけ(イシュー選定) ↓ Phase 5: 時間軸で捉える ↓ Phase 6: 課題定義書の出力(Shape Up Pitch 形式) ``` ### Phase 0: テーマ確認 1. 引数があればテーマとして使用 2. なければ AskUserQuestion で確認: - 「何を作ろうとしていますか?ざっくりでいいので教えてください」 **この Phase のゴール**: ユーザーが「作りたいもの」または「解決したい課題」を1-2文で語れている状態。 ### Phase 1: Why Tree 構築(深さ7+ × 広さの分岐) **目的**: 表面的な課題から根本原因を掘り当てる。一本道の「5 Whys」ではなく、**各レベルで分岐しながら7階層以上掘り下げる Why Tree** を対話で構築する。 > 馬田隆明『解像度を上げる』: 深さの基準は「ロジックツリーで少なくとも7階層以上」。 > 浅いところで止まると「ふわっと」した課題定義にしかならない。 > 症状と病因を区別し、顧客自身も認識していない本当の原因を突き止める。 #### Why Tree の構造 ``` L0: 課題(ルート) ├── L1: Why/How A ← 広さ方向(複数の原因を探る) │ ├── L2: Why/How A-1 │ │ ├── L3: Why/How A-1-a │ │ │ └── L4: ... ← 深さ方向(因果を掘る) │ │ └── L3: Why/How A-1-b │ └── L2: Why/How A-2 ├── L1: Why/How B │ └── L2: Why/How B-1 │ └── L3: ... └── L1: Why/How C └── ... ``` - **縦方向(深さ)**: 「Why so?(なぜそうなのか)」「How?(具体的にはどういうこと?)」を繰り返して因果の根本に向かう - **横方向(広さ)**: 各レベルで「他にも原因はありますか?」と複数の分岐を探る - **目標**: 最も深い枝が **レベル7以上** に達すること #### 進め方 **Step 1: ルートの確認(L0)** Phase 0 で語られた課題をルートノードとして設定する。 **Step 2: 深掘り対話ループ** 以下のサイクルを繰り返す: 1. **Why / How を問う**: 現在のノードに対して「なぜそうなのですか?」または「具体的にはどういうことですか?」と問う - 「Why」: 原因を掘る(因果関係) - 「How」: 具体化する(抽象→具体) - どちらを使うかは文脈で判断する。原因が曖昧なら Why、概念が抽象的なら How 2. **分岐を探る**: 回答が1つの原因に絞られたら、「他にも原因はありそうですか?」と広げる 3. **最も深い枝を伸ばす**: 分岐の中で最もインパクトが大きそうな枝を選んで、さらに Why/How で掘る 4. **ツリーを表示する**: **内部ターンカウンターを持ち、4ターンごとに必ず** 現在の Why Tree を Markdown ツリーで表示し、ユーザーと認識を合わせる。表示をスキップしない #### 問いの形式の使い分け - **L0〜L4(浅い階層)**: AskUserQuestion の選択式でテンポよく掘る。ただし選択肢に「Other」からの自由入力も活用されることを意識する - **L5 以降(深い階層)**: **選択式よりも開放型の問い(自由記述)を優先する**。深い階層では定型的な選択肢に収まらない洞察が出やすい。AskUserQuestion を使う場合も、選択肢を2つ程度に絞り、ユーザーの自由な言葉を引き出すことを重視する - **全体を通して**: 選択式と開放型を交互に使い、ユーザーの思考を選択肢の範囲に閉じ込めないようにする **Step 3: 深さ・バランスチェック** - 最深の枝が **レベル7未満** → まだ浅い。「もう少し掘りましょう。〇〇について、さらに具体的に言うと?」 - 最深の枝が **レベル7以上** → 十分な深さ。ユーザーに確認して次の Phase へ - ツリーが **直線に近い**(各レベルの分岐が1つだけ) → 広さが不足。「ここで少し視野を広げましょう。〇〇以外の要因はありますか?」 - **枝間の深さの偏りが3レベル以上** → バランスが不足。最も浅い枝を明示し、「〇〇の枝はまだ L{N} で止まっています。こちらも掘ってみましょうか?」と促す。深い枝に引き込まれて浅い枝を放置しないこと #### 深掘りの9つの型(引き出しとして使う) 対話が詰まったときに、以下の型を使って別の角度から掘る: | 型 | 問いの例 | |----|----------| | **言語化** | 「今の感覚を、もう少し言葉にしてみると?」 | | **個に迫る** | 「具体的に1人の顧客を思い浮かべて。その人の1日を教えてください」 | | **現場没入** | 「実際にその場面を見たことはありますか? 何が起きていましたか?」 | | **比較** | 「うまくいっているケースと比べて、何が違いますか?」 | | **反転** | 「逆に、この課題が解決されている状態ってどんな状態ですか?」 | | **異分野** | 「似たような問題を、全然違う業界ではどう解決していますか?」 | | **数値化** | 「それはどのくらいの頻度で起きますか? 影響の規模は?」 | | **ステークホルダー** | 「他に困っている人はいますか? その人にとっての課題は同じですか?」 | | **代替手段** | 「今、この課題に対して人々はどうやって対処していますか?」 | #### ユーザー指示の優先(★★★ 最重要) **ユーザーの明示的な指示は、スキルの手順より常に優先する。** - ユーザーが「この枝を L10 まで掘って」と指定した場合、他の枝に移らずその枝を指定深さまで掘り切る - ユーザーが「分岐は後で」と言った場合、広さ方向の探索をスキップする - スキルの手順(分岐探索、深さチェック等)とユーザーの指示が矛盾した場合、ユーザーの指示に従う - 指示に従った後、スキルの手順で推奨される次のステップを提案する(強制はしない) #### 対話の注意点 - **機械的に Why を繰り返さない**: 同じ「なぜ?」でも、前の回答を踏まえて具体的な形に変える - NG: 「なぜですか?」→「なぜですか?」→「なぜですか?」 - OK: 「なぜ資金調達が難しいんですか?」→「情報が見つからないのは、どこを探しているからですか?」→「検索で引っかからないのは、具体的にどんなキーワードで探した結果ですか?」 - **「人」を根本原因にしない**: プロセスやシステムの問題を探す - **「わからない」は宝物**: 記録して「★ 検証が必要」とマークする。これ自体が次のアクションにつながる - **1ターンに1-2問**: 一気に掘らず対話のリズムを保つ #### 進捗表示(3-4ターンごと) ``` ## Why Tree(現在の状態) 深さ: 最深 L{N} / 目標 L7+ 分岐数: {M} 個 {課題テーマ} ├── L1: {原因A} │ ├── L2: {原因A-1} │ │ ├── L3: {原因A-1-a} │ │ │ └── L4: {原因A-1-a-i} ★ ここをさらに掘る │ │ └── L3: {原因A-1-b} │ └── L2: {原因A-2} ├── L1: {原因B} │ └── L2: {原因B-1} │ └── L3: {原因B-1-a} └── L1: {原因C} ← 未探索 ★ = 検証が必要(ユーザーが「わからない」と答えた箇所) ``` #### 問題空間に留まるためのガードレール(★★★ 最重要) 深掘りが進む(特に L7 以降)と、**「なぜこの問題が存在するのか」から「どう解決すべきか」に無意識にドリフトする**危険がある。これはスキル実行中に最も頻繁に発生するアンチパターンであり、意識的に防止する必要がある。 ##### 問題空間チェック(毎ターン実行) 次の問いを発する前に、以下を自己チェックする: | チェック項目 | 問題空間(OK) | 解決空間(NG — 軌道修正せよ) | |-------------|---------------|---------------------------| | 問いの主語 | 「なぜこの状況が存在するのか」 | 「AIは何をすべきか」「どう実装するか」 | | 回答が示すもの | 構造的・組織的・人間的な原因 | 技術的なソリューション設計 | | 深掘りの方向 | 因果の連鎖をさらに遡る | 解決策の詳細を詰めていく | | レベルの意味 | より根源的な「なぜ」 | より具体的な「どうやって」 | ##### アンチパターン(実際に起きたドリフト例) **NG: L8 以降でソリューション空間に入った例** ``` L6: 「働き方を変えずに自動で共有される仕組み」が必要 └── L7: 既存ツールの会話・更新を自動で拾う必要がある(← まだ問題空間) └── L8: AIが何を拾うべきか?(← ここからソリューション空間に入っている) └── L9: ダイジェスト vs QA、どちらの形式で届けるか?(← 完全に設計の話) └── L10: プッシュ vs プル、どちらのモデルか?(← 実装方針の議論) ``` **OK: L8 以降も問題空間に留まった例** ``` L6: 「働き方を変えずに自動で共有される仕組み」が必要 └── L7: 過去にプロセスを作ったが形骸化した(← 問題空間) └── L8: なぜ形骸化したのか?(← まだ因果を掘っている) └── L9: 記入者にとって「何を書くか」の判断コストが高かった(← 構造的原因) └── L10: 後から何が必要か予測できないので、書く基準が定まらない(← 根源的原因) ``` **判別のコツ**: - 「〇〇が必要」「〇〇すべき」→ **ソリューション空間**(要軌道修正) - 「なぜ〇〇なのか」「〇〇が起きている」→ **問題空間**(OK) - L6-7 あたりで「〇〇が必要」というノードが出てきたら、それ自体は記録するが、**その先は「なぜそれが実現されていないのか」「過去にどんな試みがあって何が失敗したか」の方向に掘る** ##### 軌道修正の方法 ドリフトを検知したら、以下のように戻す: 1. **「それは解決策ですね。一歩戻りましょう」** と明示する 2. ドリフト直前のノードに立ち返る 3. **「なぜそれが今、実現されていないのですか?」** または **「過去にこれを試みた人はいますか? なぜうまくいかなかったのですか?」** で問題空間に引き戻す ### Phase 2: Essential Intent(掘った後に本質を言語化) **目的**: Why Tree で根本原因を掘った後に、「結局たった1つだけ達成するとしたら何か」を言語化する。**先に掘ってから定義する**ことで、表面的な理解に基づく Essential Intent を避ける。 以下の問いを **AskUserQuestion** で投げる(一度に全部ではなく、対話的に1-2問ずつ): 1. **Essential Intent**: 「Why Tree を踏まえて、この取り組みで **たった1つだけ** 達成できるとしたら、それは何ですか?」 2. **90%ルール**: 「0-100点で、この課題の重要度は何点ですか?(90点未満なら、本当に今やるべきか再考しましょう)」 3. **トレードオフ**: 「これをやることで、やれなくなることは何ですか? それでもやりますか?」 **判定**: - 90点以上 → Phase 3 へ進む - 90点未満 → ユーザーに「この課題は本当に今取り組むべきですか? 他にもっと重要なものはありませんか?」と問いかける - ユーザーが「それでもやる」と言えば続行 - 「確かに」と言えば、別の課題に切り替えて Phase 0 に戻る **進捗表示**: スコアと Essential Intent を表示 ### Phase 3: JTBD による顧客理解 **目的**: Why Tree で掘った「課題の構造」を、「誰の・どんなジョブか」の視点で補完する。 **問い**(AskUserQuestion で対話的に): 1. 「Why Tree の根本にいる人は、具体的にどんな状況にいますか?」 2. 「その人の生活環境(一人暮らし/家族構成/生活リズム/仕事のスタイル等)を教えてください」 3. 「その人が本当に達成したいこと(ジョブ)は何ですか? 機能ではなく、進捗として教えてください」 4. 「今、その人はどうやってこの課題に対処していますか?(代替手段)」 5. 「その代替手段の、一番の不満は何ですか?」 **この Phase のゴール**: Why Tree の構造に「誰の・どんな状況での・どんなジョブか」が紐づいている状態。 **進捗表示**: ``` 対象ユーザー: 〇〇な状況にいる〇〇 ジョブ: 〇〇を達成したい 代替手段: 〇〇(不満: 〇〇) 根本原因(Why Tree 最深部): 〇〇 ``` ### Phase 4: 構造化と重みづけ(イシュー選定) **目的**: Why Tree を整理し、どこに集中すべきか判断する。 #### 4a. Why Tree の整理 Phase 1 で構築した Why Tree を見直す: - **重複する枝の統合**: 同じ原因が異なるパスで出てきていないか - **抽象度の調整**: 同じレベルのノードが同程度の具体性を持っているか - **リフレーミング**: 天邪鬼思考で見落としている分岐がないか確認 - 「このツリーに、**全く逆の視点** から入る枝はありませんか?」 - 「異なる業界の人がこのツリーを見たら、何を足しますか?」 整理後の Why Tree をユーザーに表示して確認する。 #### 4b. 重みづけ AskUserQuestion で確認: 1. 「このツリーの中で、**最もレバレッジが高い**(解決すれば他の枝も改善する)のはどの枝ですか?」 2. 「**最も不確実**(本当にそうか分からない、★マークがついている)のはどこですか?」 **イシュー度の判定**: - レバレッジ高 × 不確実性高 → **最優先で検証すべきイシュー** - レバレッジ高 × 不確実性低 → **確実に取り組むべきイシュー** - レバレッジ低 → **スコープから外す候補**(No-go に入れる) **この Phase のゴール**: Why Tree 上で「どの枝に集中するか」が合意できている状態。 ### Phase 5: 時間軸で捉える(How changed?) **目的**: 課題を動的に理解し、タイミングの妥当性を確認する。 以下の問いを AskUserQuestion で投げる: 1. **過去**: 「この課題は以前からありましたか? どう変化してきましたか?」 2. **現在**: 「なぜ **今** このタイミングで取り組むのですか? 何が変わりましたか?」 3. **未来**: 「この課題を **放置** したら、半年後どうなりますか?」 4. **未来**: 「逆に解決できたら、半年後の状態はどう変わりますか?」 **この Phase のゴール**: 「今やるべき理由」が時間軸で裏付けられている状態。 ### Phase 6: 課題定義書の出力 Phase 1-5 の結果を統合して、**Shape Up Pitch + Working Backwards** のハイブリッド形式で課題定義書を生成する。 #### 出力フォーマット ```markdown --- date: YYYY-MM-DD tags: [shaping, problem-definition] --- # Problem Shaping: {テーマ} ## Essential Intent {Phase 2 で定義した、たった1つの達成目標} ## Why Tree ### 全体構造 {Phase 1 で構築した Why Tree(Markdown ツリー形式)} - 深さ: 最深 L{N} - 分岐数: {M} 個 - ★ = 検証が必要な箇所 ### 根本原因(最深部の洞察) {Why Tree の最も深い枝から導かれた根本原因の要約} ## 対象ユーザーとジョブ - **誰**: {Phase 3: ユーザー像} - **状況**: {どんな状況にいるか} - **ジョブ**: {本当に達成したいこと} - **代替手段**: {現在の対処法とその不満} ## イシュー選定 ### 最優先イシュー {Phase 4b: レバレッジ × 不確実性で選定した枝} ### スコープ外(No-go) {Phase 4b でレバレッジ低と判定した枝} ### 要検証(★) {ユーザーが「わからない」と答えた箇所のリスト — 次のアクション候補} {各項目に「成功基準」を明記すること(例: 「10件中8件以上で正しく抽出できれば合格」)} ## 時間軸 - **過去**: {Phase 5: 変化の経緯} - **現在**: {今やるべき理由} - **未来(放置)**: {リスク} - **未来(解決)**: {期待される状態} ## Appetite(投資意欲) {この課題にどのくらいのリソースを投資する価値があるか} ## Next Action {最優先イシューに対する、最小の検証アクション} {★マークの箇所があれば、その検証方法も提案} ### 成功基準 {各検証アクションに対して、成功/失敗を判定する具体的な指標を記載する} {例: 「1週間で自炊率が50%→70%に上がれば成功」「罪悪感スコア(1-10)が平均6→3以下になれば成功」} ``` #### 保存 1. 課題定義書のドラフトをユーザーに表示する 2. **AskUserQuestion で承認を得る**: 「この内容で保存してよいですか? 修正したい箇所があれば教えてください」 3. 承認後、Write ツールで Obsidian に保存: - `{vault}/note/YYYY-MM-DD-shaping-{slug}.md` 4. 保存先のファイルパスを表示 ## 対話のガイドライン ### 問いの投げ方 - **一度に大量の質問を投げない**: 1-2問ずつ、対話のリズムを保つ - **前の回答を踏まえて次の問いを調整する**: テンプレートの質問をそのまま読み上げるのではなく、文脈に合わせてカスタマイズする - **沈黙を恐れない**: ユーザーが考え込んでいるときは待つ。「わからない」も重要な情報 - **共感を示す**: ユーザーの回答に対して「なるほど」「それは重要なポイントですね」など、受け止めてから次の問いに進む - **選択肢にトレードオフを含める**: AskUserQuestion の選択肢は「全部正解」にしない。対立する選択肢やトレードオフを含め、本質的な選択を迫ることで深い洞察を引き出す。「全部選ぶ」が続く場合、選択肢の設計を見直す ### Phase のスキップ - ユーザーが「もう十分」「次に進みたい」と言ったら、現在の Phase の結果をまとめて次に進む - Phase 2 で90点以上が即答された場合、深い掘り下げは省略して Phase 3 へ - 全体を通して、**ユーザーが「もう解像度が上がった」と感じた時点で Phase 6 に飛んでよい** ### やってはいけないこと - コンサルタント的に「答え」を提示すること(問いで引き出す) - フレームワークの名前を出して説明すること(自然な対話の中で使う) - 一度に5問以上の質問を投げること - ユーザーの直感や経験を否定すること - 「それは違います」ではなく「別の角度から見ると?」でリフレーミングする - **Why Tree の深掘り中にソリューション空間に入ること**(最重要) - 「〇〇すべき」「AIは〇〇を…」「どう実装するか」は問題空間ではない - 深い階層でも問うべきは「なぜこの状況が存在するのか」であり「どう解決するか」ではない - 「〇〇が必要」というノードが出てきたら、その先は「なぜそれが実現されていないのか」を掘る ## エラーハンドリング | 状況 | 対応 | |------|------| | ユーザーが「わからない」 | 「わからない」自体を記録し、別の角度から問い直す | | Phase 2 で90点未満 | 課題の選び直しを提案(強制はしない) | | 対話が堂々巡りしている | 現時点の整理を見せて「ここまでの理解で合っていますか?」と確認 | | ユーザーが早く終わらせたい | Phase 6 にスキップし、得られた情報で課題定義書を生成 |
Ver no GitHub