implementation
Implementation
Feature development for IMPLEMENT state.
When to Load
- State: IMPLEMENT
- Condition: Pending feature exists in feature-list.json
Core Workflow
| Step | Action | Command/Tool |
|---|---|---|
| 1 | Get feature | .claude/scripts/get-current-feature.sh |
| 2 | BLOCKING: Check for templates | ls .claude/scripts/TEMPLATE-*.sh 2>/dev/null |
| 3 | Analyze codebase | mcp__token-efficient__execute_code |
| 4 | Query past decisions | context_query_traces(query=feature_description) |
| 5 | Implement feature | See Step 5 detailed workflow below |
| 6 | Commit (ONLY after tests pass) | .claude/scripts/feature-commit.sh feat-ID "desc" |
| 7 | Mark complete | .claude/scripts/mark-feature-complete.sh feat-ID implemented |
| 8 | Session introspection | Detect issues → Update scripts → Commit separately |
Step 2: TEMPLATE- Gate (Critical)
If TEMPLATE-*.sh files exist → STOP
| Action | Command |
|---|---|
| Read script purposes | cat .claude/scripts/README.md |
| Customize script | Edit for your project (ports, paths, commands) |
| Rename to activate | mv TEMPLATE-script.sh script.sh |
| Test script | Run and verify output |
| Commit | git add .claude/scripts/ && git commit |
Only proceed when: ls .claude/scripts/TEMPLATE-*.sh returns nothing
See references/template-scripts.md for detailed customization guide.
Step 5: Feature Implementation Sub-Workflow (CRITICAL)
NEVER commit until ALL verification steps pass.
| Sub-step | Action | Details |
|---|---|---|
| 5a | Write code | Follow project patterns, add types/error handling |
| 5b | Write tests | Unit tests (happy paths, error cases, edge cases) |
| 5c | Verify ALL pass | Run verification commands in order |
| 5d | Manual testing | Test functionality if automated tests unclear |
5c: Verification Commands (Run in Order)
Stop at first failure. Fix issue, then restart from top.
| Command | Purpose | Must Pass |
|---|---|---|
| Type check | Verify types (TS/typed languages) | ✅ Exit code 0 |
| Run tests | All unit/integration tests | ✅ Exit code 0 |
| Build | Project builds successfully | ✅ Exit code 0 |
| Health check | Servers/services healthy | ✅ Exit code 0 |
Common commands by project type:
| Project Type | Type Check | Run Tests | Build |
|---|---|---|---|
| TypeScript/Node | pnpm typecheck |
pnpm test |
pnpm build |
| Python | mypy . |
pytest |
python -m build |
| Go | go vet ./... |
go test ./... |
go build |
| Rust | cargo check |
cargo test |
cargo build |
Golden Rule: git commit ONLY when all commands exit with code 0.
5d: Manual Testing (When Needed)
| Scenario | Action |
|---|---|
| API endpoints | Test with curl/Postman |
| Web UI | Test in browser |
| CLI tool | Run with sample inputs |
| Automated tests timeout/fail | Verify functionality works manually |
Purpose: Confirm implementation works before committing.
Token-Efficient Analysis (Step 3)
| Task | Tool | Savings |
|---|---|---|
| Code execution | mcp__token-efficient__execute_code |
98% |
| Log parsing | mcp__token-efficient__process_logs |
95% |
| Large datasets | mcp__token-efficient__process_csv |
99% |
Rule: Never load raw logs/code into context.
Exit Criteria (All Must Pass)
- No
TEMPLATE-*.shfiles remain - Code written with proper types/error handling
- Tests written (unit tests for happy paths, errors, edge cases)
- ALL verification commands pass (exit code 0)
- Type check passes
- All tests pass
- Build succeeds
- Health check passes (if applicable)
- Manual testing confirms functionality (if needed)
- Committed with feature ID in message
- feature-list.json status updated
- Session introspection complete (Step 8)
- Issues identified and documented
- Scripts updated (if issues found)
- Script updates committed separately (chore:)
NEVER skip verification. Commit only after ALL checks pass.
Post-Implementation: Store Learnings
After successful feature completion, store key decisions in context-graph:
| Category | What to Store |
|---|---|
| architecture | Design patterns, component reuse, state management |
| api | Endpoint patterns, error handling, response formats |
| testing | Test strategies, mock patterns, edge cases discovered |
| deployment | Build steps, server restart requirements, configuration |
Example:
context_store_trace(
decision="Used StateStore for session management with 30min TTL",
category="architecture",
outcome="success",
feature_id="FEATURE-001"
)
Purpose: Future features can query past decisions for consistency.
Step 8: Session Introspection & Script Updates
Purpose: Create continuous improvement feedback loop. Detect friction points and update scripts to prevent future issues.
When to Run
- After feature marked complete
- After learnings stored in context-graph
- Before session ends
Detection Patterns
| Issue Pattern | Root Cause | Script Update |
|---|---|---|
| Manual rebuilds | node dist/index.js vs tsx watch |
restart-servers.sh: Use tsx watch |
| Tests not found | Vitest pattern missing nested packages | vitest.config.ts: Add packages/*/*/src/**/*.test.ts |
| Route collisions | Dynamic routes before static routes | Add comments to templates |
| Missing API tests | New endpoints not in run-tests.sh | run-tests.sh: Add endpoint checks |
| Repeated type errors | Missing type definitions | Update template imports |
| Libsodium/ESM issues | Direct imports failing | Document workaround in templates |
Detection Methods
| Method | What to Check | Tool |
|---|---|---|
| Command history | Repeated commands | `history | grep -E "(build |
| Manual edits | Files changed outside feature | git diff --stat |
| Error patterns | Systemic issues | Session error logs |
| Frequency analysis | Commands run 3+ times | Count occurrences |
Output Format
When issues detected:
🔧 Session Issues Detected:
- [Issue 1]: [Impact]
- [Issue 2]: [Impact]
📝 Recommended Script Updates:
- [script-name]: [Update description] (BEFORE → AFTER)
Apply updates? (y/n)
Implementation Guidelines
| Rule | Why |
|---|---|
| NON-BLOCKING | User can skip if unsure |
| Explain WHY | Context for the update |
| Show BEFORE/AFTER | Clear comparison |
| Commit separately | chore: prefix, not feat: |
| Store in context-graph | Future sessions can learn |
Commit Format
git add .claude/scripts/
git commit -m "chore: Update scripts based on [FEATURE-ID] learnings
- [script-1]: [update description]
- [script-2]: [update description]
Prevents: [issue description]"
Example from SDK-BUYER-CART-003
Issues Detected:
- Rebuilt api-server 5+ times manually
- Tests in nested packages not discovered
- New endpoints (cart, checkout) untested
Updates Applied:
restart-servers.sh: Usetsx watchfor hot-reloadvitest.config.ts: Addedpackages/*/*/src/**/*.test.tsrun-tests.sh: Added POST /api/cart, PUT /api/cart/buyer, POST /api/checkout
Result: Future sessions have hot-reload, all tests discovered, endpoints validated
Success Criteria
| Metric | Target |
|---|---|
| Manual work reduced | <10% of session time |
| Repeated issues | 0 in next 3 sessions |
| Script coverage | All common patterns automated |
| Learnings codified | Every feature updates at least 1 script |
Scripts Reference
| Script | Purpose |
|---|---|
get-current-feature.sh |
Extract next pending feature |
health-check.sh |
Verify implementation health |
feature-commit.sh |
Commit with feature ID |
mark-feature-complete.sh |
Update feature status |
run-tests.sh |
Run project tests |
If Scripts Don't Exist
When project scripts are missing → Create minimal versions:
| Script | Minimal Template |
|---|---|
| get-current-feature.sh | `jq '.features[] |
| feature-commit.sh | git commit -m "feat: $1 $2" |
| mark-feature-complete.sh | `jq --arg id "$1" '.features[] |
| run-tests.sh | Project test command (see verification table) |
References
| File | Load When |
|---|---|
| references/template-scripts.md | Customizing TEMPLATE- scripts |
| references/token-efficient-mcp-patterns.md | Large dataset analysis |
| references/coding-patterns.md | Project-specific patterns |
More from ingpoc/skills
scroll-storyteller
Use when creating interactive scroll-based storytelling experiences with mouse-following spotlight effects, animated SVG art, and the Anthropic design language. Load for explainer pages, product showcases, visual narratives, or any content needing immersive scroll storytelling with organic shapes and smooth animations. Supports GSAP-powered or lightweight CSS-only animations.
124terminal-ui-design
Use when creating CLI tools, terminal user interfaces (TUI), or any command-line applications. Load for terminal UI design, ASCII art, color schemes, box drawing characters, and polished terminal output. Also use for refactoring boring CLIs into distinctive experiences.
34browser-testing
Use when testing web applications, debugging browser console errors, automating form interactions, or verifying UI implementations. Load for localhost testing, authenticated app testing (Gmail, Notion), or recording demo GIFs. Requires Chrome extension 1.0.36+, Claude Code 2.0.73+, paid plan.
21tufte-slide-design
This skill applies Edward Tufte's data visualization principles from "The Visual Display of Quantitative Information" to create high-impact slides. Use when designing presentations, creating charts/graphs, reviewing slides for clarity, or transforming data into visual displays. Triggers on phrases like "make a slide", "create presentation", "design chart", "visualize data", "review my slides", or "make this more impactful".
20postgresql-skill
This skill provides PostgreSQL-specific patterns for database design, optimization, and transaction management
13token-efficient
Use when processing 50+ items, analyzing CSV/log files, executing code in sandbox, or searching for tools. Load for data processing tasks. Achieves 98%+ token savings via in-sandbox execution, progressive disclosure, and pagination. Supports heredocs for multi-line bash.
12