Skip to content
Back to skills

No Op Remover

ASecurity

Find and remove no-ops from instruction and prompt files — lines a model already obeys by default, so they burn context to say nothing. TRIGGER when the user says "remove no-ops", "strip no-ops", "hunt no-ops", "kill filler instructions", "tighten this prompt/skill", or asks to cut instructions that change no behavior. Scans SKILL.md, agent definitions, CLAUDE.md/AGENTS.md, prompt templates, and docs; proposes delete/strengthen fixes; applies only what the user approves. NOT for humanizing pr...

  • 2 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 3, 2026
ai-agentsbashgit

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add kbichave/deep-plan-enhanced --skill no-op-remover --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of No Op Remover?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for No Op Remover
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kbichave-no-op-remover/badge)](https://www.skillsdirectory.com/skills/kbichave-no-op-remover)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: no-op-remover
version: 1.0.0
description: |
  Find and remove no-ops from instruction and prompt files — lines a model
  already obeys by default, so they burn context to say nothing. TRIGGER when
  the user says "remove no-ops", "strip no-ops", "hunt no-ops", "kill filler
  instructions", "tighten this prompt/skill", or asks to cut instructions that
  change no behavior. Scans SKILL.md, agent definitions, CLAUDE.md/AGENTS.md,
  prompt templates, and docs; proposes delete/strengthen fixes; applies only
  what the user approves. NOT for humanizing prose (use humanizer) or for
  dead code in source files (use review-panel).
license: MIT
compatibility: claude-code opencode
allowed-tools:
  - Read
  - Edit
  - Grep
  - Glob
  - Bash
  - AskUserQuestion
---

# No-op Remover

Strip instructions a model already follows by default. Every such line costs
attention budget and buys nothing — deleting it makes the rules that DO change
behavior land harder.

## What a no-op is

A line whose presence versus absence produces the same model behavior. The
test for each line: **does it change what the model does versus the default?**
If not, it is a no-op.

| No-op (cut it) | Why it fails the test |
|---|---|
| "Be thorough." | The model is already thorough-ish; the word adds nothing. |
| "Think carefully before answering." | Default behavior. |
| "You are a helpful assistant." | Obeyed by default; states the obvious. |
| "Respond accurately and truthfully." | No model aims for the opposite. |
| "Please ensure high quality output." | Unfalsifiable, changes nothing. |
| "Use your best judgment." | Grants what the model already does. |

The fix is not always deletion. When a **weak leading word** is doing the
work, replace it with a stronger one rather than adding text:

- "be thorough" → "relentless"
- "try to be concise" → "one sentence, no preamble"
- "carefully review" → "re-read every changed line"

A line that names a concrete, non-default constraint is NOT a no-op — keep it:
"Cap the list at 5 items", "Output JSON only, no fences", "Never call the
network", "Ask before deleting files".

## Flow

### 1. Resolve scope

Determine what to scan:

- **User named a file** → that file.
- **User named a directory** → all in-scope files under it (recurse).
- **User named a repo / "this repo" / "everything"** → repo root, recurse.
- **User named a diff base** (`main`, a branch, "my changes") →
  `git diff <base> --name-only`, filter to in-scope types.
- **Bare invocation, no scope** → ask (AskUserQuestion): this file / this
  directory / whole repo / just my changes. Do not guess.

### 2. In-scope file types

Only instruction and prompt surfaces — where prose instructs a model or reader:

- `**/SKILL.md`, agent definitions (`agents/*.md`, `**/*.agent.md`)
- `CLAUDE.md`, `AGENTS.md`, hook-prompt files
- Prompt templates and inline model-instruction strings (`prompts/**`,
  `*.prompt`, `*.jinja`/`*.j2` used as prompts)
- `docs/**/*.md` and other instructional Markdown

Skip source logic, config, data, and lockfiles. List anything skipped with the
reason so scope is auditable.

### 3. Detect — sentence by sentence

Read each in-scope file in full. Run the no-op test on **each sentence in
isolation**, not just each line — no-ops hide mid-paragraph. For every hit
record: `file:line`, the verbatim sentence, the fix (delete, or the stronger
replacement word), and one clause on why it changes no behavior.

Flag every line you can argue the model already obeys. A line you are unsure
about is not a no-op — leave it.

### 4. Triage — propose, apply on approval

Deleting prose is destructive, so confirm before editing.

1. Present hits via AskUserQuestion, batched up to 4 per call, grouped by
   file. Each option shows `file:line`, the verbatim sentence, and the fix.
   Choices per hit:
   - **Delete** — remove the whole sentence (do not trim to fewer words).
   - **Strengthen** — apply the stronger-word replacement.
   - **Skip** — leave it.
   - **Edit** — user supplies their own replacement (via "Other"/notes).
2. Apply only approved edits, with the Edit tool. When deleting, remove the
   entire sentence and fix up surrounding whitespace/punctuation so the
   paragraph still reads. Never leave a dangling fragment.

### 5. Report

After applying, print a short summary: per file, how many no-ops found,
deleted, strengthened, skipped. Note the net line/character reduction. Show
the skipped list so nothing is silently dropped.

## Rules

1. Verbatim quote for every hit — never paraphrase what you are proposing to
   delete. If you cannot quote it from the file, it is not a real hit.
2. Delete whole sentences, not words. Trimming a no-op to a shorter no-op
   still pays load for nothing.
3. Strengthen weak leading words instead of adding qualifiers.
4. Concrete non-default constraints are never no-ops — keep every real rule.
5. Apply nothing without approval. This skill proposes; the user decides.
6. Stay in instruction/prompt files. Code comments and dead code are out of
   scope (route those to `review-panel`).

## Reference

The no-op test comes from Matt Pocock's `writing-great-skills`
(github.com/mattpocock/skills): "a line the model already obeys by default,
so you pay load to say nothing." This skill applies that test to a chosen
scope and gates every edit behind user approval.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.