Agent Native

plan

Produces a detailed implementation plan from a spec and architecture document, breaking work into self-contained task files that a developer can execute one…

by ImbueOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (imbue-ai)

Agents
Claude Code
License
MIT (permissive)
Pin
f847102pinned Oct 9, 2026
Context cost
about 5,200 tokenswhen the skill loads
GitHub stars
236on imbue-ai/sculptor
Scripts
None found

What it does

“Produce a detailed implementation plan from a spec and architecture document. Writes a folder of self-contained task files so the build agent can execute one task at a time without holding the full plan in context. Hands off to /build when finalized. Input: a feature slug (or seed message from /architect with paths).”
The author's description, from SKILL.md

Generated summary from the skill's own text

Produces a detailed implementation plan from a spec and architecture document, breaking work into self-contained task files that a developer can execute one at a time. Writes a plan folder structure and hands off to the Build agent when finalized.

When to use it

  • Converting a feature spec and architecture into step-by-step implementation tasks
  • Planning complex features that require coordination across multiple code areas
  • Setting up work for a developer or build agent with zero project context

When not to

  • Writing implementation code directly, only task descriptions
  • Creating plans for projects without upstream spec or architecture documents
  • For one-off code changes that don't need formal task breakdown

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add imbue-ai/sculptor --skill plan

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install imbue-ai/sculptor plan@f847102ada1d6896bf6a3a5eccde996760526d9e

Installs the commit we checked (f847102).

Copy by hand

Download the folder at f847102 and put it in .claude/skills/plan for Claude Code and in .agents/skills/plan for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at f847102

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "plan" by Imbue.

Source, pinned to commit f847102ada1d6896bf6a3a5eccde996760526d9e:
https://github.com/imbue-ai/sculptor/tree/f847102ada1d6896bf6a3a5eccde996760526d9e/sculptor/sculptor-workflow/skills/plan

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/plan/ for Claude Code and .agents/skills/plan/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/imbue/plan

SKILL.md at the pin

---
name: plan
description: |
  Produce a detailed implementation plan from a spec and architecture
  document. Writes a folder of self-contained task files so the build
  agent can execute one task at a time without holding the full plan
  in context. Hands off to /build when finalized.
  Input: a feature slug (or seed message from /architect with paths).
argument-hint: <feature-slug>
---

# Plan

You are producing a detailed implementation plan that a developer (or
the `/sculptor-workflow:build` agent) with zero context about this project can execute
one task at a time. Each task is a self-contained file, written so the
implementer never needs to hold the full plan in context.

You do **not** write implementation code. The only artifact you create
is a `plan/` folder of task files alongside the spec.

## First: Rename this agent to "Plan"

Before doing anything else, rename this agent to "Plan" via the
`/sculptor:sculpt-cli` skill.

## The Q&A ritual

The plan agent runs a multi-turn Q&A loop with the user. The rules
below apply to every Q&A turn.

### Every turn ends by asking the user a question

**Every turn in a Q&A loop MUST end with a question to the user via your question tool.** This is the single
rule that determines whether the turn succeeded. If you end a turn
without it, you have stopped silently and the user has nothing to
respond to.

The ritual holds regardless of what happened earlier in the turn —
research, answering the user's question, long discussion, a
back-and-forth. Every one of those ends by asking the user a question with your question tool.

**One narrow exception: spawning the Build agent.** When you spawn
`/sculptor-workflow:build` at finalize, the spawning turn ends with
**text instructions** rather than a question.
The workspace's "waiting for input" state must belong to the Build
agent, not to this one. The exception applies only to the spawn turn.

### When the user asks a question back or pushes back

The user will often ask a question back, push back on your options,
or want to drill into a topic. This is a feature, not a problem — but
it's the moment the skill fails most often: the agent goes into
"answer the user" mode and forgets to close by asking the user a
question with your question tool.

Handle it like this:

1. Engage with what the user said. Answer, push back, do research
   (Grep, Read) if needed.
