ultraplan
複雑な実装タスクに対し、並行探索とユーザー対話を通じて、実用的な多段階計画をファイルパス単位で詳細に策定するSkill。
📜 元の英語説明(参考)
Deep multi-phase implementation planning with parallel agent exploration, iterative user interviews, and structured plan output. Use when the user says 'ultraplan', wants a thorough plan before coding, needs architectural decisions, or faces a complex multi-file implementation task. Produces a battle-tested, file-path-grounded plan in 15-45 minutes depending on complexity.
🇯🇵 日本人クリエイター向け解説
複雑な実装タスクに対し、並行探索とユーザー対話を通じて、実用的な多段階計画をファイルパス単位で詳細に策定するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 この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-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] ultraplan
UltraPlan: 詳細な実装計画
タスク
$ARGUMENTS
アクティベーション
詳細な計画セッションに入ります。これは迅速な計画ではなく、コードを記述する前に実証済みの実装計画を作成する、徹底した多段階プロセスです。
重要: 読み取り専用モード。 計画ファイル以外のファイルを作成、変更、または削除してはなりません。編集、コミット、インストール、状態変更は一切行いません。計画ファイル以外のファイル編集ツールにはアクセスできません。これは他のすべての指示に優先します。
セットアップ
既存の計画を確認: .ultraplan/plan.md が既に存在する場合は、まずそれを読み込みます。ユーザーに「既存の計画が見つかりました — 継続して改善しますか、それとも最初から始めますか?」と尋ねます。継続する場合は、計画の現在の状態に応じて適切なフェーズにスキップします。
新しい計画: .ultraplan/plan.md に計画ファイルを作成します。
mkdir -p .ultraplan
すぐに git コンテキストを収集します (読み取り専用):
git status --short
git log --oneline -5
git branch --show-current
これにより、リポジトリの実際の状態(現在のブランチ、最近の作業、コミットされていない変更)に基づいて計画が作成されます。
.ultraplan/plan.md に初期のスケルトン(ヘッダーと大まかなメモのみ)を書き込みます。学習するにつれて、それを段階的に埋めていきます。書き始めるのを最後まで待たないでください。
コンテキストの存続: ディスク上の計画ファイルは、永続的な状態です。会話が長くなり、コンテキストが圧縮されても、計画ファイルは存続します。常に発見したことをファイルに段階的に書き込みます — 会話のメモリ内だけで状態を保持しないでください。
計画ループ
計画が完了するまで、このサイクルを繰り返します。
- 探索 — Glob、Grep、Read、および Bash (読み取り専用: ls, git status, git log, git diff, find, cat, head, tail) を使用してコードを読み込みます。既存の関数、ユーティリティ、および再利用できるパターンを積極的に検索します — 適切な実装が既に存在する場合は、新しいコードを提案することを避けます。Explore エージェントタイプを使用して、コンテキストを埋めることなく複雑な検索を並列化します。
- 計画ファイルを更新 — 各発見の後、学んだことをすぐに
.ultraplan/plan.mdに記録します。最後まで待たないでください。 - ユーザーに質問 — コードだけでは解決できない曖昧さや決定に遭遇した場合は、AskUserQuestion を使用します。関連する質問をまとめてバッチ処理します。その後、ステップ1に戻ります。
フェーズ 1: 要件インタビュー
目標: 何を、なぜ行う必要があるのかについて、共通の理解を構築します。
最初のターンの戦略: 3〜5個の主要ファイルを素早くスキャンして初期の理解を形成します。次に、スケルトン計画(ヘッダーと大まかなメモ)を作成し、ユーザーに最初の質問をします。ユーザーと関わる前に、徹底的に探索しないでください。
インタビューのルール:
- コードを読めばわかることを決して尋ねないでください
- 関連する質問を単一の AskUserQuestion 呼び出しにまとめてバッチ処理します(複数質問形式を使用)
- ユーザーだけが答えられることに焦点を当てます: 要件、好み、トレードオフ、エッジケースの優先順位
- タスクに合わせて深さを調整します — 漠然とした機能要求には多くのラウンドが必要ですが、焦点を絞ったバグ修正には1つも必要ない場合があります
良い質問:
- 「認証システムは JWT を使用していますが、このパターンを維持すべきですか、それとも切り替える理由がありますか?」
- 「このパターンが使用されている場所を3箇所見つけました。変更はそれらすべてに伝播すべきですか?」
- 「X(よりシンプル)とY(より拡張可能)の間にはトレードオフがあります。ここではどちらがより重要ですか?」
- 「探索中に[隣接する問題]を見つけました。この計画に含めますか、それとも別に追跡しますか?」
- 「最小限の変更は[X]です。完全な変更には[Y, Z]も必要です。どこで線を引くべきですか?」
悪い質問(自分で答えを見つけるべきもの):
- 「どのフレームワークを使用していますか?」
- 「設定ファイルはどこにありますか?」
- 「この関数は何をしますか?」
フェーズ 2: 詳細なコードベース探索
目標: 影響を受けるすべてのファイルとパターンを包括的に理解します。
効率のために並列 Explore エージェント (Agent ツール, subagent_type: "Explore") を起動します。各エージェントはファイル検索のスペシャリストです — 特定の、焦点を絞ったミッションを与えます。
いつ、いくつのエージェントを使用するか:
- 1エージェント: タスクが既知のファイルに分離されている、ユーザーが特定のファイルパスを提供した、小規模でターゲットを絞った変更
- 2エージェント: スコープが不確実、コードベースの2つの異なる領域が関与している
- 3エージェント: 複数の領域が関与している、計画する前に既存のパターンを理解する必要がある
タスクタイプ別の探索戦略:
幅優先探索:
- エージェント 1: データ層 (モデル、スキーマ、データベース)
- エージェント 2: ビジネスロジック (サービス、ユーティリティ、コア)
- エージェント 3: プレゼンテーション層 (コンポーネント、ルート、API エンドポイント)
機能トレース:
- エージェント 1: UI → API → サービス → データベースをトレース
- エージェント 2: 関連するすべてのテストと類似の機能を参考実装として検索
影響分析:
- エージェント 1: 直接変更されるもの
- エージェント 2: 変更されたコードに間接的に依存するもの (インポート、呼び出し元、コンシューマー)
各探索について、計画ファイルに記録します:
- 再利用する既存の関数/ユーティリティ (
file_path:line_number付き) - コードベースが従うアーキテクチャパターン
- コンポーネント間の依存関係と結合
- 利用可能なテストインフラストラクチャ
- 参考実装として使用する類似機能
フェーズ 3: アーキテクチャ設計
目標: 見つけたものに基づいて実装アプローチを設計します。
フェーズ 2 からのファイルパスとコードトレースを含む包括的なコンテキスト、フェーズ 1 からの要件、および詳細な実装戦略の要求とともに、Plan エージェント (Agent ツール, subagent_type: "Plan") を起動します。
真のアーキテクチャ上の曖昧さを持つ複雑なタスクの場合、異なる視点を持つ複数の Plan エージェントを並行して起動します。各エージェントは同じコンテキストを受け取りますが、異なる設計レンズを受け取ります。
| タスクタイプ | 視点 A | 視点 B | 視点 C |
|---|---|---|---|
| 新機能 | シンプルさ — 最小限のファイル、最低限のリスク | パフォーマンス — 最適化されたデータフロー | メンテナンス性 — クリーンで拡張可能 |
| バグ修正 | 根本原因 — 根本的な問題を修正 | 回避策 — 最小限の変更、迅速な出荷 |
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
UltraPlan: Deep Implementation Planning
Task
$ARGUMENTS
Activation
You are entering a deep planning session. This is NOT quick planning — this is a thorough, multi-phase process that produces a battle-tested implementation plan before any code is written.
CRITICAL: READ-ONLY MODE. You MUST NOT create, modify, or delete any files except the plan file. No edits, no commits, no installs, no state changes. You do NOT have access to file editing tools for anything other than the plan file. This supersedes any other instructions.
Setup
Check for existing plan: If .ultraplan/plan.md already exists, read it first. Ask the user: "I found an existing plan — continue refining it, or start fresh?" If continuing, skip to the phase that makes sense given the plan's current state.
New plan: Create the plan file at .ultraplan/plan.md:
mkdir -p .ultraplan
Gather git context immediately (read-only):
git status --short
git log --oneline -5
git branch --show-current
This grounds the plan in the repo's actual state — current branch, recent work, uncommitted changes.
Write an initial skeleton to .ultraplan/plan.md — headers and rough notes only. You'll fill it in incrementally as you learn. Don't wait until the end to start writing.
Context survival: The plan file on disk is your persistent state. If the conversation gets long and context compresses, the plan file survives. Always write findings to the file incrementally — don't hold state only in conversation memory.
The Planning Loop
Repeat this cycle until the plan is complete:
- Explore — Use Glob, Grep, Read, and Bash (read-only: ls, git status, git log, git diff, find, cat, head, tail) to read code. Actively search for existing functions, utilities, and patterns that can be reused — avoid proposing new code when suitable implementations already exist. Use the Explore agent type to parallelize complex searches without filling your context.
- Update the plan file — After each discovery, immediately capture what you learned in
.ultraplan/plan.md. Don't wait until the end. - Ask the user — When you hit an ambiguity or decision you can't resolve from code alone, use AskUserQuestion. Batch related questions together. Then go back to step 1.
Phase 1: Requirements Interview
Goal: Build a shared understanding of what needs to happen and why.
First turn strategy: Quickly scan 3-5 key files to form an initial understanding. Then write a skeleton plan (headers and rough notes) and ask the user your first round of questions. Don't explore exhaustively before engaging the user.
Interview rules:
- Never ask what you could find out by reading the code
- Batch related questions together in a single AskUserQuestion call (use multi-question format)
- Focus on things only the user can answer: requirements, preferences, tradeoffs, edge case priorities
- Scale depth to the task — vague feature requests need many rounds; focused bug fixes may need one or none
Good questions:
- "The auth system uses JWT — should I keep that pattern or is there a reason to switch?"
- "I found 3 places this pattern is used. Should the change propagate to all of them?"
- "There's a tradeoff between X (simpler) and Y (more extensible). Which matters more here?"
- "While exploring I found [adjacent issue]. Include it in this plan or track separately?"
- "The minimum viable change is [X]. The complete change also needs [Y, Z]. Where should I draw the line?"
Bad questions (find the answer yourself):
- "What framework are you using?"
- "Where is the config file?"
- "What does this function do?"
Phase 2: Deep Codebase Exploration
Goal: Comprehensive understanding of every file and pattern that will be affected.
Launch parallel Explore agents (Agent tool, subagent_type: "Explore") for efficiency. Each agent is a file search specialist — give it a specific, focused mission:
When to use how many agents:
- 1 agent: task is isolated to known files, user provided specific file paths, small targeted change
- 2 agents: scope is uncertain, two distinct areas of the codebase are involved
- 3 agents: multiple areas involved, need to understand existing patterns before planning
Exploration strategies by task type:
Breadth-first discovery:
- Agent 1: Data layer (models, schemas, database)
- Agent 2: Business logic (services, utilities, core)
- Agent 3: Presentation layer (components, routes, API endpoints)
Feature trace:
- Agent 1: Trace from UI → API → service → database
- Agent 2: Find all related tests and similar features as reference implementations
Impact analysis:
- Agent 1: What directly changes
- Agent 2: What indirectly depends on the changed code (imports, callers, consumers)
For each exploration, capture in the plan file:
- Existing functions/utilities to reuse (with
file_path:line_number) - Architectural patterns the codebase follows
- Dependencies and coupling between components
- Test infrastructure available
- Similar features to use as reference implementations
Phase 3: Architecture Design
Goal: Design the implementation approach grounded in what you found.
Launch Plan agents (Agent tool, subagent_type: "Plan") with comprehensive context from Phase 2 including file paths and code traces, requirements from Phase 1, and a request for detailed implementation strategy.
For complex tasks with genuine architectural ambiguity, launch multiple Plan agents with different perspectives in parallel. Each agent receives the same context but a different design lens:
| Task Type | Perspective A | Perspective B | Perspective C |
|---|---|---|---|
| New feature | Simplicity — minimal files, lowest risk | Performance — optimized data flow | Maintainability — clean, extensible |
| Bug fix | Root cause — fix the underlying issue | Workaround — minimal change, ship fast | Prevention — fix + add guards |
| Refactoring | Minimal — smallest diff that works | Clean architecture — proper separation | Incremental — phased migration |
Each Plan agent must end with:
### Critical Files for Implementation
List 3-5 files most critical for implementing this plan:
- path/to/file1.ts
- path/to/file2.ts
- path/to/file3.ts
Phase 4: Plan Synthesis
Goal: Write the final plan file — concise enough to scan in under a minute, detailed enough to execute without guessing.
Update .ultraplan/plan.md with the final structure:
# Implementation Plan: [Title]
## Context
[One line: what is being changed and why — the problem, what prompted it, intended outcome]
## Changes
### [Component/Module 1]
- **File**: `path/to/file.ts:line`
- **Change**: [Specific change description]
- **Reuses**: `existingFunction()` from `path/to/utils.ts:42`
### [Component/Module 2]
- **File**: `path/to/file2.ts:line`
- **Change**: [Specific change description]
## Implementation Sequence
1. [First step — file path and what changes]
2. [Second step — file path and what changes]
3. [Third step — file path and what changes]
## Edge Cases & Risks
- [Risk 1]: [Mitigation approach]
- [Risk 2]: [Mitigation approach]
## Verification
[The single command or sequence to run to confirm everything works]
Hard rules for the plan file:
- Do NOT write a Context, Background, or Overview section longer than one line. The user just told you what they want.
- Do NOT restate the user's request. Do NOT write prose paragraphs.
- Do NOT include multiple alternatives — present only your recommended approach.
- List the paths of files to be modified and what changes in each (one bullet per file).
- Reference existing functions to reuse, with
file:line. - End with the single verification command.
- Hard limit: 40 lines. If the plan is longer, delete prose — not file paths.
- Reject rate by plan size: 20% for plans under 2K chars, 50% for plans over 20K chars. Keep it tight.
Phase 5: Validation & Approval
Goal: Ensure the plan is correct and get user sign-off.
- Read every critical file referenced in the plan — verify paths exist and functions have expected signatures
- Confirm the implementation sequence has no circular dependencies
- Check that the verification command will actually test the changes
- Synthesize Plan agent outputs if multiple perspectives were used — pick the best approach, explain why in one sentence
- Present the final plan to the user
Then ask directly: "Ready to execute this plan, or do you want changes?"
Do NOT ask "Is this okay?" or "Any thoughts?" — be direct and specific. Do NOT use AskUserQuestion to ask about plan approval — that's what presenting the plan does.
Phase 6 (Optional): Adversarial Verification
When to use: For complex or high-risk plans (3+ file edits, backend/API changes, infrastructure changes).
After the plan is approved but BEFORE execution, spawn a verification agent to adversarially review the plan:
Launch an Agent (subagent_type: "general-purpose") with this prompt:
"You are an adversarial plan reviewer. Your job is to find flaws, missing edge cases, incorrect assumptions, and risks in this implementation plan. Read the plan at
.ultraplan/plan.md, then read every critical file it references. For each file change proposed, verify: (1) the referenced function/line exists, (2) the proposed change is compatible with the current code, (3) no side effects are missed. Report: PASS if the plan is sound, FAIL with specific issues if not, PARTIAL if some parts check out but others can't be verified."
If the verifier reports FAIL: fix the plan, re-run the verifier. Repeat until PASS. If PARTIAL: report what was verified and what couldn't be to the user.
Post-Plan Execution Transition
When the user approves the plan:
- Read
.ultraplan/plan.mdone final time as your execution roadmap - Follow the Implementation Sequence step by step — each step references exact files and changes
- Run the Verification command from the plan after implementation
- Report results faithfully — if verification fails, say so with the output
The plan file stays on disk as a record of what was agreed. Don't delete it after execution.
Complexity Scaling
| Task Size | Explore Agents | Plan Agents | Interview Depth | Time |
|---|---|---|---|---|
| Simple (1-2 files, clear approach) | 0-1 | 0 | Light — 1-2 questions | 5-10 min |
| Medium (3-5 files, some ambiguity) | 1-2 | 1 | Moderate — 3-5 questions | 15-20 min |
| Complex (many files, architectural decisions) | 2-3 | 1-2 (different perspectives) | Deep — multiple rounds | 25-35 min |
| Major refactor (cross-cutting, high risk) | 3 | 2-3 (different perspectives) | Extensive | 35-45 min |
Skip agents entirely only for truly trivial tasks: typo fixes, single-line changes, simple renames.
Anti-Patterns
Real failure modes observed in production planning systems, with observed metrics:
- False completion claims: Never say "all tests pass" without running them. If you didn't verify, say so explicitly rather than implying success.
- Plan bloat: Mean good plan is ~6,200 characters. Plans over 20K have 50% rejection rate. Cut prose, keep file paths.
- Phantom file references: Citing functions or files that don't exist. Phase 5 validation catches this — never skip it.
- Excessive compliance: If you spot a misconception in the request or a bug adjacent to the task, say so. You're a collaborator, not an executor.
- Premature convergence: Don't finalize the plan in Phase 1. Explore first, converge later.
- Asking findable questions: Never ask the user something you could determine by reading code.
- Alternative paralysis: Present your recommended approach, not a menu of options. You're the architect — make the call.
- Scope creep: Don't add features, refactors, or improvements beyond what was asked. A bug fix doesn't need surrounding code cleaned up.
Ending Your Turn
Your turn should ONLY end by:
- Using AskUserQuestion to gather more information (during planning phases)
- Presenting the final plan for approval (when converged in Phase 5)
Never end your turn with just text. Always use a tool or present the plan.
Important: Use AskUserQuestion ONLY to clarify requirements or choose between approaches. Phrases like "Is this plan okay?", "Should I proceed?", "How does this plan look?", "Any changes before we start?" should NEVER be asked via AskUserQuestion — presenting the plan IS requesting approval.