jpskill.com
🛠️ 開発・MCP コミュニティ

spec-explore

プロジェクト仕様書における未解決の決定事項について、選択肢やトレードオフ、前提、不明点を洗い出し、時期尚早な決定を避けて仕様を深掘りし、洗練するSkill。

📜 元の英語説明(参考)

Explore a single unresolved decision in an existing project spec by surfacing options, tradeoffs, assumptions, and unknowns without forcing a premature choice. Use as the second step in the spec-driven workflow to deepen and refine the spec one decision at a time.

🇯🇵 日本人クリエイター向け解説

一言でいうと

プロジェクト仕様書における未解決の決定事項について、選択肢やトレードオフ、前提、不明点を洗い出し、時期尚早な決定を避けて仕様を深掘りし、洗練するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o spec-explore.zip https://jpskill.com/download/9643.zip && unzip -o spec-explore.zip && rm spec-explore.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9643.zip -OutFile "$d\spec-explore.zip"; Expand-Archive "$d\spec-explore.zip" -DestinationPath $d -Force; ri "$d\spec-explore.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して spec-explore.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → spec-explore フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] spec-explore

Spec Explore

このスキルは、仕様駆動型ワークフローの探索フェーズで使用します。

指示

既存のプロジェクト仕様における単一の決定を探索します。

ユーザーは、IDまたはトピック、および仕様ファイルによって決定を参照します。最初に完全な仕様ファイルを読みます。解決済みの決定は、追加の制約として扱います。

探索

これは深い探索であり、強制的な選択ではありません。決定空間を徹底的に調査します。オプションを表面化し、トレードオフを検討し、前提に異議を唱え、未知のものを調査します。会話が導くところならどこへでも従ってください。

決定が最終的な形になるまでには、複数回のセッションが必要になる場合があります。ユーザーを、あなたが黙って決定を下す相手としてではなく、探索における積極的な協力者として扱ってください。決定がまだ未解決である間は、仕様を暗黙的な推奨ログに変えないでください。

オープンな場で探索を進めてください。現在のオプション空間をユーザーに提示し、重要なトレードオフを具体的な言葉で説明し、まだ不明な点を特定し、それを使用して議論を進めます。インタラクションを、隠れた分析の後に推奨を行うことだけに還元したり、決定の構造化を支援せずにユーザーに質問だけをするインタビューに還元したりしないでください。

役立つ場合は、検討中の主なオプションを要約し、それぞれのオプションが何をもたらし、どのようなコストがかかるかを説明し、それらを分離する前提または未解決の質問を指摘し、探索を絞り込んだり深めたりするのに役立つ的を絞ったフォローアップの質問をします。 決定が最終的な形になるまでには、複数回のセッションが必要になる場合があります。作業を進めるにつれて仕様を最新の状態に保ちます。以下の「仕様の更新」を参照してください。

決定精査プロトコル

探索中に表面化するオプションを評価するためのベースラインとしてこれを使用します。

1. 決定を正当化する

退屈なところから始めて、追加のレイヤー、サービス、または抽象化はすべて、潜在的な利点だけでなく、厳しい正当化が必要なコストとして扱います。

目標は、エンドツーエンドで機能する可能な限り薄いバージョンです。「業界標準」および「この種のプロジェクトでは典型的」は正当化ではなく、述べられた目標にすぎません。

「必要になった場合にこれを後で追加するコストは何ですか?」と尋ねます。次に、両方向からストレステストを行います。

  • 「これを含めて、不要になった場合、どのようなコストがかかりますか?」 (例:複雑さ、時間、結合、メンテナンスの負担)
  • 「これをスキップして、必要になった場合、リカバリはどのように見えますか?」 (例:午前2時のホットフィックス?些細なフォローアップのPR?苦痛なデータ移行?)

スキップした場合のリカバリが不均衡に苦痛な場合は、今すぐ含めます。それ以外の場合は、延期します。迷った場合は、より少なくしてください。

2. 単純さの挑戦

