artifact-clarity-pass — cut AI slop down to real signal
Take verbose, generic, hedged, over-explained output and tighten it to what actually
carries meaning. The job is subtraction with judgment: remove the filler, keep every
load-bearing word, fact, edge case, and caveat.
⚠️ Critical Constraints
Never cut meaning to cut words. Slop is text that carries no information. A real
caveat, edge case, or constraint is signal — keep it even if it's long.
Why: the failure mode of de-slopification is deleting a load-bearing "but only if X"
along with the fluff around it. Removing words is easy; knowing which words mattered is
the whole skill.
- WRONG: cut "Note that this fails silently if the file is missing" (lost a real edge case)
- CORRECT: cut "It's worth noting that, generally speaking, in most cases" (pure filler)
Preserve the author's voice and intent, not just the facts. Tightening is not
rewriting in your own register. Why: a "de-slopified" doc that now sounds like a
different (still-generic) AI is just re-slopped. Keep their terms, structure, and point —
remove only the padding around them.
Code comments: cut the ones that restate the code; keep the ones that explain why.
Why: // increment i is slop; // off-by-one: API returns 1-indexed pages is signal.
- WRONG: delete
// retry on 429 — provider rate-limits bursts above 10/s
- CORRECT: delete
// loop over the items above for item in items:
Show the cut, don't just make it. Report what was removed and why so the human can
veto. Why: subtraction feels irreversible; the author must be able to restore a cut
you misjudged.
Why This Exists
LLM output trends toward a recognizable texture: hedged, padded, structurally symmetric,
front-loaded with throat-clearing, comment-stuffed, and generic. It reads "fine" and says
little. Left in, it inflates token cost, buries the real point, and signals "an AI wrote
this and nobody read it." Humans rarely cut their own drafts hard enough; an explicit pass
with a checklist of known slop patterns removes far more than ad-hoc editing — without the
over-correction of deleting substance.
Quick Start
- Read the target (code or prose) in full first. Identify the core claim / behavior —
what would be lost if this disappeared.
- Run the slop taxonomy below as a checklist. Mark each candidate cut.
- For each cut, apply the keep-test: does removing this change what a reader can now
do or know? If yes, it's signal — keep. If no, cut.
- Produce the tightened version + the slop-removal report (
## Output Specification).
The Slop Taxonomy (detect these)
Prose slop
- Throat-clearing openers: "It's important to note that", "It's worth mentioning",
"In today's fast-paced world", "When it comes to X". Delete; start at the claim.
- Hedge stacking: "may potentially", "could possibly", "generally tends to often".
Collapse to one hedge or none. Keep a hedge only where the uncertainty is real and load-bearing.
- Filler intensifiers: "very", "really", "quite", "truly", "actually", "basically",
"simply", "just". Delete unless the word changes the meaning.
- Restating the prompt / obvious framing: "As you requested, here is…", "This document
will cover…". Delete; the content is self-evidently the answer.
- Symmetric padding: forced "Firstly… Secondly… In conclusion" scaffolds and a summary
that repeats the body verbatim. Keep structure only where it aids navigation; cut the
recap that adds nothing.
- Generic value-claims: "this is a powerful tool that can help you", "leverage the full
potential". Replace with the specific capability or delete.
- Over-explanation of the obvious: explaining a well-known term to an audience that
already knows it. Cut to the level the actual reader needs.
Code slop
- Comments that restate code:
// set x to 5, # return the result. Delete.
- Redundant docstrings that re-spell the signature with no contract, units, or failure
modes. Delete or replace with the real contract.
- Defensive boilerplate that can't trigger: null checks on type-guaranteed values,
try/except around code that doesn't throw. Delete (after verifying it truly can't fire).
- Ceremony: needless intermediate variables, no-logic getters/setters, single-call
wrapper functions that add a hop and no clarity. Inline.
- Dead scaffolding: leftover TODO/placeholder comments, commented-out code, example
blocks that duplicate real usage. Delete.
The hard cases (escalate to the keep-test, don't auto-cut): a comment that looks
redundant but encodes a why; a hedge that's actually a real caveat; a "verbose"
explanation aimed at a genuinely novice reader; defensive code guarding a real-world
input. When unsure, keep it and flag it in the report rather than cut.
Methodology
Phase 1 — Map the signal. Read fully; note the core claim/behavior and every real
caveat, edge case, constraint, and "why". These are protected.
→ Checkpoint: you can state in one sentence what this text/code does. If not, re-read
before cutting.
Phase 2 — Mark candidates. Walk the taxonomy. Mark every slop candidate without yet
deleting. Marking is cheap; mis-deleting is expensive.
Phase 3 — Apply the keep-test to each candidate. Cut only what fails it (removing it
changes nothing a reader can do or know). Borderline → keep + flag.
→ Checkpoint: re-read the Phase-1 protected items; confirm none were swept up.
Phase 4 — Tighten what remains. Merge sentences that say one thing in three. Replace
generic phrasing with the specific. Do not introduce new claims or change behavior.
Phase 5 — Emit. Produce the tightened artifact + the report. Diff-check: meaning,
behavior, and voice intact; only padding gone.
Output Specification
Two outputs:
- The tightened text/code, edited in place (or returned inline if asked).
- A slop-removal report (inline, or
artifact-clarity-pass-report.md if a file is requested):## De-slop report
- removed: <category> — "<excerpt>" (reason: pure filler / restates code / dead)
- kept (flagged): "<excerpt>" — looked like slop but is a real caveat
Net: <N> cuts, ~<M> words/lines removed. Meaning & behavior unchanged.
Quality Rubric
- Zero meaning loss: every fact, edge case, caveat, and behavior in the original is
present in the output (verify by diffing the Phase-1 protected list against the result).
- Real reduction: measurable cut in word/line count, with each cut traceable to a slop
category in the report (not vibes).
- Voice preserved: the output reads like a tightened version of the same author, not a
new generic rewrite (spot-check terms and structure against the source).
- Code unchanged in behavior: if code was touched, it still compiles/passes its tests;
only comments, dead branches, and ceremony were removed.
Examples
Prose — before:
It's worth noting that, generally speaking, this function is a really powerful and useful
tool that can potentially help you to validate user input in most cases.
After:
Validates user input. Returns false on empty or malformed values.
(Cut throat-clearing + hedges + generic value-claim; surfaced the one specific fact — its
contract — that the original buried.)
Code — before:
# This function adds two numbers together and returns the result
def add(a, b):
# store the sum in a variable
result = a + b
return result # return it
After:
def add(a, b):
return a + b
Keep-test save — before:
total = total + 1 # API pages are 1-indexed, not 0
After: unchanged. The comment explains a why (a real off-by-one trap), not the code.
Troubleshooting
| Symptom |
Cause |
Fix |
| Output now means less than the original |
Cut a load-bearing caveat/edge case |
Re-run Phase 1; restore protected items; re-apply keep-test |
| Output sounds like a different author |
Rewrote instead of subtracting |
Revert to source; cut padding only, keep their terms/structure |
| Code broke after the pass |
Deleted a guard that could trigger |
Restore the guard; only cut defensive code proven unreachable |
| "Nothing to cut" on obviously bloated text |
Treated padding as content |
Apply the keep-test aggressively: padding fails it by definition |
| Over-cut a beginner doc |
Ignored the real audience |
Set cut depth to the actual reader's level, not an expert's |
See Also
standards — the shared kernel for the code/prose quality conventions this skill enforces.
bug-hunt — when tightening reveals a logic problem under the slop, not just verbosity.
1---2name: artifact-clarity-pass-23description: Use when removing generic filler from code, docs, or handoffs while preserving every load-bearing fact. Triggers:4---5
6# artifact-clarity-pass — cut AI slop down to real signal
7
8Take verbose, generic, hedged, over-explained output and tighten it to what actually
9carries meaning. The job is subtraction with judgment: remove the filler, keep every
10load-bearing word, fact, edge case, and caveat.
11
12## ⚠️ Critical Constraints
13
14- **Never cut meaning to cut words.** Slop is text that carries no information. A real
15 caveat, edge case, or constraint is signal — keep it even if it's long.
16 **Why:** the failure mode of de-slopification is deleting a load-bearing "but only if X"
17 along with the fluff around it. Removing words is easy; knowing which words mattered is
18 the whole skill.
19 - WRONG: cut "Note that this fails silently if the file is missing" (lost a real edge case)
20 - CORRECT: cut "It's worth noting that, generally speaking, in most cases" (pure filler)
21
22- **Preserve the author's voice and intent, not just the facts.** Tightening is not
23 rewriting in your own register. **Why:** a "de-slopified" doc that now sounds like a
24 different (still-generic) AI is just re-slopped. Keep their terms, structure, and point —
25 remove only the padding around them.
26
27- **Code comments: cut the ones that restate the code; keep the ones that explain *why*.**
28 **Why:** `// increment i` is slop; `// off-by-one: API returns 1-indexed pages` is signal.
29 - WRONG: delete `// retry on 429 — provider rate-limits bursts above 10/s`
30 - CORRECT: delete `// loop over the items` above `for item in items:`
31
32- **Show the cut, don't just make it.** Report what was removed and why so the human can
33 veto. **Why:** subtraction feels irreversible; the author must be able to restore a cut
34 you misjudged.
35
36## Why This Exists
37
38LLM output trends toward a recognizable texture: hedged, padded, structurally symmetric,
39front-loaded with throat-clearing, comment-stuffed, and generic. It reads "fine" and says
40little. Left in, it inflates token cost, buries the real point, and signals "an AI wrote
41this and nobody read it." Humans rarely cut their own drafts hard enough; an explicit pass
42with a checklist of known slop patterns removes far more than ad-hoc editing — without the
43over-correction of deleting substance.
44
45## Quick Start
46
471. Read the target (code or prose) in full first. Identify the **core claim / behavior** —
48 what would be lost if this disappeared.
492. Run the slop taxonomy below as a checklist. Mark each candidate cut.
503. For each cut, apply the **keep-test**: *does removing this change what a reader can now
51 do or know?* If yes, it's signal — keep. If no, cut.
524. Produce the tightened version + the slop-removal report (`## Output Specification`).
53
54## The Slop Taxonomy (detect these)
55
56### Prose slop
57- **Throat-clearing openers:** "It's important to note that", "It's worth mentioning",
58 "In today's fast-paced world", "When it comes to X". Delete; start at the claim.
59- **Hedge stacking:** "may potentially", "could possibly", "generally tends to often".
60 Collapse to one hedge or none. Keep a hedge only where the uncertainty is real and load-bearing.
61- **Filler intensifiers:** "very", "really", "quite", "truly", "actually", "basically",
62 "simply", "just". Delete unless the word changes the meaning.
63- **Restating the prompt / obvious framing:** "As you requested, here is…", "This document
64 will cover…". Delete; the content is self-evidently the answer.
65- **Symmetric padding:** forced "Firstly… Secondly… In conclusion" scaffolds and a summary
66 that repeats the body verbatim. Keep structure only where it aids navigation; cut the
67 recap that adds nothing.
68- **Generic value-claims:** "this is a powerful tool that can help you", "leverage the full
69 potential". Replace with the specific capability or delete.
70- **Over-explanation of the obvious:** explaining a well-known term to an audience that
71 already knows it. Cut to the level the actual reader needs.
72
73### Code slop
74- **Comments that restate code:** `// set x to 5`, `# return the result`. Delete.
75- **Redundant docstrings** that re-spell the signature with no contract, units, or failure
76 modes. Delete or replace with the real contract.
77- **Defensive boilerplate that can't trigger:** null checks on type-guaranteed values,
78 try/except around code that doesn't throw. Delete (after verifying it truly can't fire).
79- **Ceremony:** needless intermediate variables, no-logic getters/setters, single-call
80 wrapper functions that add a hop and no clarity. Inline.
81- **Dead scaffolding:** leftover TODO/placeholder comments, commented-out code, example
82 blocks that duplicate real usage. Delete.
83
84> **The hard cases (escalate to the keep-test, don't auto-cut):** a comment that looks
85> redundant but encodes a *why*; a hedge that's actually a real caveat; a "verbose"
86> explanation aimed at a genuinely novice reader; defensive code guarding a real-world
87> input. When unsure, keep it and flag it in the report rather than cut.
88
89## Methodology
90
91**Phase 1 — Map the signal.** Read fully; note the core claim/behavior and every real
92caveat, edge case, constraint, and "why". These are protected.
93→ *Checkpoint:* you can state in one sentence what this text/code does. If not, re-read
94before cutting.
95
96**Phase 2 — Mark candidates.** Walk the taxonomy. Mark every slop candidate without yet
97deleting. Marking is cheap; mis-deleting is expensive.
98
99**Phase 3 — Apply the keep-test to each candidate.** Cut only what fails it (removing it
100changes nothing a reader can do or know). Borderline → keep + flag.
101→ *Checkpoint:* re-read the Phase-1 protected items; confirm none were swept up.
102
103**Phase 4 — Tighten what remains.** Merge sentences that say one thing in three. Replace
104generic phrasing with the specific. Do not introduce new claims or change behavior.
105
106**Phase 5 — Emit.** Produce the tightened artifact + the report. Diff-check: meaning,
107behavior, and voice intact; only padding gone.
108
109## Output Specification
110
111Two outputs:
1121. **The tightened text/code**, edited in place (or returned inline if asked).
1132. **A slop-removal report** (inline, or `artifact-clarity-pass-report.md` if a file is requested):
114 ```
115 ## De-slop report
116 - removed: <category> — "<excerpt>" (reason: pure filler / restates code / dead)
117 - kept (flagged): "<excerpt>" — looked like slop but is a real caveat
118 Net: <N> cuts, ~<M> words/lines removed. Meaning & behavior unchanged.
119 ```
120
121## Quality Rubric
122
123- **Zero meaning loss:** every fact, edge case, caveat, and behavior in the original is
124 present in the output (verify by diffing the Phase-1 protected list against the result).
125- **Real reduction:** measurable cut in word/line count, with each cut traceable to a slop
126 category in the report (not vibes).
127- **Voice preserved:** the output reads like a tightened version of the *same* author, not a
128 new generic rewrite (spot-check terms and structure against the source).
129- **Code unchanged in behavior:** if code was touched, it still compiles/passes its tests;
130 only comments, dead branches, and ceremony were removed.
131
132## Examples
133
134**Prose — before:**
135> It's worth noting that, generally speaking, this function is a really powerful and useful
136> tool that can potentially help you to validate user input in most cases.
137
138**After:**
139> Validates user input. Returns false on empty or malformed values.
140
141*(Cut throat-clearing + hedges + generic value-claim; surfaced the one specific fact — its
142contract — that the original buried.)*
143
144**Code — before:**
145```python
146# This function adds two numbers together and returns the result
147def add(a, b):
148 # store the sum in a variable
149 result = a + b
150 return result # return it
151```
152**After:**
153```python
154def add(a, b):
155 return a + b
156```
157
158**Keep-test save — before:**
159```python
160total = total + 1 # API pages are 1-indexed, not 0
161```
162**After:** unchanged. The comment explains a *why* (a real off-by-one trap), not the code.
163
164## Troubleshooting
165
166| Symptom | Cause | Fix |
167|---|---|---|
168| Output now means less than the original | Cut a load-bearing caveat/edge case | Re-run Phase 1; restore protected items; re-apply keep-test |
169| Output sounds like a different author | Rewrote instead of subtracting | Revert to source; cut padding only, keep their terms/structure |
170| Code broke after the pass | Deleted a guard that *could* trigger | Restore the guard; only cut defensive code proven unreachable |
171| "Nothing to cut" on obviously bloated text | Treated padding as content | Apply the keep-test aggressively: padding fails it by definition |
172| Over-cut a beginner doc | Ignored the real audience | Set cut depth to the actual reader's level, not an expert's |
173
174## See Also
175
176- `standards` — the shared kernel for the code/prose quality conventions this skill enforces.
177- `bug-hunt` — when tightening reveals a logic problem under the slop, not just verbosity.