Plan
Use this skill to stop execution-first behavior on meaningful work.
Default pattern: clarify → plan → approve → execute → close.
Treat /plan as a read-only planning stance until approval. Safe reads are allowed: reading files, listing files, searching, inspecting docs, checking status, and other non-destructive exploration. Do not edit files, delete data, push commits, deploy, or run destructive or irreversible commands until the user approves a plan or explicitly says to skip planning.
Prefer the core lenses first. Use parallel and living only when the work is clearly big enough to justify the extra structure.
When to stay out of the way
Do not force planning for:
- - trivial single-file edits
- simple factual questions
- obvious follow-up micro-actions
- work where the user explicitly says to skip planning
Command model
Use /plan as an auto-router. Pick the lens that matches the real problem.
Core lenses
| Command | Use for | Output |
|---|
| INLINECODE4 | Auto-pick the right lens | Short diagnosis + recommended plan |
| INLINECODE5 |
Vague or political requests | Scope, assumptions, open questions, success criteria |
|
/plan compare | Choosing between options | Option matrix, tradeoffs, recommendation |
|
/plan execute | Clear multi-step work | Ordered plan, risks, checkpoints, definition of done |
|
/plan recover | Interrupted or messy work | Current state, what is done, what is blocked, safest next step |
Advanced lenses
| Command | Use for | Output |
|---|
| INLINECODE9 | Work that should split across subagents or lanes | Solo lane, parallel lanes, merge points |
| INLINECODE10 |
Multi-session or strategic work | Persistent plan with decisions, next actions, open loops |
Auto-router heuristics
When the user just says /plan, pick the simplest fitting lens:
- - unclear request, fuzzy scope, or political ambiguity → INLINECODE12
- explicit choice between 2+ viable paths → INLINECODE13
- clear multi-step task with real execution work → INLINECODE14
- interrupted, messy, or half-finished work → INLINECODE15
- only escalate to
parallel if there are clearly separable lanes with owners and a merge point - only escalate to
living if the work is likely to span multiple sessions, days, or major checkpoints
If two lenses could fit, prefer the simpler one.
Depth modifiers
Use these as optional modifiers, not separate lenses:
- -
light — use for small work, usually <= 5 steps, no lasting state needed - INLINECODE19 — default for normal complex work
- INLINECODE20 — use for risky, irreversible, multi-day, or file-backed work
Format guidance
Light
Use for short tasks.
Keep output inline:
- - Goal
- Approach
- 2-5 steps
- Main risk
Standard
Use for most work.
Include:
- - Goal
- Recommended lens
- Approach
- Using
- Steps
- Risks
- Approval ask
Keep it short enough that the user can approve it quickly.
Deep
Use for large or risky work.
Include:
- - Goal
- Context / current state
- Option or approach rationale
- Detailed steps
- Checkpoints
- Risks and reversibility
- Definition of done
- Optional persistent file only after explicit approval if the plan should survive compaction
Examples:
- - INLINECODE21
- INLINECODE22
- INLINECODE23
- INLINECODE24
Use /plan off to disable auto-activation for the current session.
What to do in each lens
Clarify
Use when the request is still fuzzy.
Do this:
- - Define the actual problem
- Surface assumptions
- List open questions only if they materially affect the plan
- State success criteria and non-goals
Do not jump into solution design too early.
Compare
Use when multiple routes are plausible.
Do this:
- - Compare 2-4 realistic options
- Show tradeoffs: speed, risk, reversibility, cost, maintenance, politics
- Recommend one path and explain why
Prefer recommendation over fence-sitting.
Execute
Use for normal complex work.
Do this:
- - State goal and approach
- List concrete steps
- Flag irreversible or high-risk actions with INLINECODE26
- State dependencies, checkpoints, and definition of done
- Ask for approval before acting
Recover
Use when work already exists and the problem is continuity, not invention.
Do this:
- - Summarize current state
- Distinguish completed / partial / blocked / unknown
- Give the safest next step
- Say what should be discarded, preserved, or verified
Prefer stabilization over cleverness.
Parallel
Use only when splitting work clearly improves speed or clarity.
Do this:
- - Separate solo work from delegable work
- Define lanes with owners
- Define merge points and shared assumptions
- Keep parallelism minimal and purposeful
Do not parallelize tiny tasks just because you can.
Living
Use for long-running projects.
Do this:
- - Before creating a new living plan, first check whether one already exists for the project
- Do not write or update a living-plan file until the user explicitly approves persistent storage
- Once approved, persist the plan to file when useful
- If the project has no existing convention, default to a simple plan file under
docs/plans/ or another clearly named project folder - Keep these sections updated:
- current focus
- next actions
- decisions
- open loops
- risks
- - On session start, resume, or after compaction, reload the latest approved living plan before continuing
- If the living plan is stale enough to be doubtful, say so and refresh it before acting
Prefer living plans for strategy, negotiations, and multi-day builds.
Approval contract
Until approval:
- - Stay read-only
- Inspect files, docs, and current state
- Audit available tools and skills using local/project context first
- Do not create or update plan files
- Do not make external network lookups for toolbox audit unless the user explicitly approves that broader search
- Compare approaches
- Ask only the minimum blocking questions
After approval:
- - Execute only the approved scope
- Respect partial approvals like “do 1-3, hold on 4”
- If reality changes materially, stop and re-plan
Recognize these approval patterns:
- - INLINECODE28
- INLINECODE29
- INLINECODE30
- INLINECODE31
- INLINECODE32
- INLINECODE33
- similar clearly positive approval language such as "sounds good" or "yes, proceed"
Control semantics:
- -
/plan off = stop auto-activating this skill for the current session - INLINECODE35 before execution = abort the plan and do nothing
- INLINECODE36 during partial execution = stop immediately, report what has already been done, and do not assume rollback unless explicitly asked
Surprise policy
Pause and report when:
- - a required tool, file, or dependency was missing from the plan
- risk becomes meaningfully higher than planned
- destructive action becomes necessary unexpectedly
- new information changes the recommendation
Do not silently widen scope.
Toolbox audit
Before presenting an execute-oriented plan:
- - Check relevant installed skills first
- Prefer local/project-available capabilities over reinvention
- Only check external registries such as ClawHub when it materially changes the recommendation and the user has approved that broader search
- Do not send plan contents, secrets, or private project details to external services during toolbox audit
Show this briefly in a Using: section when it materially changes the approach.
Likely failure modes to avoid
- - Using
parallel for work that is still unclear - Using
living for tasks that are actually small and one-shot - Presenting too many lenses at once instead of recommending one
- Turning
/plan into ceremony on obvious work
Example patterns
Example: compare
User: “Should we launch in market A or market B first?”
Output:
- - Option A: Market A first
- Option B: Market B first
- Tradeoffs
- Recommendation
Example: execute
User: “Migrate auth from sessions to JWT.”
Output:
- - Goal
- Approach
- Using
- Ordered steps
- INLINECODE41 irreversible cleanup step
- Approval ask
Example: recover
User: “Everything is all over the place. Pick this back up.”
Output:
- - Current state
- What is done
- What is blocked
- Safest next step
Example: parallel
User: “Review the repo, draft migration steps, and prep the rollout note.”
Output:
- - Solo lane
- Parallel lanes with owners
- Merge point
- Approval ask
Example: living
User: “Track this negotiation through 14 April.”
Output:
- - Current focus
- Next actions
- Decisions
- Open loops
- Resume instruction
计划
使用此技能可在有意义的工作上停止“先执行”的行为。
默认模式:澄清 → 计划 → 批准 → 执行 → 关闭。
在获得批准前,将 /plan 视为只读计划姿态。允许安全读取:读取文件、列出文件、搜索、检查文档、查看状态以及其他非破坏性探索。在用户批准计划或明确表示跳过计划之前,不得编辑文件、删除数据、推送提交、部署或运行破坏性/不可逆的命令。
优先使用核心视角。仅当工作规模明显足够大,需要额外结构支撑时,才使用 parallel 和 living。
何时避免介入
不要对以下情况强制进行计划:
- - 琐碎的单文件编辑
- 简单的事实性问题
- 显而易见的后续微操作
- 用户明确表示跳过计划的工作
命令模型
使用 /plan 作为自动路由器。选择与实际问题匹配的视角。
核心视角
| 命令 | 用途 | 输出 |
|---|
| /plan | 自动选择正确视角 | 简短诊断 + 推荐计划 |
| /plan clarify |
模糊或政治性请求 | 范围、假设、未决问题、成功标准 |
| /plan compare | 在选项间做选择 | 选项矩阵、权衡、推荐 |
| /plan execute | 清晰的多步骤工作 | 有序计划、风险、检查点、完成定义 |
| /plan recover | 中断或混乱的工作 | 当前状态、已完成内容、受阻内容、最安全的下一步 |
高级视角
| 命令 | 用途 | 输出 |
|---|
| /plan parallel | 需要拆分为子代理或并行轨道的工作 | 单轨、并行轨道、合并点 |
| /plan living |
多会话或战略性工作 | 包含决策、下一步行动、未闭环项的持久计划 |
自动路由启发式规则
当用户仅输入 /plan 时,选择最合适的简单视角:
- - 请求不清晰、范围模糊或存在政治歧义 → clarify
- 在 2 个以上可行路径间做明确选择 → compare
- 有明确多步骤且需实际执行的任务 → execute
- 中断、混乱或半完成的工作 → recover
- 仅当存在清晰可分离的轨道(有负责人和合并点)时才升级为 parallel
- 仅当工作可能跨越多个会话、数天或主要检查点时,才升级为 living
如果两个视角都适用,优先选择更简单的那个。
深度修饰符
将这些作为可选修饰符使用,而非独立视角:
- - light — 用于小型工作,通常 ≤ 5 步,无需持久状态
- standard — 常规复杂工作的默认选项
- deep — 用于高风险、不可逆、多日或需文件支持的工作
格式指南
Light
用于简短任务。
保持输出内联:
Standard
用于大多数工作。
包含:
保持足够简短,以便用户快速批准。
Deep
用于大型或高风险工作。
包含:
- - 目标
- 上下文/当前状态
- 选项或方法依据
- 详细步骤
- 检查点
- 风险与可逆性
- 完成定义
- 仅在计划需要跨会话持久化时,经明确批准后创建可选的持久文件
示例:
- - /plan compare
- /plan recover light
- /plan living deep
- /plan off
使用 /plan off 在当前会话中禁用自动激活。
每个视角应执行的操作
Clarify
当请求仍模糊时使用。
执行以下操作:
- - 定义实际问题
- 揭示假设
- 仅列出对计划有实质性影响的未决问题
- 说明成功标准和非目标
不要过早跳入方案设计。
Compare
当存在多个可行路径时使用。
执行以下操作:
- - 比较 2-4 个现实选项
- 展示权衡:速度、风险、可逆性、成本、维护、政治因素
- 推荐一条路径并解释原因
优先推荐,而非模棱两可。
Execute
用于常规复杂工作。
执行以下操作:
- - 说明目标和方法
- 列出具体步骤
- 用 ⚠️ 标记不可逆或高风险操作
- 说明依赖关系、检查点和完成定义
- 在执行前请求批准
Recover
当工作已存在,问题在于连续性而非创新时使用。
执行以下操作:
- - 总结当前状态
- 区分已完成/部分完成/受阻/未知
- 给出最安全的下一步
- 说明应丢弃、保留或验证的内容
优先稳定而非取巧。
Parallel
仅当拆分工作能明显提升速度或清晰度时使用。
执行以下操作:
- - 将独立工作与可委派工作分开
- 定义带有负责人的轨道
- 定义合并点和共享假设
- 保持并行最小化且有目的性
不要因为可以并行化就对微小任务进行并行处理。
Living
用于长期运行的项目。
执行以下操作:
- - 在创建新的持久计划前,先检查该项目是否已有现有计划
- 在用户明确批准持久存储前,不要写入或更新持久计划文件
- 一旦获批,在有用时将计划持久化到文件
- 如果项目没有现有约定,默认在 docs/plans/ 或其他明确命名的项目文件夹下创建简单计划文件
- 保持以下部分更新:
- 当前焦点
- 下一步行动
- 决策
- 未闭环项
- 风险
- - 在会话开始、恢复或压缩后,先重新加载最新批准的持久计划,再继续
- 如果持久计划已过时到可疑程度,请说明情况并在执行前刷新
优先使用持久计划处理战略、谈判和多日构建。
批准契约
在获得批准前:
- - 保持只读状态
- 检查文件、文档和当前状态
- 优先使用本地/项目上下文审计可用工具和技能
- 除非用户明确批准更广泛的搜索,否则不要为工具审计进行外部网络查询
- 不要创建或更新计划文件
- 比较不同方法
- 仅提出最少的关键问题
获得批准后:
- - 仅执行已批准的范围
- 尊重部分批准,例如“执行 1-3 步,第 4 步暂停”
- 如果实际情况发生重大变化,停止并重新计划
识别以下批准模式:
- - go
- do it
- do steps 1-3
- hold on 4
- skip plan
- cancel
- 类似明确肯定的批准语言,如“听起来不错”或“是的,继续”
控制语义:
- - /plan off = 在当前会话中停止自动激活此技能
- 执行前 cancel = 中止计划,不执行任何操作
- 部分执行期间 cancel = 立即停止,报告已完成内容,除非明确要求,否则不假设回滚
意外处理策略
在以下情况下暂停并报告:
- - 计划中缺少所需的工具、文件或依赖项
- 风险显著高于计划
- 意外需要执行破坏性操作
- 新信息改变了推荐方案
不要悄无声息地扩大范围。
工具审计
在提出面向执行的计划之前:
- - 首先检查已安装的相关技能
- 优先使用本地/项目可用能力,而非重新发明轮子
- 仅当外部注册表(如 ClawHub)能实质性改变推荐方案且用户已批准更广泛搜索时,才进行检查
- 在工具审计期间,不要将计划内容、机密或私有项目详情发送到外部服务
当工具审计对方法有实质性影响时,在 使用工具: 部分简要展示。
应避免的常见失败模式
- - 对仍不明确的工作使用 parallel
- 对实际上很小且一次性完成的任务使用 living
- 一次性展示过多视角,而非推荐一个
- 在显而易见的工作上把 /plan 变成形式主义
示例模式
示例:compare
用户:“我们应该先在市场 A 还是市场 B 推出?”
输出:
- - 选项 A:先进入市场 A
- 选项 B:先进入市场 B
- 权衡
- 推荐
示例:execute
用户:“将认证从会话迁移到 JWT。”
输出:
- - 目标
- 方法
- 使用工具
- 有序步骤
- ⚠️ 不可逆清理步骤
- 批准请求
示例:recover
用户:“一切都乱成一团。从这里重新开始。”
输出:
示例:parallel
用户:“审查仓库、起草迁移步骤、准备发布说明。”
输出:
示例:living