「より少ない可動部品、より少ない抽象化、または既存のものを活用して、同じ結果を達成する方法はありますか?」と尋ねます。

  • 設定よりも規約を優先します。
  • カスタム実装よりもstdlib/frameworkの組み込みを優先します。
  • 3つの巧妙な構成よりも、単一のよく知られた依存関係を優先します。
  • それを行う5つのファイルよりも、それを行う1つのファイルを優先します。

パターンに手を伸ばしていることに気づいたら、「私は目の前の問題を解決しようとしているのか、それとも想像している問題を解決しようとしているのか?」と尋ねます。

3. 取られなかった道

より単純な代替案があった拒否されたオプションごとに、なぜより単純なオプションがうまくいかなかったのかを説明する文を1つ書きます。その文を書けない場合は、より単純なオプションを選択します。

基本ルール

  • 「これは後で必要になるかもしれない」は正当化ではありません。構築するように依頼されたものを解決してください。
  • 2つのオプションがほぼ同等の場合、新しい読者に説明する概念が少ない方を選択します。
  • 具体的なシナリオを挙げずに「これは柔軟性を追加する」と書いていることに気づいたら、それはにおいです。カットまたは延期します。
  • 可逆性が重要です。「最適」だがあなたを閉じ込めるものよりも、変更が安価な決定を優先します。

仕様の更新

探索が進むにつれて、ユーザーが何かを決定するたびに、仕様ファイルの決定セクションを更新します。選択された方向、除外されたオプション、発見された制約などです。次のセッションがこのセッションの続きから開始できるように、最新の状態に保ちます。

仕様の Future Ideas セクションは、ユーザーが最初の実装を超えて明示的に延期したいアイデアに使用します。そのセクションは、「今は違うが、これを忘れないで」という項目のためのものです。実装を安全に開始する前に回答する必要がある未解決の決定の代わりにはなりません。

セッションが「終了した」と推測して、投機的な要約を作成しないでください。仕様を更新するトリガーは、ユーザーが実際に作成または確認した探索の進捗状況であり、エージェントが会話がまとまっていると推測することではありません。

決定が確定するまでは、未解決の探索状態のみを記録します。議論されたオプション、検討されたトレードオフ、ユーザーが有効にしておきたい前提、仕様/コードベース/調査から検証された事実上の制約、未解決の質問、およびユーザーが明示的に行った決定または排除です。未解決の方向が選択されたことを暗示する表現は、ユーザーが明示的に承認した場合を除き、避けてください。

探索によって決定を解決するのに十分な証拠が得られたと思われる場合は、そのことをユーザーに明示的に伝え、今すぐ解決するか、探索を続けるかを尋ねます。その確認なしに決定を確定済みとしてマークしないでください。

相互依存する決定は正常です。将来または隣接する決定が後でそれを拡張、改良、または制約する可能性があるという理由だけで、現在の決定の解決を妨げないでください。まず、現在の決定が、他の決定の起こりうる結果全体で有効な安定したコントラクト、境界、デフォルト、または不変条件を定義できるかどうかを尋ねます。はいの場合は、現在の決定を今すぐ解決し、依存関係を明示的に記録します。別の決定を、オプションの詳細または後続の拡張ポイントを追加するのではなく、ここで解決されるコアコントラクトを大きく変更する場合にのみ、ブロックとして扱います。

ユーザーが決定を確定したと見なす場合は、テーブルで✅をマークし、決定セクションが最終的な解決を明確に反映していることを確認します。

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Spec Explore

Use this skill for the exploration phase of the spec-driven workflow.

Instructions

You are exploring a single decision in an existing project spec.

The user will reference a decision, by ID or topic, and a spec file. Read the full spec file first. Treat resolved decisions as additional constraints.

Exploration

This is a deep exploration, not a forced choice. Investigate the decision space thoroughly: surface options, examine tradeoffs, challenge assumptions, research unknowns. Follow wherever the conversation leads.

A decision may take multiple sessions to reach its final form. Treat the user as an active collaborator in the exploration, not as someone you silently decide for. Do not turn the spec into an implicit recommendation log while the decision is still open.

Drive the exploration in the open. Present the current option space to the user, explain the important tradeoffs in concrete terms, identify what is still unknown, and use that to move the discussion forward. Do not reduce the interaction to a hidden analysis followed by a recommendation, and do not reduce it to an interview that only asks the user questions without helping structure the decision.

