agents/openai.yaml
interface: display_name: "Stop Slop" short_description: "Remove machine-written tells from durable prose" default_prompt: "Use $stop-slop to clean up this text."
jssblck/agents · GitHub
Use for durable prose artifacts: docs, README, release notes, UI copy, comments, commit messages, PR/issue text. Skip ordinary chat replies.
프로젝트 폴더에서 아래 명령어를 실행하고, 설치할 에이전트를 선택하세요.
npx skills add jssblck/agents --skill stop-slop설치 명령을 직접 실행해야 적용됩니다. 지원 에이전트와 필요한 권한·라이선스는 제작자의 안내를 확인하세요.
agents/openai.yamlinterface: display_name: "Stop Slop" short_description: "Remove machine-written tells from durable prose" default_prompt: "Use $stop-slop to clean up this text."
references/examples.md# Before and after
Rewrites from a real product landing page. Each pairs a tell with a fix and
shows what was dropped (rhetoric) and what was kept (every fact). Read these as
the voice anchor: plain, specific, mechanism-forward.
## Hero
Before:
> A merge gate you govern, not a bot you tolerate.
> Most AI reviewers are one opaque model you hope behaves. Bastion is a registry
> of small, single-concern reviewers you author and govern, and a gate that
> blocks when it can't be sure.
After:
> A merge gate built from small reviewers you write and own.
> Most AI reviewers hand the whole diff to one model. Bastion splits review into
> many narrow reviewers, each checking exactly one concern. They run in parallel
> and aggregate into one verdict; the gate blocks whenever any reviewer can't
> return a clean pass. You author them, version them in your repo, and run them
> on your own infrastructure.
Dropped: the "govern, not tolerate" antithesis and the "opaque model you hope
behaves" sneer. Kept: the real one-model-versus-many contrast and the
fail-closed mechanic, now stated as behavior.
## The virtue-framing section
Before:
> We'd rather block than pretend.
> Bastion is early software and evolving fast. The runner, the gate, and the
> Claude Code and Codex backends execute reviewers for real, and anything not
> yet wired fails closed rather than pretending. An unimplemented reviewer never
> claims to have reviewed anything. That honesty is the whole point of a gate.
After:
> Early software, fails closed.
> Bastion is early and moving fast. The runner, the gate, and the Claude Code
> and Codex backends run reviewers for real. Anything not yet implemented returns
> block instead of pass, so an unfinished backend can't wave code through by
> claiming a review it never ran.
Dropped: "we'd rather block than pretend" and "that honesty is the whole point".
Kept: the same disclosure. The candor of the plain sentence performs the honesty
the deleted lines were asserting.
## The recall section (aphorism closer)
Before:
> One checklist stretched across everything. The more you ask, the less it
> catches.
After:
> One checklist stretched across everything; each concern gets a fraction of the
> model's attention.
Dropped: the "the more you ask, the less it catches" maxim. Kept: the mechanism,
which is what the maxim was gesturing at anyway.
## The governance points (maxim + triad)
Before:
> The registry is the artifact. Review it, version it, own it.
After: cut entirely. The surrounding sentence ("any PR that weakens the gate
shows up as a diff a human must approve") already states the mechanic, so the
"review it, version it, own it" triad added rhythm and no information.
## Section headers (uniform fragments)
Before, read as a list: "Fails closed." / "Declarative and static." /
"Composable and parallel." / "Inspectable, not just trusted." Every one a clipped
declarative with a terminal period.
After: varied. "How the gate aggregates" (plain noun phrase), "Declarative and
static" (period dropped), "Open source and self-hostable." Kept "Gates block.
Advisors comment." because that pair is a real opposed contrast, not a
manufactured one.
## What stayed exactly as it was
The verdict and aggregation tables, the reviewer registry table, the recall
graphic, every code block and CLI example, and the two real opposed pairs
("gates block, advisors comment" and "gates fail closed, advisors fail open").
Deslopping is a prose edit. It does not touch data, code, or the contrasts that
name real, distinct behaviors.
references/phrases.md# Lexical tells (a backstop, not the main event) The structural tells in `structures.md` matter more than any wordlist. Vocabulary is the easy 20%: a word swap does not fix sloppy rhythm, and clean rhythm survives the occasional flagged word. Use this list as a deterministic backstop (the kind a Vale `reject.txt` enforces in CI), not as the definition of slop. ## Words and phrases that signal the register Reach-for-grandeur nouns and adjectives: - delve, tapestry, realm, landscape, ecosystem, world (as in "in today's world") - seamless, seamlessly, effortless, robust, powerful, cutting-edge, state-of-the-art, best-in-class, next-generation - game-changer, revolutionize, unlock, supercharge, elevate, empower - bespoke, curated, crafted, meticulous, holistic Filler intensifiers and hedges that pad without adding: - truly, simply, easily, quickly, incredibly, remarkably, notably, ultimately - "it is worth noting that", "it is important to remember", "needless to say" - "at the end of the day", "when it comes to", "in order to" (usually just "to") Connective scaffolding used on autopilot: - moreover, furthermore, additionally, that being said, with that said - "whether you are X or Y" (the fake-inclusive opener) - "not only ... but also" (often a manufactured antithesis in disguise) Closing-paragraph tells: - "In conclusion", "In summary", "Ultimately, the key takeaway is" - "the possibilities are endless", "the only limit is your imagination" ## Punctuation and typography - Em dashes and en dashes, and the literal `--` used as a dash in prose. This project writes plain ASCII: recast with a comma, a colon, parentheses, or two sentences. Leave `--flag` forms inside commands and code alone. - Curly or "smart" quotes in source text where ASCII quotes are the house style. - The Oxford-comma rule-of-three list (see triadic parallelism in `structures.md`); the list is the structural tell, the commas are just where it shows. ## How to use this list Flagging a word is a prompt to look, not a verdict. "Robust" in "the installer fails closed on any checksum problem, which makes it robust" is slop (delete the clause). "Robust" inside a quoted error message is not yours to touch. Judge the sentence, not the token.
references/structures.md# The structural tells, in depth
Each tell below has the same shape: what it is, why a model reaches for it, a
kill-or-keep test, and a rewrite. The tells are ordered roughly by how often
they show up and how much damage they do.
## 1. Virtue and character framing
The text tells you the subject is honest, trustworthy, principled, careful, or
humble, instead of showing behavior that would let you conclude that yourself.
This is the biggest offender and the one most specific to model output: it
moralizes reliability rather than stating it.
Tells: "built to be trusted", "fails honestly", "that honesty is the whole point",
"knows its edges", "we would rather block than pretend", "inspectable, not just
trusted".
Test: does the sentence assert a character trait? If so, delete the assertion
and state the mechanism. The candor of a plain factual sentence performs the
honesty better than the word "honest" ever does.
Before: "Anything not yet wired fails closed rather than pretending. An
unimplemented backend never claims to have reviewed anything. That honesty is
the whole point of a gate."
After: "Anything not yet implemented returns block instead of pass, so an
unfinished backend cannot wave code through by claiming a review it never ran."
## 2. Manufactured antithesis ("X, not Y")
A contrast is invented to manufacture emphasis. The structure is fine; the
problem is when the second half is a strawman nobody was proposing, or a vibe
rather than a real alternative.
Test: do both halves name real, distinct, true things? Keep it. Is the second
half a punching bag built for cadence? Cut it and keep only the true half.
KILL: "a merge gate you govern, not a bot you tolerate"; "inspectable, not just
trusted"; "convergence over time beats strict perfection up front".
KEEP: "gates block, advisors comment"; "gates fail closed, advisors fail open".
Before: "Bastion does not take the human out of the loop, it moves them up a
level."
After: "The human moves from reviewing every diff to authoring and governing the
reviewers that do."
## 3. Aphorism openers and closers
A section opens or closes on a small general maxim that wraps the point in a
fortune cookie. Humans rarely preface a concrete point with a generalization;
models love to.
Tells: "attention is scarce, for humans and for agents, and smarter models do
not change that"; "the more you ask, the less it catches"; "the registry is the
artifact: review it, version it, own it".
Test: remove the maxim. Did you lose any fact? If not, it was scaffolding. The
graph, table, or sentence next to it already made the point.
## 4. Triadic parallelism
Rule-of-three cadence: "read, audit, and build on", "clone, run it once, and you
are reading", "capture to definition". Three balanced items feel complete, so
models reach for three whether or not there are three real things.
Test: are there exactly three real, distinct items, or did the third get added
for rhythm? If the third is filler or a restatement, cut to two or rewrite flat.
## 5. The dramatic colon
Setup on the left, payoff on the right, staged for a small reveal: "runs locally,
end to end: capture to definition." Used once it is fine; as a habit it is a
fingerprint.
Test: is the colon introducing or expanding something real, or performing
suspense? If it is theater, rewrite as a plain sentence.
## 6. Uniform clipped-fragment headers
Every section header is a short declarative sentence with a terminal period:
"Point at the word. The meaning is there." The cadence itself becomes the tell
once every header has it.
Test: read the headers as a list. Do they all have the same punchy shape? Vary
them. Let some be plain noun phrases ("How the gate aggregates", "Running it in
CI") and keep a punchy one only where it earns its place.
## 7. The meta-pattern: nothing is allowed to be boring
Every sentence is doing work: contrasting, reassuring, resolving, landing a beat.
Real product writing is lumpier. It lets some sentences just state a fact and
stop. It varies sentence length unevenly instead of settling into a balanced
rhythm.
Test: find the flattest, most purely informational sentence in the piece. If
there isn't one, that is the problem. Add some boring.
## Over-correction is a tell too
A deslopped piece that swung too far reads as conspicuously fragment-phobic and
antithesis-phobic, every sentence the same medium length and the same flat
register. The fix for slop is variation, not flatness. Keep the real contrasts,
keep one beat of personality per section, and let the rhythm stay uneven.
SKILL.md--- name: stop-slop description: "Use for durable prose artifacts: docs, README, release notes, UI copy, comments, commit messages, PR/issue text. Skip ordinary chat replies." --- # Stop slop Use this skill only for durable prose: text that will be saved, shipped, published, committed, or pasted outside chat. Do not use it for ordinary assistant replies, progress updates, or final answers unless that response contains a durable artifact; then apply it only to the artifact. "Slop" is prose that reads as machine-written. A banned-word list catches "delve", "tapestry", and "in today's landscape", but it misses problems with rhythm and rhetorical scaffolding. Most useful signals are structural. Avoid two failure modes: 1. Slop uses constant rhetorical framing. It reassures the reader and resolves each thought into a balanced contrast or tidy maxim. 2. Over-correction makes every sentence flat and informational. Uniform rhythm is also a machine-written signal. Write plain, specific, varied prose that explains concrete mechanisms. One brief expression of personality per section is fine. ## The core test After an edit, ask whether every fact is still present. A shorter version that keeps every fact removed slop. A rewrite that drops information changes the content rather than its style. ## The structural tells Scan for these. `references/structures.md` covers each in depth with kill/keep tests; this is the working list. 1. **Virtue or character framing.** Delete claims that a subject is honest, trustworthy, principled, or humble. State what it does and let the mechanism show its character. 2. **Manufactured antithesis.** Remove "X, not Y" when Y is a strawman or mood. Keep it when both sides name real and distinct facts. 3. **Aphorism openers and closers.** Cut tidy maxims that repeat the surrounding facts. 4. **Decorative groups of three.** Keep a three-item list only when the content has exactly three real items. 5. **Dramatic setup and payoff.** State the information directly instead of staging it for suspense. 6. **Uniform clipped headers.** Vary the structure and use plain noun phrases where they fit. 7. **Uniform rhythm.** Allow some sentences to be flat and informational. Natural prose varies in length and emphasis. ## Discriminate, do not carpet-bomb The "X, not Y" structure is frequent and easy to remove too broadly. Examine what each side contributes: - KILL: "a gate you govern, not a bot you tolerate" (the second half is a strawman invented for cadence). - KEEP: "gates block, advisors comment" and "gates fail closed, advisors fail open" (both halves name real, distinct, opposed behaviors). Apply the same test to fragments and short sentences. Remove manufactured ones, but keep useful variation. ## Voice anchor (highest leverage) A target voice is more useful than the instruction "remove AI tells". Read two or three representative paragraphs before editing. Match their sentence length, comment density, and idiom. Without a sample, write like the engineer who built the system and respects the reader's time. ## Workflow 1. Read a voice anchor from the same author or product when one exists. 2. Read for meaning. Mark sentences that add rhetoric without adding facts. 3. Rewrite each marked sentence. Keep every fact while removing unnecessary framing. 4. Keep real contrasts and occasional personality. Do not flatten useful variation. 5. Preserve code, commands, data, tables, and quoted third-party material. 6. Read the result from start to finish. Restore variation if every sentence has the same rhythm. ## Mechanics Follow ASD-STE100 Simplified Technical English in spirit. Do not enforce its controlled dictionary unless the user asks for strict compliance. - Plain ASCII only. No em dashes, no en dashes, and no literal `--` used as a dash in prose. Recast with a comma, a colon, parentheses, or two sentences. Leave `--flag` forms inside commands and code alone. - Use one term for each concept. - Prefer active voice and direct commands. - Keep each paragraph on one topic. - Put one action in each procedural step. Keep procedural sentences to 20 words or fewer when practical. ## References - `references/structures.md`: the structural tells in depth, each with a kill-or-keep test and a rewrite. - `references/phrases.md`: the lexical tells (a lower-priority backstop; the structure matters more than the vocabulary). - `references/examples.md`: before and after rewrites from a real landing page.