shut-up-and-code

skill
Security Audit
Fail
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 8 GitHub stars
Code Fail
  • os.homedir — User home directory access in hooks/always-on.mjs
  • process.env — Environment variable access in hooks/always-on.mjs
  • os.homedir — User home directory access in hooks/audit-on-commit.mjs
  • process.env — Environment variable access in hooks/audit-on-commit.mjs
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Load-bearing comments only. Stops Claude Code narrating your code back to you in comments.

README.md

shut-up-and-code

Load-bearing comments only. A Claude Code plugin that stops the agent narrating your code back to you.

Claude comments reflexively. Most of what it writes restates the line below it, and a rule in CLAUDE.md doesn't reliably stop it. This ships that rule as a skill instead — as something Claude can load on its own, or that gets injected at the top of every session.

The difference

Before:

// Function to calculate the total price
function calculateTotal(items: Item[], taxRate: number): number {
  // Initialize the sum
  let sum = 0;
  // Loop through all the items
  for (const item of items) {
    // Add the item price to the sum
    sum += item.price;
  }
  // Apply the tax rate and return
  return sum * (1 + taxRate);
}

After:

function calculateTotal(items: Item[], taxRate: number): number {
  let sum = 0;
  for (const item of items) {
    sum += item.price;
  }
  return sum * (1 + taxRate);
}

Nothing was lost. That's the point.

Install

claude

Then, in the session:

/plugin marketplace add chl03ks/shut-up-and-code
/plugin install shut-up-and-code@shut-up-and-code

Two ways to use it

1. Call it. Type the skill name in any session:

/shut-up-and-code

It applies from there until the session ends. Claude will also reach for it on its own when it's about to write code.

2. Always-on. Create the flag file once, and the ruleset is injected at the start of every session — on startup, resume, clear, and compact:

touch ~/.claude/.shut-up-and-code-always

You'll know it's live because the session opens with:

SHUT UP AND CODE ACTIVE (always-on).

Turning it off

Scope How
This session Say normal comments
Always-on, permanently rm ~/.claude/.shut-up-and-code-always
Uninstall /plugin uninstall shut-up-and-code@shut-up-and-code

What it actually enforces

The default is no comment. A comment ships only if it's load-bearing — delete it, and a competent reader loses something the code cannot tell them. In practice, four kinds survive:

  1. Why, not what — a decision, tradeoff, or constraint the code can't express. // Retry 3x — the upstream 502s on cold start.
  2. A landmine — something that looks safe to change and isn't. // Set the auth header before reading the body.
  3. A pointer out of the file — a ticket, RFC, spec section, or upstream bug that explains the code's shape.
  4. A toolchain annotation// eslint-disable-next-line, # type: ignore, pragmas, codegen markers.

It also redirects the urge elsewhere: rename the variable, extract the function, write the test, put it in the commit message, or just say it in the chat reply. And it leaves comments in code you're only passing through alone — the rule governs what Claude writes, not a licence to strip your codebase.

Full ruleset: skills/shut-up-and-code/SKILL.md.

Why a skill and not a CLAUDE.md line

Verbose commenting is the model's default, and defaults beat instructions. People report CLAUDE.md rules, memory entries, and hooks all failing to suppress it (claude-code#65961). A skill lands as a loaded document at a point where the model is deciding how to write, which holds better than a line competing for attention with the rest of your config.

If you want the root-cause fix as well, some report that Opus gets a shorter system prompt than Sonnet, with the anti-verbosity rules trimmed out. Forcing the long one is one line in ~/.claude/settings.json:

{ "env": { "CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT": "0" } }

That's a community finding, not documented behaviour. The two stack.

Prior art

The always-on mechanism is lifted from i-have-adhd by Ayoub G., which does the same thing for response style rather than code. Same shape: a skill, a flag file, a SessionStart hook.

License

MIT

Reviews (0)

No results found