--- name: no-comments description: Review unnecessary comments in the current diff by default, or in explicitly named files or the whole project. Fix accepted findings and offer constraint encodings. license: MIT --- ## Host integration Read [the Hapstack runtime contract](../hap-mode/references/runtime.md) once per task before model selection, delegation, external actions, or scheduling. Its host mappings and authorization rules govern the host-specific steps below. # No 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. An explicit whole-project request includes unchanged source files. Local files do not need to be committed to be in scope. Exclude generated files, dependencies, and vendored code unless explicitly included. Before starting, state which scope will be inspected. If the default diff is empty, say that no files were inspected and that this establishes nothing about comments in existing code. Give the invocation `no-comments on the entire project, including unchanged files` for that scope. Never report an empty diff as a project with no comments, and do not silently expand a diff request into project-wide edits. ## Steps 1. Spawn `Task` with `subagent_type: "comment-sicko"`. Pass the scope. Do not restate its rules. 2. Inspect its report and diff. Reject application-code edits, scope escapes, exception-protected deletions, misstated `MUST KILL` reasons, 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 actionable `MUST KILL`s. Restore deletions only with exact exceptions and scoped proof. Before accepting thin `IMPORTANT` or `do not remove` kills or keeps, run `/how` or `/why` on their symbol. If a kill is ambiguous, do not restore. If a keep is refuted or still ambiguous, delete it. Revert and rerun one rejected report with the failure named. Reject a second, report it open, and fail `/no-comments`. 3. 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 `/architect` once for the accepted set and surrounding code. Stop at the sketch. Architect shapes. Step 4 implements. 4. 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. 5. Constraint comments say `do not remove`, `do not change wording`, or `talk 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. 6. Report the deletion count, restored comments, reruns, architect sketch, fixes, encoding offers, encodings, unenforced constraints, and other open work.