Feature Development
End-to-end process for developing a product feature. Use when working on a task that involves building something user-facing, adding a new capability, or implementing a feature request.
This process ensures features are well-specified, user-friendly, and correctly implemented by applying multiple perspectives sequentially.
Process
- Clarify requirements and acceptance criteria.
- Review UX considerations and edge cases.
- Implement with tests and lint checks.
- Review against task comments and specs.
- Summarize and complete the task.
Examples
task comment <task-id> --role=product "<spec>"
task comment <task-id> --role=designer "<notes>"
bild --test <namespace>
lint <namespace>
Step 1: Clarify Requirements (Product)
Before any implementation, analyze the task:
- Problem - What problem does this solve? Who benefits?
- Scope - What’s the minimum viable solution?
- Criteria - What are the acceptance criteria? How do we know it’s done?
- Boundaries - What should we explicitly NOT do?
Record your analysis:
task comment <task-id> --role=product "<your spec>"
If requirements are unclear, ask the user before proceeding.
Step 2: Design Review (Designer)
Consider the user experience:
- Discovery - How will users discover and use this feature?
- Errors - What happens when things go wrong?
- Edge cases - What unusual situations might users encounter?
- Consistency - Does this match existing patterns?
Record your notes:
task comment <task-id> --role=designer "<your notes>"
For CLI changes, describe the expected interaction:
$ command --new-flag value
Expected output...
$ command --new-flag (missing value)
Error: --new-flag requires a value
Step 3: Implement (Engineer)
Now implement the solution:
- Read the Coder skill (
Omni/Ide/Coder.md) for implementation guidelines - Write tests that verify the acceptance criteria
- Follow existing code conventions
- Keep changes focused - don’t refactor unrelated code
The implementation should satisfy both the product spec and design notes.
bild --test <namespace>
lint <namespace>
Step 4: Review
Re-read all role comments on this task:
task show <task-id> --json | jq '.taskComments'
Check:
- Does the implementation satisfy the Product spec?
- Does it address the Designer’s concerns?
- Do tests pass?
- Does lint pass?
If anything is missing, iterate on the relevant step.
Step 5: Complete
When everything checks out:
- Summarize what was done
- Note any follow-up work discovered
- Handoff to human review:
task update <task-id> review --json
- If blocked instead of complete:
task update <task-id> needs-help --json
When to Use This vs Just Coding
Use Feature Development for:
- New user-facing features
- Changes to existing UX
- Anything with acceptance criteria
- Tasks that need stakeholder alignment
Just use Coder skill for:
- Bug fixes with clear reproduction
- Internal refactoring
- Simple additions with obvious implementation
- Tasks where requirements are already crystal clear