Clean the repository of unnecessary comments and produce a Markdown check-list for manual review of any comments that remain.
Follow the high-level algorithm below without any parallelization.
When multiple agents are available (N agents, where N is specified by the user), follow the parallel execution instructions to distribute work efficiently.
-
Recursively scan every file in the project, skipping service folders (
node_modules,.git, build/cache/output directories, etc.). -
For each code file found (
*.js,*.ts,*.jsx,*.tsx,*.mjs,*.cjs,*.vue,*.svelte, …): 2.1 Open the file and delete: • any single-line//or multi-line/* … */comments that merely restate what the code already makes obvious
(e.g.// increment counterright abovecounter++);
• every public JSDoc block/** … */(this is an internal app, not a reusable library). 2.2 Save the file with the edits applied. 2.3 Determine whether any comments are still present. • If none remain → mark the file as done ✔︎.
• If some remain → leave the file open ✘ and collect details: line number ➜ comment text ➜ a brief note of why it was kept (e.g. a magic constant, a tricky algorithm, a workaround). -
Generate
COMMENT_CLEANUP_CHECKLIST.mdin the repo root with this structure:## Comment-cleanup checklist - [x] src/utils/math.ts - [x] src/config/index.ts - [ ] src/components/Chart/LineChart.tsx - `42`: `// MAX_RETRIES = 7 // chosen experimentally, see issue #123` > Kept because the meaning of "7" is documented nowhere else. - `113`: `// 🐛 FIXME – remove fallback once API v3 is live` > Reminder about technical debt. - [x] server/routes/auth.ts ...
- Determine the number of worker agents (N). If not specified, use N=4.
- Designate one agent as the COORDINATOR (Agent 0).
- Designate remaining agents as WORKERS (Agents 1 to N-1).
-
Scan the repository structure:
Find all directories containing code files, excluding: - node_modules/ - .git/ - dist/, build/, out/, .next/, coverage/ - Any directory starting with "." -
Create work distribution file
.cleanup-work-distribution.json:{ "totalAgents": 4, "timestamp": "2024-01-20T10:00:00Z", "assignments": { "agent_1": ["src/components", "src/screens"], "agent_2": ["src/services", "src/stores"], "agent_3": ["src/utils", "src/hooks", "src/types"], "agent_4": ["src/constants", "src/context", "tests", "scripts"] }, "excludedPaths": ["node_modules", ".git", "dist", "build"] } -
Distribution algorithm:
- Sort all directories alphabetically
- Use round-robin assignment: dir[i] → agent[(i % (N-1)) + 1]
- Balance by estimated file count when possible
- Ensure no directory is assigned to multiple agents
- Execute Phase 1 work distribution
- Create
.cleanup-status.json:{ "status": "in_progress", "startTime": "2024-01-20T10:00:00Z", "agents": { "agent_1": { "status": "pending", "filesProcessed": 0 }, "agent_2": { "status": "pending", "filesProcessed": 0 }, "agent_3": { "status": "pending", "filesProcessed": 0 }, "agent_4": { "status": "pending", "filesProcessed": 0 } } } - Monitor worker progress by checking
.cleanup-progress-agent-{ID}.jsonfiles - Wait for all workers to complete
- Execute Phase 3 (Result Merging)
-
Read
.cleanup-work-distribution.jsonto get assigned directories -
Create progress tracking file
.cleanup-progress-agent-{ID}.json:{ "agentId": 1, "status": "working", "assignedDirs": ["src/components", "src/screens"], "progress": { "totalFiles": 0, "processedFiles": 0, "currentFile": null }, "startTime": "2024-01-20T10:05:00Z" } -
For each assigned directory:
- Process all code files using the single-agent algorithm (steps 2.1-2.3)
- Before editing a file, create a lock file:
.cleanup-lock-{filename} - After editing, remove the lock file
- Update progress file after each file
-
Generate agent-specific checklist
COMMENT_CLEANUP_CHECKLIST_AGENT_{ID}.md -
Update final progress status:
{ "agentId": 1, "status": "completed", "assignedDirs": ["src/components", "src/screens"], "progress": { "totalFiles": 45, "processedFiles": 45, "currentFile": null }, "startTime": "2024-01-20T10:05:00Z", "endTime": "2024-01-20T10:15:00Z", "checklistFile": "COMMENT_CLEANUP_CHECKLIST_AGENT_1.md" }
-
Wait for all workers by monitoring their progress files
-
Merge all agent checklists:
- Read all
COMMENT_CLEANUP_CHECKLIST_AGENT_{ID}.mdfiles - Combine into single
COMMENT_CLEANUP_CHECKLIST.md - Sort entries by file path for consistency
- Preserve the checkbox states and retained comment details
- Read all
-
Clean up temporary files:
- Delete all
.cleanup-progress-agent-*.jsonfiles - Delete all
COMMENT_CLEANUP_CHECKLIST_AGENT_*.mdfiles - Delete
.cleanup-work-distribution.json - Delete
.cleanup-status.json - Ensure no
.cleanup-lock-*files remain
- Delete all
-
File-level locking:
- Before editing any file, check for
.cleanup-lock-{filename} - If lock exists, skip the file (another agent is working on it)
- Create lock before editing, remove after saving
- Before editing any file, check for
-
Directory ownership:
- Each worker only processes files in assigned directories
- Never process files outside assigned directories
- If a file import leads outside assigned dirs, note it but don't edit
-
Shared resource access:
- Only COORDINATOR writes to final
COMMENT_CLEANUP_CHECKLIST.md - Workers only write to their own
COMMENT_CLEANUP_CHECKLIST_AGENT_{ID}.md - Progress files are agent-specific, no sharing needed
- Only COORDINATOR writes to final
-
Worker failure:
- If a worker's progress file shows no update for >5 minutes, consider it failed
- COORDINATOR can reassign the failed worker's directories to itself
- Log the failure in the final checklist
-
Lock cleanup:
- If
.cleanup-lock-*files exist after all agents complete, remove them - Log any abandoned locks in the final checklist
- If
-
Partial completion:
- If interrupted, the work distribution and progress files allow resumption
- New execution should check for existing progress files and continue
-
Load balancing:
- Larger directories (like
src/components) may be split if very large - Monitor agent progress and reassign if significant imbalance
- Larger directories (like
-
Batching:
- Workers should process files in batches of 10-20 for progress updates
- Reduces I/O overhead from constant progress file updates
After completion, COORDINATOR should:
- Verify all source directories were processed
- Ensure no code files were missed
- Check that no lock files remain
- Validate the final checklist is complete
Used the prompt in my work Kotlin repo with CC Pro subscription and Opus 4 model.
It didn't behave as expected, with multiple tasks to be done in parallel
The worst thing was that he rewrote code and business logic, with no comments, refactored some code, and fixed code style in files.
400+ files were changed, which was impossible for me to review, so @cursor found business logic mistakes in PR.
Also, removed meaningful code that was commented out temporarily, like list items, scripts or it's part as disabled.
Pls, consider improving the prompt so that it does not delete meaningful comments and doesn't touch files w/o comments, and doesn't change code style.
Thanks for this example!