/lean:tighten
Tighten specified files in the working tree and print a diff. Never
commits, never pushes, never requires a clean tree, never scans
repo-wide.
This skill is invoked by name, never routed to on the model’s initiative: it edits files,
so it must be user-explicit.
Difference from /slop:scan
Use /lean:tighten when
The slop is in files you are actively editing and you want a quick
in-place tidy with a diff to review — no commit ceremony, dirty tree
fine.
Use /slop:scan when
You want repo-wide coverage with one reviewable, revertable commit per
finding, on a clean tree.
$ARGUMENTS
paths/globs — files to tighten (via git ls-files -- <glob> when
tracked, else literal paths).
--stdin — tighten a pasted draft read from stdin instead of files;
print the tightened text and edit nothing.
--gates — after editing, run the project's discovered
format/lint/typecheck once and report. Never commits.
--diff-only — show what would change without editing.
If $ARGUMENTS is empty, ask which files via AskUserQuestion.
Steps
- Resolve targets. Expand paths/globs, or read stdin with
--stdin. Reject an empty target set with a clear message.
- Load the rubric and voice. Read
../../references/lean-rubric.md, then ./AGENTS.md
and ./CLAUDE.md for the host's rubric and accepted voice. For
--gates, take the format/lint/typecheck commands from a checks
section in those files; if none is defined, skip gates.
- Detect. Flag slop per the rubric — AI signatures, brittle
references, diff narration, prose inflation, coded labels, and
tables where prose reads cleaner. Preserve every load-bearing
reference and "why" comment.
- Preview and confirm. Show the proposed edits and confirm via
AskUserQuestion before writing; the preview and the printed diff
(Step 6) are the review surface. Skip when --diff-only.
- Apply in place. Use
Edit. Replacements must be concrete and
shorter than the original.
- Diff. Print
git diff -- <targets>. With --gates, run the
discovered checks once and report; commit on neither pass nor fail.
- Report and hand off. Summarize findings resolved and skipped,
then offer next steps via
AskUserQuestion: commit with /commit,
run /slop:scan for repo-wide coverage, or discard the edits —
review the printed diff first, since git checkout -- <file> resets
the whole file to HEAD and drops any other uncommitted work in it.
What this does not do
- Commit or push — you decide; use
/commit.
- Rewrite history — that is
/pr:deslop.
- Scan the whole repo — that is
/slop:scan.
- Delete whole files — too consequential; report them instead.
1---2name: tighten3description: Use when tightening named files or pasted text in place by removing verbose prose, brittle references, and low-value noise.4---567# `/lean:tighten`89Tighten specified files in the working tree and print a diff. Never10commits, never pushes, never requires a clean tree, never scans11repo-wide.1213This skill is invoked by name, never routed to on the model’s initiative: it edits files,14so it must be user-explicit.1516## Difference from `/slop:scan`1718### Use `/lean:tighten` when1920The slop is in files you are actively editing and you want a quick21in-place tidy with a diff to review — no commit ceremony, dirty tree22fine.2324### Use `/slop:scan` when2526You want repo-wide coverage with one reviewable, revertable commit per27finding, on a clean tree.2829## `$ARGUMENTS`3031- `paths/globs` — files to tighten (via `git ls-files -- <glob>` when32 tracked, else literal paths).33- `--stdin` — tighten a pasted draft read from stdin instead of files;34 print the tightened text and edit nothing.35- `--gates` — after editing, run the project's discovered36 format/lint/typecheck once and report. Never commits.37- `--diff-only` — show what would change without editing.3839If `$ARGUMENTS` is empty, ask which files via `AskUserQuestion`.4041## Steps42431. **Resolve targets.** Expand paths/globs, or read stdin with44 `--stdin`. Reject an empty target set with a clear message.452. **Load the rubric and voice.** Read46 `../../references/lean-rubric.md`, then `./AGENTS.md`47 and `./CLAUDE.md` for the host's rubric and accepted voice. For48 `--gates`, take the format/lint/typecheck commands from a checks49 section in those files; if none is defined, skip gates.503. **Detect.** Flag slop per the rubric — AI signatures, brittle51 references, diff narration, prose inflation, coded labels, and52 tables where prose reads cleaner. Preserve every load-bearing53 reference and "why" comment.544. **Preview and confirm.** Show the proposed edits and confirm via55 `AskUserQuestion` before writing; the preview and the printed diff56 (Step 6) are the review surface. Skip when `--diff-only`.575. **Apply in place.** Use `Edit`. Replacements must be concrete and58 shorter than the original.596. **Diff.** Print `git diff -- <targets>`. With `--gates`, run the60 discovered checks once and report; commit on neither pass nor fail.617. **Report and hand off.** Summarize findings resolved and skipped,62 then offer next steps via `AskUserQuestion`: commit with `/commit`,63 run `/slop:scan` for repo-wide coverage, or discard the edits —64 review the printed diff first, since `git checkout -- <file>` resets65 the whole file to HEAD and drops any other uncommitted work in it.6667## What this does not do6869- Commit or push — you decide; use `/commit`.70- Rewrite history — that is `/pr:deslop`.71- Scan the whole repo — that is `/slop:scan`.72- Delete whole files — too consequential; report them instead.