When helpful, summarize the main options on the table, explain what each one buys and costs, point out which assumptions or open questions separate them, and ask targeted follow-up questions that help narrow or deepen the exploration. A decision may take multiple sessions to reach its final form. Keep the spec current as you go — see Updating the Spec below.

Decision Scrutiny Protocol

Use this as a baseline for evaluating any option that surfaces during exploration:

1. Justify the Decision

Start boring and treat every additional layer, service, or abstraction as a cost that needs a hard justification, not just a potential benefit.

The goal is the thinnest possible version that works end to end. "Industry standard" and "typical for this kind of project" are not justifications, only stated goals are.

Ask: "What is the cost of adding this later if it turns out we need it?" Then stress-test from both directions:

  • "If I include this and it turns out unnecessary, what did it cost me?" (e.g. complexity, time, coupling, maintenance burden)
  • "If I skip this and it turns out I needed it, what does recovery look like?" (e.g. hotfix at 2 AM? trivial follow-up PR? painful data migration?)

Include now if skipping is disproportionately painful to recover from. Otherwise, defer. When in doubt, do less.

2. Simplicity Challenge

Ask: "Is there a way to achieve the same outcome with fewer moving parts, fewer abstractions, or by leveraging what already exists?"

  • Prefer convention over configuration.
  • Prefer stdlib/framework builtins over custom implementations.
  • Prefer a single well-known dependency over a clever composition of three.
  • Prefer one file that does the thing over five files that organize the doing of it.

If you find yourself reaching for a pattern, ask: "Am I solving a problem I'm looking at, or a problem I'm imagining?"

3. Roads Not Taken

For each rejected option that had a simpler alternative, write one sentence explaining why the simpler option didn't cut it. If you can't write that sentence, take the simpler option.

Ground Rules

  • "We might need this later" is not a justification. Solve what you've been asked to build.
  • If two options are roughly equivalent, pick the one with fewer concepts to explain to a new reader.
  • If you catch yourself writing "this adds flexibility" without naming a concrete scenario, that's a smell. Cut or defer.
  • Reversibility matters: prefer decisions that are cheap to change over ones that are "optimal" but lock you in.

Updating the Spec

As the exploration progresses, update the decision section in the spec file whenever the user makes a call on something: a direction chosen, an option ruled out, a constraint discovered. Keep it current so the next session can pick up where this one left off.

Use the spec's Future Ideas section for ideas the user explicitly wants to defer beyond the initial implementation. That section is for "not now, but don't forget this" items. It is not a substitute for unresolved decisions that still need to be answered before implementation can start safely.

Do not infer that a session has "ended" and then write a speculative summary. The trigger for updating the spec is progress in the exploration that the user has actually made or confirmed, not the agent's guess that the conversation is wrapping up.

Before a decision is settled, record only unresolved exploration state: options discussed, tradeoffs examined, assumptions the user wants to keep in play, factual constraints verified from the spec/codebase/research, open questions, and decisions or eliminations the user explicitly made. Avoid wording that implies an unresolved direction has been chosen unless the user explicitly endorsed it.

If you believe the exploration has produced enough evidence to resolve the decision, say so explicitly to the user and ask whether to resolve it now or continue exploring. Do not mark the decision settled without that confirmation.

Interdependent decisions are normal. Do not block resolution of the current decision merely because a future or adjacent decision may extend, refine, or constrain it later. First ask whether the current decision can define a stable contract, boundary, default, or invariant that remains valid across the plausible outcomes of the other decision. If yes, resolve the current decision now and record the dependency explicitly. Only treat another decision as blocking when different outcomes there would materially change the core contract being settled here, rather than adding optional detail or a later extension point.

When the user considers the decision settled, mark it ✅ in the table and make sure the decision section reflects the final resolution clearly enough for the next session to treat it as a constraint.

Once a decision is settled, keep that decision section focused on the resolved contract and constraints only. Do not leave "deferred follow-up" or other unresolved exploration notes inside the resolved decision section. Instead, move each remaining open thread to the unresolved decision that owns it, create a new unresolved decision if no owner exists yet, or move it to Future Ideas if the user explicitly decided it belongs after the first implementation.