Grill only the selected slice.
Continue until this slice is ready to implement:
- behavior is clear
- verification intent is clear enough to know what
implement-tests should later prove
- expected intermediate state is clear, including whether compile/run/test failures are acceptable for this slice
- child rolling-wave project relationship is clear, including whether this slice is standalone or backed by another
docs/rolling-wave/{child-project}/project.md
- likely approach is clear enough
- minimum implementation is clear enough to prevent speculative safeguards, abstractions, dependencies, and future-proofing
- parallelizable work chunks are identified or ruled out
- execution fit is identified for the slice and each chunk
- meaningful risks are known
- user-facing decisions are resolved
- scope boundaries are explicit
Avoid file/function-level grilling unless it affects behavior, scope, risk, correctness, data shape, migration concerns, testability, or downstream ordering.
Do not require a detailed test plan, exact test files, or final validation commands at slice-preparation time unless they are already obvious and materially affect the slice shape. Tests are locked down after implementation by implement-tests.
Do not require every slice to compile, run, or pass tests. Ask whether an intermediate broken state is acceptable only when the slice is likely to leave the repo broken or partially wired. If accepted, record what may be broken and which later slice, roadmap item, or project risk will resolve it before the finish line.
Do not prepare a slice whose only output is "decide", "research", "validate", or "design" unless the slice also has a concrete reviewable artifact or code/docs change required for implementation.
Decide whether the slice should become a child rolling-wave project:
- Recommend a child project when the selected slice has its own finish line, multiple internal implementation steps, separate review cycles, or enough uncertainty that preparing it as one slice would be fake precision.
- Keep it as a normal slice when it can be implemented and reviewed as one coherent change, even if it has multiple chunks.
- If using a child project, create or reference
docs/rolling-wave/{child-project}/project.md, define what child-project completion means for the parent slice, and record which child scope counts toward the parent slice versus what remains outside it.
- Do not duplicate the child project's internal roadmap inside the parent slice. Link to the child project and keep only the parent-level contract and completion condition.
- If the child project does not exist yet, route to
shape-project for the child project before pretending the parent slice is ready.
Define the minimum implementation:
- Ask what code or behavior does not need to exist yet when the slice is likely to invite extra safeguards, knobs, compatibility paths, abstractions, or dependencies.
- Prefer stdlib, native platform features, existing project helpers, and already-installed dependencies before planning custom logic or new dependencies.
- Record the simplest acceptable path, things explicitly not being built, intentional shortcuts or ceilings, and the trigger that would justify upgrading the shortcut later.
- Do not remove necessary input validation at trust boundaries, security controls, data-loss prevention, accessibility basics, migration safety, or behavior the user explicitly requested.
- If the slice intentionally chooses a shortcut with a known ceiling, make the ceiling and upgrade trigger explicit so "later" does not become silent debt.
Decompose implementation work where appropriate:
- Create
Parallel Work Chunks in the slice contract when the slice can be split into independent ownership areas.
- Prefer one to three chunks. Do not invent more chunks than
implement-slice can usefully delegate.
- A good chunk has a concrete output, owned files/modules/responsibilities, dependencies, suggested owner, reason, human handoff, agent fallback, timebox, post-implementation test focus, and review focus.
- Chunks should be disjoint enough that one subagent can own each chunk without frequent merge conflicts.
- If chunks must run in order, record dependencies clearly; do not call sequential phases "parallel".
- If the slice is tiny, tightly coupled, or has one obvious critical path, record
Parallel Work Chunks: serial/local-only with the reason instead of forcing fake chunks.
- Avoid grilling every individual file or validation command. Ask only about chunk boundaries when they affect behavior, risk, ownership, or parallel execution.
Identify execution fit:
- Use
agent for broad search, repetitive edits, cross-file wiring, mechanical consistency, test scaffolding, and "find all places" work.
- Use
human for narrow changes that depend on taste, naming, API/type shape, product judgment, or cases where explaining the desired result is likely slower than editing it.
- Use
either when the chunk is small and well specified enough that either the user or an agent can do it efficiently.
- Use
hybrid when an agent should gather context or do the broad/mechanical work, but the user should make the final taste/API/type-shape decision.
- Prefer
human when the user could likely finish the chunk in under 10-15 minutes, the target files are obvious, and the main risk is clarification churn.
- For human or hybrid chunks, include a concrete
Human handoff and Agent fallback so implement-slice knows whether to pause or continue.