跳到正文
cccskills
免费在 GitHub 公开

uplan

Use after design to turn a validated spec into a lean implementation plan. Outputs the `## Plan` section of the task file — files, line numbers, class/method names, invariants, test strategy, order. Ends with a scope-creep / simpler-way check.

中文简介正在准备中。当前显示原文说明。

btseytlin/ultrapack星标 46(GitHub 46 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md6.8 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Plan

Convert the approved design into an implementation contract for uexecute. Fill ## Plan in the existing docs/tasks/<slug>.md. Do not create a separate plan file.

Read the brevity rules and global principles before planning. Preserve required content and omit optional sections with no useful content. Deviations, deferrals, failures, and risks retain evidence and reasons.

Scope

Design decides the outcome and scope. Planning names the concrete changes needed to reach it. If a new finding requires splitting the task, changing the design, or expanding scope, stop and ask the user. Do not silently rewrite the goal.

Process

  1. Read context, design, invariants, principles, assumptions, and unknowns in the task file.
  2. Identify files, symbols, and interfaces to change. Include only defects within the approved scope in the plan. Report unrelated findings under ## Code smells without adding their fixes.
  3. Divide the work into coherent phases with at least one commit per phase.
  4. Write concrete file changes, interfaces, verification behavior, and dependencies. Follow the design's test-driven-development decision.
  5. Map compatibility risks to phases and mitigation steps. If a new break was not covered by the design, stop and ask the user. For greenfield work, state that this check does not apply.
  6. Review the plan for coverage, correctness, and simplicity using the checks below.
  7. Present the plan. In interactive mode, wait for approval before invoking uexecute. In hands-off mode, follow the contract below.

Required contents

Always include:

  • Approach and why it fits the design.
  • Each changed or new file as path:lineA-lineB, with affected symbols and concrete changes. For example, name Parser.tokenize() rather than just "modify parser".
  • New or changed signatures without implementation bodies.
  • Ordered phases and intended commits.
  • References to the design constraints each phase preserves or relies on.

Include when relevant:

  • Test strategy: behaviors to cover, with failing tests first when TDD: yes.
  • Dependencies, open questions, risks, and rollback.
  • Cross-phase interfaces when two or more phases share a signature, anchor, or other contract.
  • An interface graph for multi-phase plans. Omit it for a single phase.
  • A snippet only when prose cannot express the most critical detail in a phase. Do not write full implementations in the plan.

ID conventions

  • PH1, PH2, and so on identify phases. Each phase heading is ### PH<N> — <name>.
  • RK1, RK2, and so on identify risks, each defined in one sentence.
  • IF1, IF2, and so on identify cross-phase interfaces.
  • Reference existing design entities by their IDs rather than repeating definitions.

Format

## Plan

Approach: <strategy and reason>

### PH1 — <name>
- 1.1 `path/to/file.ext:lineA-lineB` (create|modify)
  - `Class.method(arg: Type) -> Ret` — <concrete change>
  - Respects: IV2, AS1
- Commit: <message>

### Test strategy
- <behavior and affected file or phase>

### Order & dependencies
- <what blocks what>

### Risks / rollback
- RK1 — <risk and mitigation>

### Interfaces
- IF1 — <signature and contract>
- IF2 [blocks] — <signature, contract, and why the consumer must wait>

### Interface graph
- PH1 -> IF1, IF2 @ src/producer.py
- PH2 IF1 -> @ src/consumer.py
- PH3 IF2 -> @ src/generated_consumer.py

Repeat phase entries as needed. The graph above illustrates dependencies for three phases, whose concrete change bullets must also be written. Omit irrelevant optional sections.

When to declare interfaces

An interface is a contract shared by phases: a function signature, class shape, file format, or skill section anchor. The consume arrow names an interface the phase uses. A phase that only reads an earlier phase's plan text does not consume its output.

For each graph line, declare consumed interfaces, produced interfaces, and owned paths after @. An empty consume side is a source. An empty produce side is a sink.

Only [blocks] interfaces create wave boundaries. Non-blocking consumers can be implemented against the declared signature while the producer runs. Do not hand-declare waves. The executor derives them and checks that concurrent phases own disjoint paths.

Blocking interfaces

Use [blocks] when a consumer needs actual producer output, such as a generated file or applied migration, or when a large or critical producer must be completed and verified first. State the reason in the interface contract.

Leave ordinary signature dependencies non-blocking when their declarations provide enough context. The executor's wiring check reconciles drift after the final wave.

Self-review

  1. Every invariant, principle, assumption, and unknown maps to a plan bullet or an explicit deferral to execution or verification.
  2. File paths and symbols are concrete and consistent. Remove placeholders such as "handle edge cases" or "similar to phase 1".
  3. Every phase follows the global principles. A deviation names the principle and the reason.
  4. The test strategy and compatibility mitigations match the design.
  5. If a graph is present, every phase declares owned paths, every consumed interface is defined, every defined interface has exactly one producer, and every blocking annotation has a reason. Paths within a derived wave must be disjoint.
  6. Keep the plan proportional to the work. Fix these issues inline without a review subagent.

Final check — scope creep, elegance, simpler way

  • Does each phase serve the approved design, without unrelated refactors, extra validation layers, or speculative abstractions?
  • Can phases or duplicate paths be combined without losing clear ownership?
  • Would a simpler approach meet the goal with less work? Present a material alternative to the user rather than changing scope silently.

Revise a bloated plan before handoff. For example, remove a generalization phase whose only justification is a second caller that does not exist.

Hands-off mode

Read handsoff. Present the completed plan, log uplan: plan auto-approved under ### Hands-off decisions, and invoke uexecute without waiting for routine approval. Keep all self-review and compatibility checks.

Record ambiguities requiring user input under ### Deferred (needs user input) and stop. Do not invent a choice to complete the plan.

Terminal state

The plan is written, self-reviewed, scope-checked, and approved explicitly or through hands-off mode before execution begins.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Run a bounded implement-attack-repair loop for a user-specified task. Use when work needs repeated independent criticism: perform the task, dispatch a fresh attacker, verify significant findings, repair them, and stop on a clean attack or the user's round limit.

中文简介正在准备中。当前显示原文说明。

btseytlin/ultrapack462026年10月15日 更新

e

免费

Explain a file, error, design, diff, or concept like a helpful engineering colleague: grounded in evidence, concise, and with useful follow-up threads. Use when the user asks for a clear explanation of the current work or codebase.

中文简介正在准备中。当前显示原文说明。

btseytlin/ultrapack462026年10月15日 更新

expand

免费

Turn one user criticism into a principle-level fix: find the violated principle, every similar occurrence, and fix the shared cause. Use only when the user explicitly invokes expand, $expand, /up:expand, or /skill:expand.

中文简介正在准备中。当前显示原文说明。

btseytlin/ultrapack462026年10月15日 更新

Use when a task needs an isolated checkout. Verify the worktree location, keep mutable environments and build outputs local, and run only authorized setup and checks.

中文简介正在准备中。当前显示原文说明。

btseytlin/ultrapack462026年10月15日 更新

handsoff

免费

Contract for hands-off mode — the ultrapack workflow variant that minimizes user prompts after Design, takes the safest reversible path, and logs every auto-choice for one end-of-task review. Referenced by the workflow entry point and child skills (udesign, uplan, uexecute, uverify, ureview). Read when the task file's **Mode:** header is `hands-off`.

中文简介正在准备中。当前显示原文说明。

btseytlin/ultrapack462026年10月15日 更新

Use when the user explicitly asks to launch and supervise a job. Require an authorized launch, monitoring, recovery, and teardown contract. Detect failures without inventing permission to restart or spend money.

中文简介正在准备中。当前显示原文说明。

btseytlin/ultrapack462026年10月15日 更新

查看 btseytlin 的全部技能

报告此技能的问题