plan
plan
Create a clear, implementation-ready PRD for a single feature (not code).
Guardrails
- Do not implement the feature.
- If the user asks to implement, propose writing a PRD first (or ask if they want to skip the PRD).
- Prefer asking a small number of high-value questions; otherwise write a draft PRD with explicit assumptions.
- Write the PRD so a junior dev (or another AI) can implement it without extra context (plain language, explicit edge cases, verifiable acceptance criteria).
- Treat memory capture as built-in: if planning introduces durable decisions/constraints, update
tasks/memory.mdin this step.
Workflow
- Identify the feature:
- Prefer a feature ID like
f-01if available. - If
tasks/todo.mdexists, use the matching feature entry as the baseline for outcome + scope. - If the feature entry includes
Type:, carry it into the PRD Summary soimplementcan branch and implement appropriately. - If
Type:is missing, assumeType: feat. - If
tasks/todo.mdis missing or the feature is not in it yet, stop and usenewto add the feature totasks/todo.mdfirst. - If
tasks/memory.mdexists, skim relevant key decisions / notes before finalising requirements.
- Prefer a feature ID like
- Check priority (if
tasks/todo.mdexists):- Priority is determined by list order (higher in the list = higher priority).
- If there are higher-priority unchecked items above this feature, ask the user to confirm they want to proceed (vs writing a PRD for one of the higher-priority items first). Mention the higher-priority IDs/names.
- If the user says this item is urgent, recommend switching to
newto move it higher intasks/todo.md, then return toplan.
- Determine the PRD file path:
- First look for an active PRD matching the feature ID in
tasks/(tasks/f-##-*.md). - If one exists, use it.
- Otherwise use
tasks/f-##-<feature-slug>.md(include the feature ID in the filename).
- First look for an active PRD matching the feature ID in
- If a PRD already exists at that path, update it in place (do not create a duplicate PRD unless the user asks). Do not reset any existing checklist items inside the PRD.
- Ask essential clarifying questions (lettered options) only when needed.
- Confirm scope boundaries (in-scope vs non-goals) and success metrics.
- Write or update the PRD at the chosen path (create
tasks/if missing):- Ensure implementation progress is trackable via checklist items (for example, user stories and acceptance criteria checkboxes).
- If
tasks/todo.mdlistsDependencies:for this feature, include them in "Dependencies & Constraints" (dependency validation happens duringimplement). - For UI/UX-heavy features, include expected design inputs (mockups, tokens, interaction notes) and whether
designshould run beforeimplement.
- If
tasks/todo.mdexists, update it to reflect the PRD:- Check the feature checkbox (
- [ ]→- [x]).
- Check the feature checkbox (
- Evaluate memory-worthy outcomes and update
tasks/memory.mdinline when needed:- architecture or requirement decisions with durable impact
- new constraints, non-goals, or rollout assumptions
- risk decisions likely to affect later implementation/review
- Reply with updated file paths and a short summary + open questions.
Clarifying Questions (Only If Needed)
Ask up to ~7 questions. Use numbered questions with A/B/C/D options and an Other option so the user can reply like 1B, 2D, 3A.
Cover only what is ambiguous:
- which feature this PRD is for (feature ID/name)
- user + use case
- problem + desired outcome
- scope boundaries (in scope vs out of scope)
- whether this is
Type: featvsfixvschore - feature dependencies (by feature ID)
- conflicts with existing decisions/constraints (from
tasks/memory.md) - platforms/surfaces
- data + permissions
- integrations / external dependencies
- success metrics
- rollout constraints / timeline
Example question format
1. What is the primary goal?
A. Enable a new capability
B. Improve an existing workflow
C. Reduce cost / time / errors
D. Other: [describe]
PRD Template (Markdown)
Use references/prd-template.md as the default PRD template and checklist.
- Read it before drafting a new PRD.
- For updates to an existing PRD, edit only impacted sections and preserve existing checkbox state.
- Keep acceptance criteria concrete and verifiable; examples are in the reference file.
Output
- Create or reuse
tasks/. - Save/update the PRD at the chosen path (prefer existing active
tasks/f-##-*.md; otherwisetasks/f-##-<feature-slug>.md). - If the slug or scope is ambiguous, ask the user to confirm before saving.
- If
tasks/todo.mdexists, update it (check the feature only; no PRD path field). - If the PRD introduces durable decisions/constraints, update
tasks/memory.mdin the same run. - For UI/UX-heavy PRDs, recommend
design(optional) beforeimplement. - End with a short status block:
- Files changed: list of created/updated files
- Key decisions: any assumptions or choices made (if any)
- Next step: recommended next skill or action
Todo Sync (If tasks/todo.md Exists)
- Update
tasks/todo.mdin place; do not reformat the whole file. - Find the matching feature by ID (preferred) or by feature name.
- Update the feature checklist item to checked (
- [ ]→- [x]). Intasks/todo.md, checked means "PRD exists" (not "built"). - Preserve the feature's
Type:/Dependencies:lines as-is unless the user explicitly asked to change them. - If the feature is not present in
tasks/todo.md, do not create a PRD yet—usenewto add the feature first, then return toplan.
Quality Checklist
Before saving, run the "Quality Checklist" in references/prd-template.md.
At minimum confirm:
- existing PRDs were updated in place (no duplicates)
tasks/todo.mdcheckbox was synced when applicable- dependencies and
Type:were preserved/updated correctly
More from kelvinz/cobb
commit
Create atomic user-approved commits with `feat`/`fix`/`chore` titles. Include inline PRD checklist and context updates per atomic commit. Finalise branch merge/cleanup when requested. Triggers: commit changes, split commits, finalise branch, commit message.
27implement
Implement an existing PRD (`Type: feat`/`fix`/`chore`), update tests/checks, and mark completed PRD checklist items. Triggers: implement prd, build feature from prd, execute prd checklist.
26design
Router-first workflow for high-craft design execution across four modes: ui, ux, motion, and imagery. Use when designing or refining interfaces, structuring and auditing UX/usability/accessibility, implementing or specifying interaction motion, or producing static visual artifacts (.png/.pdf) with a matching philosophy note. Triggers: design ui, improve ux flow, run design audit, add transitions, reduce motion issues, create visual imagery, craft poster composition.
20memory
Maintain durable project memory in `tasks/memory.md` (state, decisions, milestones, gotchas), inline during other workflows or standalone for cleanup/backfill. Triggers: update memory.md, decision log, record project context.
1702-plan
Create a Product Requirements Document (prd) / feature plan for a new or existing item (`Type: feat` / `fix` / `chore`). Use when planning scope, writing requirements, defining user stories + acceptance criteria, or turning an idea into an implementable spec. Triggers: plan, prd, product requirements, feature spec, bugfix spec, fix spec, requirements doc, spec this feature, write requirements.
204-propose
Push the current feature branch and open/update a best-practice Draft pull request via GitHub CLI (gh), including a high-quality PR title/body linked to the PRD with testing + verification steps. Use when pushing a branch, creating/updating a PR, drafting a PR description, or running gh pr create/edit. Triggers: propose, push, PR, pull request, create PR, open PR, draft PR, pr description, gh pr create, gh pr edit, ready for review.
2