techygarg/skill-tighten
Audit any Lattice SKILL.md for language compliance — removes rationale prose, converts soft language to imperatives, adds STOP: gates on hard rules, and cuts redundant repetition. Complements skill-review (which finds behavioral gaps) by fixing phrasing that causes agents to skip or underweight instructions at runtime. Use after writing or significantly changing any skill, or when the user says 'tighten this skill', 'clean up the language', 'make this more effective', 'reduce the bloat', 'tighten the language', or 'skill tighten'. Standalone — does not call other skills.
npx skills add https://github.com/techygarg/lattice --skill skill-tighten
Core responsibility: Fix language that causes agents to skip or underweight instructions. Not behavioral gaps — that is skill-review's job. Only phrasing: rationale prose, soft language, missing enforcement signals, redundant repetition.
Input: One or more of:
skills/atoms/clean-code/SKILL.mdclean-code (resolves to the correct path automatically)atoms (tightens all skills in that tier)Output: Edited files + a report per skill:
## skill-tighten — {skill-name}
Lines: {before} → {after}
Changes:
1. {what changed} — {one-line reason}
2. ...
Result: TIGHTENED ({N} changes) | CLEAN (no changes needed)
How to verify this skill did its job:
Read the full SKILL.md. Also read all sibling files: references/defaults.md, references/methodology-detail.md, assets/template.md, or any file referenced by a Read instruction in the skill body.
Do not edit yet — complete the full audit first.
For each item, scan the entire file. Mark every instance found — do not stop at the first.
Sections that explain why the skill exists, describe the problem, or narrate context without issuing a single command. Cut the entire section. Preserve the pointer to a referenced file if one exists.
Patterns that always qualify:
Pass: Section contains at least one imperative instruction (do, read, write, verify, check, apply, stop, flag).
Fail: Section contains only declarative statements, rationale, or scope commentary.
Words and phrases that agents treat as optional:
| Pattern | Replace with |
|---|---|
| consider X | X (imperative) or remove |
| think about X | remove |
| you may want to X | remove |
| it is recommended to X | X |
| should (as soft suggestion) | must or remove |
| try to X | X |
| where possible, X | X or remove |
Pass: Instruction is an imperative verb with no hedging qualifier.
Fail: Instruction contains any of the patterns above.
Hard rules that must not be skipped — gates on advancing to next steps, checklist preambles, non-negotiable constraints — stated as bold prose without a STOP: prefix.
Pass: Hard gate reads STOP: as the first token of its line or sentence.
Fail: Hard gate is phrased as "Do NOT...", "Never...", "Always verify...", "Must not..." without the STOP: prefix.
Add STOP: prefix. Do not rewrite the instruction itself.
The same point stated twice in different words. Keep the sharper version; cut the other.
Patterns:
Pass: Each statement appears once in its sharpest form.
Fail: Two sentences convey the same instruction or the same constraint.
Columns whose content explains why a trigger exists, rather than being the trigger.
Common offenders: columns titled "Why", "Reason", "Rationale", "Because", "Notes" in a table whose other columns already encode the actionable information.
Pass: Every column in the table is actionable — the agent does something with it.
Fail: A column contains only explanatory prose the agent reads but cannot act on.
Drop the column. Do not drop the row.
Sentences appended to a clear instruction that explain why the instruction exists. The instruction is already sufficient — the explanation adds tokens without adding compliance.
Patterns:
Pass: Instruction ends at the action. No trailing explanation.
Fail: Instruction is followed by a sentence that begins with "This", "Without", "Because", or restates the consequence of not following the instruction.
Apply all findings. Edits in order of checklist item (T1 first, T6 last) — structural cuts before phrasing fixes.
Rules:
STOP: as a prefix — do not rewrite the surrounding instructionAfter all edits:
## skill-tighten — {skill-name}
Lines: {before} → {after} ({delta})
Files changed: SKILL.md [, defaults.md, ...]
Changes:
1. [T1] Cut "{section name}" — no commands, pure rationale
2. [T3] Added STOP: to "{rule}" — was bold prose, now enforced gate
3. [T5] Dropped "Reason" column from {table name} — rationale, not instruction
...
Result: TIGHTENED ({N} changes)
If no changes needed:
Result: CLEAN — no language compliance issues found
Take techygarg/skill-tighten from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.