About no-comments
no-comments is a pstack skill for reviewing scoped code or diffs, removing comments judged unnecessary, and acting on accepted findings. It emphasizes checking reviewer reports and keeping the work within scope.
Key features
- 01Review scoped files or diffs
- 02Delegate a fresh comment review
- 03Validate findings and rerun rejected reports
- 04Remove accepted comment flags
- 05Report fixes and open issues
Use cases
- 01Review comments in a working-tree diff
- 02Audit lint and TypeScript suppressions
- 03Remove comments after checking their constraints
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ backnotprop/ pstack --skill no-commentsAfter installing, type/no-commentsin Claude Code to confirm it loaded.
Bundled filesreferences/comment-sicko.md
Details
From the project READMENo comments
Spawn Comment Sicko. Act on accepted findings.
Defer to Comment Sicko's fresh perspective.
Scope
Use the caller's files or diff. Otherwise use the current diff against the base branch, default main, including the working tree.
Steps
- Spawn
Taskwithsubagent_type: "comment-sicko". Pass the scope. Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section of the poteto-mode skill. Do not restate its rules. If your harness doesn't have comment-sicko registered as a subagent (any harness other than Cursor with the pstack plugin), spawn a general subagent instead:Agentin Claude Code (subagent_type: general-purpose),taskin OpenCode (subagent_type: general),spawn_agentin Codex. Its prompt isreferences/comment-sicko.mdverbatim, then the scope. If your harness has no subagent tool, as in Pi without an extension, run that prompt yourself in a fresh pass over the scope. - Inspect its report and diff. Reject application-code edits, scope escapes, exception-protected deletions, misstated
MUST KILLreasons, and flags that treat kept intentional code as guilty. Reshape flags on our-code surprises stay actionable. Do not restore those comments. A keep survives only with proof it is about something we cannot change. Audit missed scoped lint and TypeScript suppressions. Correctness or safety suppressions stay actionableMUST KILLs. Restore deletions only with exact exceptions and scoped proof. Before accepting thinIMPORTANTordo not removekills or keeps, run/howor/whyon their symbol. If a kill is ambiguous, do not restore. If a keep is refuted or still ambiguous, delete it, except aREVIEWkeep about an outside rule, which stays until someone checks that rule. Report it open. Revert and rerun one rejected report with the failure named. If you reject the rerun too, revert only its rejected findings, report them open, and go on with the accepted ones. - Fix trivial accepted flags directly by deleting a dead path, dropping a parameter, or using the real API. If any fix needs a shape, run
/architectonce for the accepted set and surrounding code. Stop at the sketch. Architect shapes. Step 4 implements. - Implement the smallest root-cause fix in scope. Remove every named workaround. If the root cause is out of scope, land the smallest in-scope fix and report the rest open. The principle-fix-root-causes and principle-redesign-from-first-principles skills guide intent only. Neither authorizes widening the fence nor fixing instances outside it. Never bolt on symptom guards.
- Constraint comments say
do not remove,do not change wording, ortalk to X before changing. Leave keeps about things we cannot change. Offer the cheapest in-scope type, runtime, test, or CI lint. Wait for interactive approval. Unattended and eval require caller pre-approval. If approved, encode then delete. Otherwise delete, report the constraint open, and sketch out-of-scope work. - Report the deletion count, restored comments,
REVIEWkeeps, reruns, architect sketch, fixes, encoding offers, encodings, unenforced constraints, and other open work.
Comments
Markdown supported