| name | make-plans |
| description | Structures plan.md files for parallel, non-overlapping agent work. Use when creating or editing execution plans, task lists for multiple agents, or when the user asks how to structure plans or split work into tasks. |
Making plan.md Files
Plans enable parallel, non-overlapping work. Each task must be independent; agents work in a dedicated git worktree (see worktrees skill).
Where to keep plan.md and spec files: Create and edit plan.md (and the other Ralph spec files: goal.md/spec.md, state.json, decisions.md) in a dedicated folder under the specs folder at the repo root: specs/<feature-or-component-name>/. Example: specs/resizable-container/plan.md. Do not place spec files next to source (e.g. not under src/components/...).
Required plan.md Structure
- Worktree section (top) — path, branch, base branch. See worktrees skill.
- Task overview — one line: tasks are self-contained; same-file tasks have dependencies.
- Task sections — each with the template below.
- Execution order — phases showing what can run in parallel.
- File ownership summary — table: Task | Creates/Modifies.
Task Template
Every task must include:
## Task N: <Descriptive Name>
**File(s) to create/modify:** `path/to/file.tsx`
**Dependencies:** Task X (or "None")
**Status:** pending | in-progress | done | blocked
**Owner:** <agent-name> | unassigned
**Scope:**
- Bullet points; include interfaces/snippets if helpful
**Acceptance Criteria:**
- [ ] Verifiable condition
- [ ] e.g. TypeScript compiles, exports from module
Task Independence Rules
- Same file → cannot run in parallel. Add explicit dependencies so only one agent touches a file at a time.
- Explicit dependencies: If B needs A, write
**Dependencies:** Task 1.
- Self-contained scope: Task must be doable without other in-progress tasks (include types, imports, exports).
- Same-file options: Either one integration task (e.g. "Update index.tsx for all components", deps: 1–4) or a chain (Task 7 adds A, Task 8 adds B with dep Task 7).
Task Granularity
- Too coarse: "Implement entire Gallery" — not parallelizable.
- Too fine: Separate tasks for "create file", "add imports", "add type" — overhead.
- Good: One task = one logical unit (e.g. "GalleryContext: types + context + hook", "Gallery Provider: state + navigation", "GalleryUI: rendering + interactions").
Cross-Cutting / Integration
Use a final integration task, e.g.:
- Update
index.tsx exports for all new components.
- Update main stylesheet to import component styles.
- Dependencies: all preceding tasks.
Checklist Before Finalizing plan.md
For full examples and worktree setup, see reference.md and the worktrees skill.