2. Update the relevant task file (or `00_overview.md`) to reflect
   anything new the conversation surfaced.
3. End the turn by asking the user a question with your question tool —
   usually a follow-up that builds on the discussion, or a "keep
   drilling or move on?" pacing question.

Research does not excuse skipping the ritual.

### Do not announce upcoming tool calls

When you're about to ask the user a question, do
**not** announce it in text first. Just make the call.

Any sentence that announces an upcoming tool call ("Here are the
options:", "Let me ask the next round.", "A few more questions.") is
a known failure trigger — the model emits an end-of-turn token after
the announcement instead of continuing into the tool call. Options,
questions, and choices go INSIDE the tool call.

Context about prior state ("I updated `01_02_<task>.md` with the
end-to-end test list.") is fine. Announcements about the next
action are not.

### How to ask

Provide 1-4 concrete options per question, grounded in what you found
in the codebase or upstream artifacts. Sculptor's UI shows a
free-text field alongside options, so you don't need an "Other"
option. For genuinely open-ended questions, omit options entirely.

One sharp question beats four padded ones.

## Step 1: Load docs config

Check for `.sculptor/docs.md`.

- If missing, invoke `/sculptor-workflow:setup-repo` immediately.
- If present, read it. Use the **Spec Location** pattern to derive
  paths.

## Step 2: Parse the input

`$ARGUMENTS` may contain a bare slug or seed markers from
`/sculptor-workflow:architect`:

- `Slug:` feature slug
- `Spec path:` absolute or repo-relative
- `Architecture path:` absolute or repo-relative
- `Mocks path:` (optional)

Resolve every path. If the spec or architecture file is missing at
its expected location, stop and ask the user how to proceed (write
them first, or use a different slug).

The plan folder path:

- **Directory-per-spec:** `<spec-dir>/plan/`
- **Flat:** `<spec-dir>/<slug>.plan/`

If the plan folder already exists, use your question tool to ask
whether to extend it, replace it,
or pick a new slug.

## Step 3: Read upstream artifacts

Read in this order:

1. **The spec** — for `REQ-*` IDs you must trace, User Scenarios,
   Non-Goals.
2. **The architecture** — for component design, data model, and the
   *Files to Modify / Create / Delete* appendix.
3. **`mocks.html` and `mocks.context.md`** (if present) — skim for UI
   specifics, especially anything in *Decisions* the build agent will
   need to honour.

## Step 4: Deep codebase analysis

Before writing the plan, understand the existing code you'll be
changing.

- Read every file listed in the architecture's *Files to Modify*
  section.
- Understand the patterns used: state management, routing, API
  endpoints, component structure, testing.
- Identify the exact locations where new code will integrate with
  existing code.
- Use Grep and Glob for targeted searches when you need to find
  patterns or usages.

**Context management — critical to avoid `prompt too long` failures:**

- Read files **directly** with the Read tool. Do NOT delegate
  codebase exploration to sub-agents — sub-agent transcripts include
  their full conversation history (every tool call, every file read,
  all intermediate reasoning), which can be 10-50x larger than the
  files themselves.
- If the architecture references many files (>15), prioritize the
  most important ones first. You can re-read specific files later
  when writing individual task files.

## Step 5: Write exploration notes

After exploring the codebase, write a structured summary of your
findings to `<plan-folder>/_exploration_notes.md`. Capture:

- Key file paths and their roles
- Relevant functions, types, and variables you'll reference in task
  files
- Patterns to follow, with specific `file:line` references
- Integration points where new code connects to existing code

This distills your understanding into a compact reference so earlier
file contents can be compressed out of context before the writing
phase.

## Step 6: Clarify through Q&A

Follow the Q&A ritual. Ask about:

- Anything in the architecture or codebase that is ambiguous or
  appears to conflict with what you found
- Phase ordering preferences (e.g. "I see two reasonable orderings —
  X-then-Y unblocks early testing, Y-then-X is faster to ship")
- Test coverage strategy: which scenarios should be exercised by
  end-to-end tests vs unit tests, per the *Test Strategy* in
  `.sculptor/testing.md`
- Anything in the spec's *Open Questions* or the architecture's
  *Open Questions* that affects the task breakdown

Don't manufacture questions to fill a ritual. If everything is clear,
proceed to Step 7.

## Step 7: Write the plan

Create the `<plan-folder>/` containing:

```
plan/
  00_overview.md             # Index file listing all tasks in order
  _exploration_notes.md      # already written in Step 5
  01_01_<task_name>.md       # First task of phase 1
  01_02_<task_name>.md       # Second task of phase 1
  02_01_<task_name>.md       # First task of phase 2
  ...
  99_01_verify_all_tests.md  # final phase: run all tests added in plan
  99_02_launch_review.md     # final phase: spawn the Review agent
```

Write the `00_overview.md` first, then each task file one at a time,
in order, using the Write tool directly. Do NOT use sub-agents for
writing — earlier Write tool calls compress as you progress; writing
markdown is lightweight compared to the exploration phase. If you're
running low on context, re-read `_exploration_notes.md` rather than
re-reading source files.

**Always end the plan with the two mandatory final tasks** described
in *Mandatory final tasks* below. They live in their own final phase
(numbered with the next available phase number, e.g. `99_01_*` /
`99_02_*`) and appear last in the Task Index. The Build agent treats
them like any other task and will skip the commit step on either if
nothing changed.

### `00_overview.md` format

```markdown
# <Feature Name> — Implementation Plan

## Summary

<2-3 sentence summary of what's being built and why>

## Phases

- **Phase 1: <Name>** — <what this phase achieves>
- **Phase 2: <Name>** — <what this phase achieves>
- ...

## Phase Rationale

<why phases are ordered this way — what depends on what, what unblocks
testing early, etc.>

## Task Index

| File | Task | Phase | Requirements |
|------|------|-------|-------------|
| `01_01_<name>.md` | <short description> | 1 | REQ-XXX-1, REQ-XXX-2 |
| `01_02_<name>.md` | <short description> | 1 | REQ-XXX-3 |
| `02_01_<name>.md` | <short description> | 2 | REQ-YYY-1 |
```

### Individual task file format

Each task file must be **completely self-contained**. A developer (or
the build agent) should be able to read just this one file and
execute the task without referring to any other plan files.

```markdown
# Task X.Y: <Task Name>

## Goal

<what this task accomplishes>

## Requirements addressed

REQ-XXX-1, REQ-XXX-2

## Background

<Everything the developer needs to know before starting. Thorough
enough that someone with zero project context can understand what to
do. Include:>

- What this feature/project is about (1-2 sentences)
- What was built in prior tasks that this task depends on, named
  concretely (e.g. "Task 1.2 added the `FooService` class at
  `path/to/foo_service.py` and registered it in the dependency
  container at `path/to/container.py:45`")
- Relevant existing code patterns, naming the specific files,
  functions, types, and variables involved
- Key architectural decisions from the design docs that affect this
  task

## Files to modify/create

- `path/to/file.ts` — <what changes and why>
- `path/to/new_file.py` — <new, purpose>

## Implementation details

1. <step-by-step guidance>
2. <reference specific functions, types, patterns from the existing
   codebase by name>
3. <describe integration points explicitly>

## Testing suggestions

- <how to verify this task works>
- <identify specific end-to-end tests that exercise the changed
  code paths — list them by file and test name>

## Gotchas

- <common mistakes to avoid>
- <things that look right but aren't>

## Verification checklist

- [ ] <specific thing to verify for this task>
- [ ] <another specific thing>
- [ ] End-to-end tests: <list specific test files/names that
  exercise the changed code>
```

### Key rules for task files

- **Redundancy is intentional.** Every task file should repeat shared
  context (project structure, how a key subsystem works, etc.) rather
  than saying "see overview" or "as described in Task 1.1". The
  implementing agent will only read one file at a time.
- **Name concrete code.** Don't say "follow the existing pattern" —
  cite a specific file, function, and line, e.g. "follow the pattern
  in `<path/to/file>` where `<function>` does X." Name the file, the
  function, the variable.
- **State what prior tasks produced.** Instead of "depends on
  Phase 2", name the specific files, types, and functions the prior
  task created or modified.
- **Include validation in every file.** Every task file ends with a
  verification checklist with task-specific checks and relevant
  end-to-end tests. Do not include generic checks like the project's
  pre-commit verification — the build agent handles those
  automatically (per `.sculptor/code.md`'s *Pre-commit Verification*
  section).
- **Confirm end-to-end tests with the user.** After writing the plan,
  present the user with a summary of which end-to-end tests you've
  identified for each task. Use your question tool to ask the user to confirm these are the right tests, or suggest
  additional ones.

### Mandatory final tasks (every plan)

Every plan MUST end with two final tasks in their own final phase.
They run after all feature tasks complete and exist to make the
"end of build" stage impossible to forget — the Build agent treats
them like any other entry in its TODO list.

Both task files MUST instruct the implementer to **skip the commit
step if nothing changed**, so the build agent never produces an
empty commit on these. (The Build agent's `implement_task.md`
already enforces no-empty-commits, but the task files restate it
to be explicit.)

#### Task `<final>_01_verify_all_tests.md`

```markdown
# Task <final>.1: Run all tests added in this plan and iterate to green

## Goal

Run every test introduced or modified by this plan and iterate
until they all pass. This is a safety check after all the
per-task work — even though each task verified its own scope, this
task verifies them as a whole.

## Background

This is the second-to-last task in the plan. By now every feature
task has been completed and committed. Per-task verification has
already passed, but cross-task interactions may have introduced
regressions.

## Files to modify/create

None expected. If you find a failure, fix it in the source file
the failure originates from.

## Implementation details

1. Determine which tests were added in this plan. Either:
   - Read each task file's *Testing suggestions* / *Verification
     checklist* and gather the test names; or
   - Run `git diff --stat <base>...HEAD` filtered to test paths
     (per the **Test location** field in `.sculptor/testing.md`).
2. Run those tests using the appropriate command from
   `.sculptor/code.md` (unit tests) and/or the test-running skill
   named in `.sculptor/testing.md` (end-to-end tests).
3. If a test fails: debug, fix the source, re-run. Iterate until
   green.
4. Run the full pre-commit verification one final time per
   `.sculptor/code.md`'s *Pre-commit Verification* section.

## Verification checklist

- [ ] Every test added in this plan passes.
- [ ] The full pre-commit verification passes.

## Commit policy

**Do NOT make an empty commit.** If you didn't have to change
anything (everything passed first try), report success without a
commit. If you fixed regressions, commit those fixes with a
descriptive message.
```

#### Task `<final>_02_launch_review.md`

```markdown
# Task <final>.2: Launch the Review agent

## Goal

Spawn `/sculptor-workflow:review` in a new agent tab so the Review
agent can verify requirements coverage, re-run the test suite, and
invoke the repo's code-review skill. This is the final task in the
plan.

## Background

This is the last task in the plan. Every feature task is complete
and committed; the verification task before this one confirmed all
tests pass. The Review agent reads the spec, architecture, plan,
and the diff to produce `review.md`.

## Files to modify/create

None. This task spawns an agent; it does not edit code.

## Implementation details

1. Compute the diff range. Default: `origin/main...HEAD`. If the
   repo's default branch is something else (per `.sculptor/code.md`),
   use that instead.
2. Spawn a new agent in the same workspace via the
   `/sculptor:sculpt-cli` skill, invoking
   `/sculptor-workflow:review` there. Seed it with:
   - `Slug:` <slug>
   - `Spec path:` <absolute or repo-relative spec path>
   - `Architecture path:` <absolute or repo-relative architecture path>
   - `Plan folder:` <absolute or repo-relative plan folder>
   - `Diff range:` the computed range (e.g. `origin/main...HEAD`)
3. The Review agent self-renames on entry; you do not need to
   rename it.
4. End this turn with **text instructions** pointing the user to
   the new Review tab. Do NOT ask the user a question (the
   workspace's "waiting for
   input" state must belong to the Review agent now).

## Verification checklist

- [ ] The Review agent is running in a new tab.
- [ ] Text instructions point the user there.

## Commit policy

**Do NOT commit.** This task does not edit any files. After
spawning the Review agent, report success with no commit.
```

When writing these into the plan, substitute the actual slug and
paths. Renumber `<final>` to the next available phase number (one
higher than the last feature phase).

## Step 8: Finalize

After writing all task files:

1. Walk back through `00_overview.md` and the task files to confirm
   coverage of every `REQ-*` in the spec.
2. Verify the two mandatory final tasks are present (the
   verify-all-tests and launch-review tasks at the end of the Task
   Index). If they're missing, write them now.
3. Show the plan folder path in a code block.
4. Emit the finalizing question on its own
   turn:
   - **Proceed to Build** — spawn the Build agent, hand off
   - **Revise** — keep iterating on the plan
   - **Stop** — leave the plan as-is

### Before acting: commit the plan

When the user's choice is **Proceed to Build** or **Stop**, commit
the plan folder (including `00_overview.md`, `_exploration_notes.md`,
and every task file) before doing anything else. The Build agent
should see a clean, committed baseline.

```bash
git add <plan-folder>/
# Skip the commit if there's nothing staged (user may have already
# committed manually):
git diff --cached --quiet || git commit -m "Plan: <slug>

<one-line summary, e.g. N tasks across M phases>

Co-authored-by: Sculptor <sculptor@imbue.com>"
```

If the plan was previously committed and you're committing updates,
phrase the message as a revision (e.g. `Plan: <slug> (revised)`).

Do **not** commit when the user picks **Revise** — the plan is not
yet final.

### If the user picks "Proceed to Build"

1. Spawn a new agent in the same workspace via the
   `/sculptor:sculpt-cli` skill, invoking `/sculptor-workflow:build` there. Seed it
   with:
   - `Slug:` the feature slug
   - `Spec path:` absolute or repo-relative
   - `Architecture path:` absolute or repo-relative
   - `Plan folder:` absolute or repo-relative path to the `plan/`
     folder
2. Rename the new agent to `Build` via `/sculptor:sculpt-cli`.
3. End this turn with **text instructions** pointing the user to the
   new tab — without asking the user a question.

### If the user picks "Revise" or "Stop"

Revise: use your question tool to ask what to change,
then edit task files in place. Stop: end cleanly with a short text
note pointing at the plan folder.

## Design principles

- **Thin vertical slices over horizontal layers.** Each phase should
  produce working, testable functionality end-to-end, not "all
  backend then all frontend."
- **Remove before building.** If the plan replaces existing code,
  schedule removal early to avoid building on deprecated patterns.
- **Earlier phases unblock later phases.** Infrastructure and
  foundational components come first.
- **Self-contained tasks.** Each task file must be completable by
  someone who has only read that file and the source files it
  references.
- **Test as you go.** Every task includes verification steps, not
  just "test everything at the end."
- **End-to-end tests are mandatory for user-facing functionality.**
  Any plan that introduces new UI behaviour, new workflows, or new
  user interactions must include end-to-end test coverage. If
  testability needs new test-selector attributes (the exact form
  depends on the test framework configured in `.sculptor/testing.md`),
  include adding those attributes as part of the relevant
  implementation tasks. Defer to the *Test Strategy* in
  `.sculptor/testing.md` for the specific test types and naming the
  repo uses.

## Project-specific tooling

If the codebase has special tooling for common engineering tasks
(migration generation scripts, code generation, scaffolding, type
generation), task files should reference that tooling rather than
inventing commands. Check `.sculptor/code.md`'s build/run sections,
the `justfile` / `Makefile`, `package.json` scripts, or equivalent
to find it. Examples of things to look for:

- Migration generation (for repos with an ORM)
- API type generation (for frontend ↔ backend repos)
- Test scaffolding helpers
- Code formatters and linters

Don't paste specific commands into task files unless you've
verified them in the codebase.

## Rules

- Do NOT write implementation code in the plan. Describe what to do,
  not the code itself.
- Do NOT include time estimates.
- Do NOT create tasks smaller than meaningful progress.
- Do NOT create tasks larger than ~2 hours of focused work.
- Do NOT use vague references like "follow the existing pattern"
  without specifying which file/function/line.
- Do NOT assume the reader has context beyond what's in the task file
  and the referenced source files.
- Do NOT reference other task files for context — repeat the context
  instead.
- Do NOT omit end-to-end tests for user-facing features.
- **Ask every question with your question tool** — `mcp__sculptor__ask_user_question` if it's available, otherwise the built-in `AskUserQuestion`. Never ask in plain text: only the tool call puts the workspace into the "waiting for input" state that alerts the user.
- The finalize question is its own turn.
- When spawning the Build agent, end the spawning turn with **text
  instructions** rather than a question.

From imbue-ai/sculptor at f847102, shown as plain text under its license: MIT (permissive). The license text is in LICENSE.md.

View SKILL.md on GitHub at f847102

Files

1 file, 21 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at f847102
All 50 skills from Imbue

More from Imbue

  • architect

    Generates an architecture document for a feature by reading the existing spec, analyzing the codebase deeply, and conducting guided Q&A with the user to…

    Claude Code · about 4K tokens · pinned 6 days ago

  • build

    This skill executes a multi-step implementation plan by working through task files sequentially.

    Claude Code · about 1.1K tokens · pinned 6 days ago

  • build-sculptor-extension

    Build or modify Sculptor extensions, which are runtime ES modules that add panels, overlays, widgets, home views, or settings UI to the Sculptor frontend.

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 3.3K tokens · pinned 6 days ago

  • fix-bug

    Fixes bugs using test-driven development with an interactive or autonomous workflow.

    Claude Code · about 9.8K tokens · pinned 6 days ago

  • handoff

    This skill hands off ongoing work to a fresh agent, either in the same workspace or a new isolated workspace, while preserving context through a synthesized…

    Claude Code · about 1.1K tokens · pinned 6 days ago

  • help

    This skill fetches the latest Sculptor documentation from GitHub and answers user questions about how to use Sculptor's features, including workspaces…

    Claude Code · about 880 tokens · pinned 6 days ago

All Coding workflow skills
  • planning

    This skill orchestrates multi-workflow projects with dependencies and shared data tables by creating a task graph in the orchestrator via the create-tasks tool.

    by n8nOfficial publisher

    Claude Code, Codex, Cursor +3 · about 2.4K tokens · pinned 6 days ago

  • progressive-building

    This skill implements incremental workflow development for agents building or extending workflows.

    by n8nOfficial publisher

    Claude Code, Codex, Cursor +3 · about 1.4K tokens · pinned 6 days ago

  • workflow-builder

    Builds and edits n8n workflows using the TypeScript SDK.

    by n8nOfficial publisher

    Claude Code, Codex, Cursor +3 · about 14.2K tokens · pinned 6 days ago

  • remotion-upgrade

    This skill upgrades Remotion and its related packages to the latest stable version.

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 460 tokens · pinned 6 days ago

  • remotion-upgrade

    This skill upgrades Remotion and related packages across a project, automatically detecting the package manager and workspaces.

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 460 tokens · pinned 6 days ago

  • final-release-review

    Audits Python SDK release candidates or plans against the previous release, comparing diffs for regressions, API changes, and version compatibility.

    by OpenAIOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 5.4K tokens · pinned 6 days ago

Open roles at Imbue

No open roles at Imbue on the Agent Native jobs board right now.

Browse the jobs board

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use