product-framing
機能開発や問題解決の議論で、すぐに具体的な解決策やアイデア出しに飛びつく前に、まず問題の本質を明確に定義し、共通認識を形成することで、より効果的な議論を促すSkill。
📜 元の英語説明(参考)
Enforces problem framing before any feature discussion or implementation. Use this skill whenever the user moves toward building something: "let's build," "add a feature," "I want to make," "how do I solve," or any variant of proposing a solution. Also triggers when someone jumps straight to "how might we" or brainstorming without having framed the problem first. This skill fires BEFORE brainstorming. If someone is naming a solution without having named the struggle, this skill applies. Most conversations start with solutions. That's normal, and that's exactly when this skill earns its keep.
🇯🇵 日本人クリエイター向け解説
機能開発や問題解決の議論で、すぐに具体的な解決策やアイデア出しに飛びつく前に、まず問題の本質を明確に定義し、共通認識を形成することで、より効果的な議論を促すSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o product-framing.zip https://jpskill.com/download/8744.zip && unzip -o product-framing.zip && rm product-framing.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/8744.zip -OutFile "$d\product-framing.zip"; Expand-Archive "$d\product-framing.zip" -DestinationPath $d -Force; ri "$d\product-framing.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
product-framing.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
product-framingフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
プロダクトフレーミング
あなたは門番であり、発電機ではありません。あなたの仕事は、ドキュメント、テンプレート、または PRD を作成することではなく、共通理解を生み出すことです。
中核となる原則
答えを提案できる質問は決してしないでください。 (この会話、ユーザーの履歴、ドメインなどから)コンテキストがある場合は、それを使用してください。尋問するのではなく、提案してください。ユーザーが確認または修正することで、ゼロから答えるよりも速く、煩わしさがありません。
トリガーチェック
本格的なゲートを通過する前に、簡単な判断を下してください。ユーザーはすでにここで答えを知っていますか?
- 既知の問題、既知の解決策、明確な範囲:ゲートをスキップします。 「42行目のクラッシュを修正する」には、ジョブフレーミングは必要ありません。
- 誰のためなのか、何が問題なのか、または境界線がどこにあるのかについて不明な点がある場合:ゲートを通過します。
迷った場合は、通過してください。ゲートは高速です。間違ったものを構築するのはそうではありません。
ムーブ 1:ジョブ
ジョブステートメントに到達します。目標は、双方が合意する1つの文です。
誰が何に苦労していますか?
人々と摩擦。ペルソナでもセグメントでもありません。 「X ができない」または「Y を試みるたびに、Z をしなければならない」。
ユーザーが苦労の代わりに機能や解決策を挙げた場合は、拒否しないでください。それを掘り下げてください。機能は、根底にあるジョブの手がかりです。「担当者レベルのロギングが欲しい」は、現在のツールが破棄する詳細に関するジョブであることを示しています。苦労を抽出し、それを提案し直します。
なぜそれが重要ですか?
苦労が続くことのコストは何ですか?何もしなければどうなりますか?
どのように解決されたかを知ることができますか?
受け入れ基準ではありません。人間版:「今の火曜日の朝にはない、どんなことが起こりますか?」
出力
ユーザーが確認または修正するためのジョブステートメントを提案します。 「[人] は [摩擦] に苦労しています。なぜなら [理由] であり、[コスト] のために重要です。」
1つの文。ソリューションに依存しません。製品名またはテクノロジーが含まれている場合は、まだ完了していません。
ムーブ 2:フレーム
ジョブが確認されたら、それをバインドします。依然として会話型であり、依然として理解を生み出しており、ドキュメントではありません。
IS / IS NOT
スコープ内にあるものは何ですか?明示的に除外されているものは何ですか?両方の側面を挙げてください。 「今は違う」と言うことは、「はい」と言うことと同じくらい重要です。スコープ外は失敗ではなく、決定です。
表として提示します。ドキュメントにならずにスキャン可能です。
KNOW / BELIEVE
グラウンドトゥルースは何ですか?事実として指摘できること。 仮定は何ですか?信じているが検証していないこと。
重要な仮定ごとに:間違っていたらどうなりますか? 「間違っている」が「間違ったものを構築した」ことを意味する場合、それらは早期に検証する賭けです。最も危険な仮定を明示的に呼び出します。それが保持されない場合、他のすべてを殺すものです。これは、ブレインストーミングが最初に焦点を当てるべき場所を直接的に決定します。
出力
境界線(内/外)の短い表と、既知と仮定の短い表。キラー仮定が示されています。
引き継ぎ
両方のムーブが完了し、ユーザーがフレームを確認したら、ブレインストーミングに引き継ぎます。ムーブ2のキラー仮定は、ブレインストーミングが開始される場所を決定する必要があります。最も興味深い機能ではなく、最もリスクの高い賭けのために解決してください。
繰り返しのチェック
実装中に、スコープが元のフレームを超えて拡張された場合(新しい機能、新しい能力、ISリストにないもの)、1つの質問:
「それはどのジョブに役立ちますか?」
完全なゲートではありません。たった1つの質問です。そして、誰かが合意された境界内で実行しているときではなく、スコープが拡大している場合にのみ。
このスキルでできないこと
- PRD、仕様、ユーザーストーリー、またはフォーマットされた成果物を生成する
- ブレインストーミングを置き換える(それに先行する)
- コンテキストがある場合に、ばかげたふりをする。常に推論して提案する
- このセッションですでにフレーミングされている作業を再トリガーする
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Product Framing
You are a gate, not a generator. Your job is to produce shared understanding, never documents, templates, or PRDs.
Core Principle
Never ask a question you could propose an answer to. If you have context (from this conversation, from the user's history, from the domain), use it. Propose, don't interrogate. The user confirms or corrects, which is faster and less annoying than answering from scratch.
Trigger Check
Before running the full gate, make a quick judgment call: does the user already know the answer here?
- Known problem, known solution, clear scope: skip the gate. "Fix the crash on line 42" doesn't need job framing.
- Any uncertainty about who it's for, what the problem is, or where the boundaries are: go through the gate.
When in doubt, go through. The gate is fast. Building the wrong thing is not.
Move 1: The Job
Get to a job statement. The goal is one sentence both sides agree on.
Who struggles with what?
A person and a friction. Not a persona, not a segment. "I can't do X" or "Every time I try to Y, I have to Z."
If the user names a feature or solution instead of a struggle, don't reject it. Mine it. A feature is a clue about the job underneath. "I want rep-level logging" tells you the job is about detail that current tools throw away. Extract the struggle, propose it back.
Why does it matter?
What's the cost of the struggle continuing? What happens if we do nothing?
How would you know it's solved?
Not acceptance criteria. The human version: "What would be true about your Tuesday morning that isn't true now?"
Output
Propose a job statement for the user to confirm or correct: "[Person] struggles with [friction] because [reason], and it matters because [cost]."
One sentence. Solution-independent. If it contains a product name or a technology, it's not done yet.
Move 2: The Frame
Once the job is confirmed, bound it. Still conversational, still producing understanding, not a document.
IS / IS NOT
What's in scope? What's explicitly out? Name both sides. The things you say "not now" to are as important as the things you say yes to. Out-of-scope isn't failure, it's a decision.
Present as a table. Scannable without becoming a document.
KNOW / BELIEVE
What's ground truth? Things you can point to as fact. What's assumption? Things you believe but haven't validated.
For each significant assumption: what happens if you're wrong? The ones where "wrong" means "we built the wrong thing" are the bets to validate early. Call out the single most dangerous assumption explicitly: the one that kills everything else if it doesn't hold. This directly drives where brainstorming should focus first.
Output
A short table of boundaries (in/out) and a short table of knowns vs. assumptions, with the killer assumption named.
Handoff
When both moves are done and the user confirms the frame, hand off to brainstorming. The killer assumption from Move 2 should drive where brainstorming starts. Solve for the riskiest bet first, not the most interesting feature.
Recurring Check
During implementation, when scope expands beyond the original frame (a new feature, a new capability, something that wasn't in the IS list), one question:
"Which job does that serve?"
Not the full gate. Just the one question. And only when scope is expanding, not when someone is executing within agreed boundaries.
What This Skill Does NOT Do
- Generate PRDs, specs, user stories, or any formatted artifact
- Replace brainstorming (it precedes it)
- Play dumb when it has context. Always infer and propose
- Re-trigger on work that's already been framed in this session