Overview
Performs post-review cosmetic cleanup to make code production-ready. This workflow is now integrated as Phase T-7 of /skill:specs-kit-task-implementation. It can also be invoked manually using --action=cleanup.
Input: docs/specs/[id]/tasks/TASK-XXX.md (reviewed status)
Output: Cleaned code, task marked completed
When to Use
- Use when asked to clean up code, polish, finalize, tidy up, or remove technical debt after review approval.
- Use to prepare code for completion: remove debug logs, dead code, optimize imports, and improve readability.
- Use as the final quality gate in the specification-driven development workflow.
- Not for refactoring logic or fixing bugs — focused solely on cosmetic and hygiene cleanup.
Arguments
| Argument | Required | Description |
|---|---|---|
--task |
Yes | Path to task file |
--action |
No | Set to cleanup for manual invocation |
Best Practices
- Clean, not change: Only remove or reorganize — never change functionality
- Preserve behavior: Code must work exactly the same after cleanup
- Use project tools: Discover and run the formatter/linter the project already configures (
package.jsonscripts, Maven/Gradle plugins,composerscripts,pyproject.tomltooling,.pre-commit-config.yaml) - Use a checklist: Track progress through all 8 phases
- Stop on failure: If tests fail, stop and report — do not proceed
Instructions
Phase 1: Task Verification
-
Parse the skill arguments for parameters:
--task(required): Task ID or file path--spec(optional): Spec folder path (used with task ID)
Support two formats:
- Format 1 (direct path):
--task=docs/specs/001-feature/tasks/TASK-001.md - Format 2 (spec+task):
--spec=docs/specs/001-feature --task=TASK-001
If Format 2 is used, construct the task file path as:
{spec}/tasks/{task}.md -
Read the task file. Verify:
- Status is
reviewed,implemented, orcompleted(an earlier cleanup may have already stampedcompleted, which the loop treats as terminal) - Review report
TASK-XXX--review.mdexists and is approved
- Status is
-
If not reviewed → stop and tell user to run
/skill:specs-kit-task-reviewfirst -
Extract task ID, title, and
providesfiles
Phase 2: Identify Files to Clean
- Read
TASK-XXX--review.mdfor files created/modified - Read task
providesfield for file paths - Verify files exist; build cleanup list
- Categorize: source files, test files, config files
Phase 3: Technical Debt Removal
Search files for temporary/debug artifacts with Grep:
console.log,System.out.println,print(,// DEBUG:,// temp,// hack- Resolved
TODO/FIXMEcomments (keep unresolved ones)
Review context for each finding. Remove confirmed debt and document what was removed.
Phase 4: Import Optimization
- Discover and run the project's own import tooling from its configuration (
package.jsonscripts, Maven/Gradle plugins,composerscripts,pyproject.toml,.pre-commit-config.yaml) - Manually remove unused imports if no tool is configured
- Document files changed
Phase 5: Code Readability Improvements
- Discover and run the project's own formatter/linter from its configuration (
package.jsonscripts, Maven/Gradle plugins,composerscripts,pyproject.toml,.pre-commit-config.yaml) - If no formatter is configured: fix indentation, break long lines (>120), fix spacing
- Remove dead code only if obviously safe
- Document changes
Phase 6: Documentation Verification
- Verify class/file headers and public API docs
- Check remaining TODOs are still valid and have context
- Remove or update outdated comments
- Document documentation changes
Phase 7: Final Verification
- Run linters if available
- Run tests if available
- Verify no logic or signature changes were introduced
- If tests fail → stop and report failures
Phase 8: Task Completion
-
Auto-update task status:
- Add a
## Cleanup Summarysection to the task file - Check any remaining boxes in the DoD section
- Hooks update status to
reviewed(the canonical terminal the loop expects) and stampreviewed_date+cleanup_date
- Add a
-
Append
## Cleanup Summaryto task file with:- Files cleaned
- Changes made
- Verification checklist (linters, tests, no functionality changes)
-
Mark all todos complete
Examples
Spring Boot Cleanup
/skill:specs-kit-task-implementation --task="docs/specs/001-user-auth/tasks/TASK-001.md" --action=cleanup
Actions:
- Verify TASK-001 status is
reviewed - Files:
UserController.java,UserService.java,UserRepository.java - Remove 5
System.out.printlnand 2 resolved TODOs - Run
./mvnw spotless:apply - Run
./mvnw test -q - Mark task
reviewed
TypeScript Cleanup
/skill:specs-kit-task-implementation --task="docs/specs/002-dashboard/tasks/TASK-003.md" --action=cleanup
Actions:
- Verify TASK-003 status is
reviewed - Files:
Dashboard.tsx,useDashboard.ts,Dashboard.test.tsx - Remove 8
console.logstatements - Run
npm run lint:fixandnpm run format - Run
npm test - Mark task
reviewed
Constraints and Warnings
- Never change logic or signatures during cleanup
- Stop immediately and report if tests fail
- Verify behavior is unchanged before marking complete