with one click
implement-direct
// Implement a feature directly from spec without TDD. Use when tests aren't worth the overhead. Invoke with '/implement-direct path/to/spec.md' or 'just implement', 'implement directly', 'skip tests'.
// Implement a feature directly from spec without TDD. Use when tests aren't worth the overhead. Invoke with '/implement-direct path/to/spec.md' or 'just implement', 'implement directly', 'skip tests'.
| name | implement-direct |
| description | Implement a feature directly from spec without TDD. Use when tests aren't worth the overhead. Invoke with '/implement-direct path/to/spec.md' or 'just implement', 'implement directly', 'skip tests'. |
| contract | {"tags":["implementation","direct"],"state_source":"spec","inputs":{"params":[{"name":"spec_path","required":true}],"gates":[{"field":"status","value":"Approved"}]},"outputs":{"mutates":[{"field":"status","sets_to":"Implemented"}],"side_effects":[]},"next":["qa-handoff"],"human_gate":true} |
Implements a feature from an approved spec using judgment, without writing tests first. You verify the result manually.
TDD is valuable for complex logic but overkill for:
This skill implements with intelligence, not blind compliance.
Use /implement-direct | Use TDD instead |
|---|---|
| UI components/styling | Complex business logic |
| Simple CRUD | Security-sensitive code |
| Features you'll test manually | Math/algorithms |
| Rapid prototyping | Code that's hard to verify visually |
Read the spec document. Extract:
See shared/spec-io.md for spec sections and structure. See shared/security-lens.md for implementation-time security patterns.
Think about intent, not just words. The spec is a guide, not a legal contract.
Before writing code, explore the codebase:
Match existing conventions. Don't invent new patterns.
Create a brief mental model:
If something seems wrong or unclear, ASK. Don't blindly implement something that doesn't make sense.
Work through each acceptance criterion. As you implement:
DO:
DON'T:
Flag concerns as you go:
ā ļø The spec says "text field" but this looks like it needs a textarea
for multi-line input. Proceeding with textarea. Let me know if wrong.
Before marking work complete, follow the testing requirements from shared/testing-standards.md.
After implementation:
1. Run Automated Tests
npm test (or project-specific command)2. Manual Verification
3. Document Testing Record what you tested and results:
### Verification
- Tested: form submission happy path (ā
works)
- Tested: invalid email handling (ā
error displays)
- Tested: edge case from spec (empty description) (ā
handled)
- Could not verify: rate limiting (no test infrastructure)
Report what you verified vs. what you couldn't. Don't claim full verification if you only checked that it compiles.
Don't claim it's done if it doesn't build or if tests fail.
Before claiming done, re-read each acceptance criterion from the spec. For each, assess honestly:
shared/security-lens.md Review-Time section)Include this assessment in your completion report. The manager uses it to decide whether to present Gate B or ask you to fix gaps first.
## Implementation Complete
**Spec:** Documents/specs/42-feature-spec.md
**Files changed:** 3
### Changes
- `src/components/FeedbackForm.tsx` - Added textarea for description
- `src/api/feedback.ts` - New endpoint for submission
- `supabase/migrations/xxx_feedback.sql` - New table
### Satisfaction Assessment
- ā
Form accepts multi-line feedback
- ā
Submission persists to database
- ā ļø 500 char limit ā implemented, but spec didn't specify a limit (inferred from codebase)
- š Security: RLS enabled on feedback table, input sanitized at edge function
### Verification
- Verified: form submission persists correctly (tested locally)
- Could not verify: rate limiting (no test infrastructure)
### Decisions Made
- Used textarea instead of input for description (multi-line content)
- Added 500 char limit based on similar forms in codebase
Update the spec's **Status:** from Approved to Implemented.
See shared/spec-io.md for how to update the status field.
End-of-skill check: See
shared/primitive-updates.md. Signals: new/changed packages, new scripts, new directories in src/.
Create clear testing instructions for QA using the template from shared/testing-standards.md:
Include this in your completion report so the manager can pass it to qa-handoff.
Implementation complete.
Ready for manager review.
Stop and ask if you encounter:
Don't silently make bad decisions. Surface them.
This skill hands off to:
/qa-handoff - When ready for QA testing[HINT] Download the complete skill directory including SKILL.md and all related files