本文へ移動
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(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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 のスキルをすべて見る

このスキルの問題を報告する