Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).
.claude/skills/graniet-subagent-driven-development/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 119% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 115% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 104% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 78% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 100% | 0% |
This skill is repo-local and stays inactive until explicitly activated.
When the original instructions refer to legacy tool names, use these Kheish mappings:
terminal => bashweb_extract => web_fetch, plus web_search when discovery is neededsearch_files => grep_search and glob_searchbrowser_* tools require a browser-capable surfaced tool or MCP; if none is available, use the closest available surface and say so explicitlyWhen the instructions mention local helper files, resolve them from ${KHEISH_SKILL_DIR}.
Execute implementation plans by dispatching fresh subagents per task with systematic two-stage review.
Core principle: Fresh subagent per task + two-stage review (spec then quality) = high quality, fast iteration.
Use this skill when:
vs. manual execution:
Read the plan file. Extract ALL tasks with their full text and context upfront. Create a todo list:
python# Read the plan read_file("docs/plans/feature-plan.md") # Create todo list with all tasks todo([ {"id": "task-1", "content": "Create User model with email field", "status": "pending"}, {"id": "task-2", "content": "Add password hashing utility", "status": "pending"}, {"id": "task-3", "content": "Create login endpoint", "status": "pending"}, ])
Key: Read the plan ONCE. Extract everything. Don't make subagents read the plan file — provide the full task text directly in context.
For EACH task in the plan:
Use delegate_task with complete context:
pythondelegate_task( goal="Implement Task 1: Create User model with email and password_hash fields", context=""" TASK FROM PLAN: - Create: src/models/user.py - Add User class with email (str) and password_hash (str) fields - Use bcrypt for password hashing - Include __repr__ for debugging FOLLOW TDD: 1. Write failing test in tests/models/test_user.py 2. Run: pytest tests/models/test_user.py -v (verify FAIL) 3. Write minimal implementation 4. Run: pytest tests/models/test_user.py -v (verify PASS) 5. Run: pytest tests/ -q (verify no regressions) 6. Commit: git add -A && git commit -m "feat: add User model with password hashing" PROJECT CONTEXT: - Python 3.11, Flask app in src/app.py - Existing models in src/models/ - Tests use pytest, run from project root - bcrypt already in requirements.txt """, toolsets=['terminal', 'file'] )
After the implementer completes, verify against the original spec:
pythondelegate_task( goal="Review if implementation matches the spec from the plan", context=""" ORIGINAL TASK SPEC: - Create src/models/user.py with User class - Fields: email (str), password_hash (str) - Use bcrypt for password hashing - Include __repr__ CHECK: - [ ] All requirements from spec implemented? - [ ] File paths match spec? - [ ] Function signatures match spec? - [ ] Behavior matches expected? - [ ] Nothing extra added (no scope creep)? OUTPUT: PASS or list of specific spec gaps to fix. """, toolsets=['file'] )
If spec issues found: Fix gaps, then re-run spec review. Continue only when spec-compliant.
After spec compliance passes:
pythondelegate_task( goal="Review code quality for Task 1 implementation", context=""" FILES TO REVIEW: - src/models/user.py - tests/models/test_user.py CHECK: - [ ] Follows project conventions and style? - [ ] Proper error handling? - [ ] Clear variable/function names? - [ ] Adequate test coverage? - [ ] No obvious bugs or missed edge cases? - [ ] No security issues? OUTPUT FORMAT: - Critical Issues: [must fix before proceeding] - Important Issues: [should fix] - Minor Issues: [optional] - Verdict: APPROVED or REQUEST_CHANGES """, toolsets=['file'] )
If quality issues found: Fix issues, re-review. Continue only when approved.
pythontodo([{"id": "task-1", "content": "Create User model with email field", "status": "completed"}], merge=True)
After ALL tasks are complete, dispatch a final integration reviewer:
pythondelegate_task( goal="Review the entire implementation for consistency and integration issues", context=""" All tasks from the plan are complete. Review the full implementation: - Do all components work together? - Any inconsistencies between tasks? - All tests passing? - Ready for merge? """, toolsets=['terminal', 'file'] )
bash# Run full test suite pytest tests/ -q # Review all changes git diff --stat # Final commit if needed git add -A && git commit -m "feat: complete [feature name] implementation"
Each task = 2-5 minutes of focused work.
Too big:
Right size:
Why fresh subagent per task:
Why two-stage review:
Cost trade-off:
This skill EXECUTES plans created by the writing-plans skill:
Implementer subagents should follow TDD:
Include TDD instructions in every implementer context.
The two-stage review process IS the code review. For final integration review, use the requesting-code-review skill's review dimensions.
If a subagent encounters bugs during implementation:
[Read plan: docs/plans/auth-feature.md]
[Create todo list with 5 tasks]
--- Task 1: Create User model ---
[Dispatch implementer subagent]
Implementer: "Should email be unique?"
You: "Yes, email must be unique"
Implementer: Implemented, 3/3 tests passing, committed.
[Dispatch spec reviewer]
Spec reviewer: ✅ PASS — all requirements met
[Dispatch quality reviewer]
Quality reviewer: ✅ APPROVED — clean code, good tests
[Mark Task 1 complete]
--- Task 2: Password hashing ---
[Dispatch implementer subagent]
Implementer: No questions, implemented, 5/5 tests passing.
[Dispatch spec reviewer]
Spec reviewer: ❌ Missing: password strength validation (spec says "min 8 chars")
[Implementer fixes]
Implementer: Added validation, 7/7 tests passing.
[Dispatch spec reviewer again]
Spec reviewer: ✅ PASS
[Dispatch quality reviewer]
Quality reviewer: Important: Magic number 8, extract to constant
Implementer: Extracted MIN_PASSWORD_LENGTH constant
Quality reviewer: ✅ APPROVED
[Mark Task 2 complete]
... (continue for all tasks)
[After all tasks: dispatch final integration reviewer]
[Run full test suite: all passing]
[Done!]Fresh subagent per task
Two-stage review every time
Spec compliance FIRST
Code quality SECOND
Never skip reviews
Catch issues earlyQuality is not an accident. It's the result of systematic process.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→fail | 6,279 | 6,983 | +11% | 1 | 1 | 0% | 408 | 2,961 | +626% | 0 | 0 | — |
case-01 | fail→fail | 14,100 | 7,442 | -47% | 1 | 1 | 0% | 384 | 2,942 | +666% | 0 | 0 | — |
case-03 | fail→fail | 4,610 | 30,419 | +560% | 1 | 1 | 0% | 285 | 8,967 | +3046% | 0 | 0 | — |
case-04 | fail→pass | 8,841 | 3,343 | -62% | 1 | 1 | 0% | 1,386 | 3,030 | +119% | 0 | 0 | — |
case-05 | fail→pass | 8,970 | 5,497 | -39% | 1 | 1 | 0% | 1,601 | 3,443 | +115% | 0 | 0 | — |
case-06 | pass→pass | 8,904 | 4,243 | -52% | 1 | 1 | 0% | 1,465 | 3,209 | +119% | 0 | 0 | — |
case-07 | pass→pass | 8,849 | 4,516 | -49% | 1 | 1 | 0% | 1,394 | 3,209 | +130% | 0 | 0 | — |
case-08 | pass→pass | 9,607 | 2,482 | -74% | 1 | 1 | 0% | 1,498 | 2,931 | +96% | 0 | 0 | — |
case-09 | fail→pass | 10,828 | 5,747 | -47% | 1 | 1 | 0% | 1,731 | 3,532 | +104% | 0 | 0 | — |
case-10 | fail→pass | 9,532 | 2,226 | -77% | 1 | 1 | 0% | 1,597 | 2,844 | +78% | 0 | 0 | — |
case-11 | pass→fail | 21,117 | 31,747 | +50% | 1 | 1 | 0% | 4,061 | 2,763 | -32% | 0 | 0 | — |
case-12 | pass→fail | 8,071 | 4,522 | -44% | 1 | 1 | 0% | 1,405 | 2,758 | +96% | 0 | 0 | — |
case-13 | fail→fail | 3,176 | 5,990 | +89% | 1 | 1 | 0% | 471 | 2,759 | +486% | 0 | 0 | — |
case-14 | pass→pass | 4,178 | 2,427 | -42% | 1 | 1 | 0% | 713 | 2,889 | +305% | 0 | 0 | — |
case-15 | fail→pass | 8,951 | 3,938 | -56% | 1 | 1 | 0% | 1,553 | 3,110 | +100% | 0 | 0 | — |
case-16 | pass→pass | 10,771 | 3,749 | -65% | 1 | 1 | 0% | 1,845 | 2,684 | +45% | 0 | 0 | — |
case-17 | fail→pass | 9,849 | 1,789 | -82% | 1 | 1 | 0% | 1,731 | 2,735 | +58% | 0 | 0 | — |
case-18 | fail→pass | 9,910 | 968 | -90% | 1 | 1 | 0% | 1,509 | 2,592 | +72% | 0 | 0 | — |
case-19 | pass→pass | 11,174 | 3,842 | -66% | 1 | 1 | 0% | 1,699 | 3,178 | +87% | 0 | 0 | — |
case-20 | pass→pass | 7,144 | 4,338 | -39% | 1 | 1 | 0% | 1,172 | 3,130 | +167% | 0 | 0 | — |
case-21 | pass→pass | 7,593 | 2,581 | -66% | 1 | 1 | 0% | 1,253 | 2,886 | +130% | 0 | 0 | — |
case-22 | fail→pass | 7,637 | 2,277 | -70% | 1 | 1 | 0% | 1,297 | 2,827 | +118% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +27 percentage points is the difference between those two pass rates over the 16 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.