Analyze and fix redundant or self-explanatory inline comments — remove noise, promote genuine documentation to TSDoc
64
77%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/you-might-not-need-a-comment/SKILL.mdArguments:
User arguments: $ARGUMENTS
A comment must add information the code cannot express itself. Code says what and how; a comment earns its place only by explaining why — a non-obvious constraint, a workaround, a decision, a gotcha. If deleting the comment loses no information a competent reader wouldn't recover from the code in seconds, delete it.
This codebase's convention: TSDoc for documentation, no non-TSDoc comments, no ==== separators. Genuine documentation belongs in a /** ... */ block on the declaration; everything that survives as an inline // comment must be a real why, kept terse.
// increment counter above counter++, // return the result above return result, // loop over items. Delete.fetchUserById, the comment says // fetches a user by id. The identifier already said it. Delete.// ==== Helpers ====, // --- state ---, // #region. Against convention. Delete (the code's structure is the structure).// takes a string and returns a number when the signature already says so. Delete.// added by X, // TODO(2021): ... long-stale, // fix for bug. Delete unless it encodes a live, actionable constraint.// block on a declaration: a real explanation of what an exported function/type/const is for, but written as stacked // lines instead of TSDoc. Convert to a /** ... */ TSDoc block on the declaration.// comment that explains a non-obvious why: a workaround for an upstream bug, an ordering constraint, a perf reason, a spec/edge-case the code can't self-document (// first-match wins — matches the old find() semantics)./** ... */ blocks on declarations — leave them (only tighten if verbose).// boundary-raw-fetch:, // double-cast-allowed:, // boundary-raw-json:, // untyped-response:, // migration-safe: and other machine-read annotations — these are load-bearing, never touch them.// biome-ignore, // eslint-disable, // @ts-expect-error and other tooling directives.// TODO / // FIXME that point at real, still-open work.Prefer deletion over rewriting, and no comment over a comment when the code is already clear. When a comment is genuine documentation, prefer promoting it to terse TSDoc over leaving a loose // block. Never add new comments in this pass — this is a reduction pass. When unsure whether a comment encodes a real why, keep it.
6f514c1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.