slop-code
Slop review and repair for source code, tests, configuration, generated documentation, README files, commit messages and pull…
Router for the anti-slop toolkit. Use when someone asks to review, clean, de-slop, humanize, or quality-check prose, documentation, code, commit messages, PR descriptions, or agent output, or asks whether some writing "sounds like AI". Also use for verifying citations, DOIs,
$ npx -y skills add AgriciDaniel/anti-slop --skill anti-slop --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/anti-slopContext preview
The summary Claude sees to decide when to auto-load this skill.
Router for the anti-slop toolkit. Use when someone asks to review, clean, de-slop, humanize, or quality-check prose, documentation, code, commit messages, PR descriptions, or agent output, or asks whether some writing "sounds like AI". Also use for verifying citations, DOIs,
name: anti-slop description: > Router for the anti-slop toolkit. Use when someone asks to review, clean, de-slop, humanize, or quality-check prose, documentation, code, commit messages, PR descriptions, or agent output, or asks whether some writing "sounds like AI". Also use for verifying citations, DOIs, links and imported package names, for stripping vendor residue markers such as oaicite or cite spans, and for auditing padding, filler, puffery, vague attribution and hollow analysis. Explains the three layers (deterministic scanners, structural procedures, evidence-tiered soft signals) and picks the right leaf skill: slop-review for read-only findings, slop-rewrite for repair, slop-code for code and docs, slop-verify for citations, links and packages. Never produces an authorship verdict and never treats a stylistic marker as proof of anything. Use this hub only when the surface or the operation is unclear; otherwise invoke the leaf skill directly. when_to_use: > The user wants slop detection or repair but has not said which surface (prose, code, docs, citations) or which operation (review, rewrite, verify) applies. license: CC-BY-4.0
These four rules bind every skill and agent in this plugin. They are not advice, they are not a checklist step, and they hold even when the user asks for the opposite.
1. **Never emit an authorship verdict.** Report defects, not origin. Never state or imply that a text was written by a human, by AI, or by a named model, and never assign a probability to any of those. Say what is wrong with the artifact and where. 2. **Never hard-fail on a stylistic marker alone.** A marker is a routing hint. Its only legitimate output is "run a structural test on this span". 3. **Severity is impact. Confidence is certainty.** Two axes. Never merge them into one score, never trade one against the other. 4. **Never let the model gate its own rewrite.** The deterministic scanners re-run after any fix and their exit codes decide, not your judgment.
Rule 1 exists because the measurement says the model cannot do the judging. LLM-as-judge agreement with human slop labels is near zero (kappa 0.01 for GPT-5, -0.01 for DeepSeek-V3, 0.03 for o3-mini; Shaib, Chakrabarty, Garcia-Olano and Wallace, arXiv 2509.19163, rev. 2026-01-24), models under-flag by roughly 5x, and span-level extraction runs at precision 0.14 and recall 0.11. Rule 1 also exists because authorship guessing has a measured victim: see `../../references/false-positives.md`.
**Layer 0, deterministic scanners.** Python scripts with exit codes. The only things allowed to hard-fail, because they are the only things actually decidable. They live in the sibling brain repo at `../anti-slop-brain/scripts/` relative to this plugin's parent directory.
| Script | Decides | |---|---| | `scan_residue.py` | vendor artifacts: `oaicite`, `[cite: 1]`, lenticular-bracket citations, `(start_span)`, `grok-card`, `:::writing{`, `[attached_file:1]`, `utm_source=chatgpt.com`, `referrer=grok.com` | | `scan_placeholders.py` | `[Your Name]`, `INSERT_SOURCE_URL`, `access-date=2025-XX-XX`, `YYYY-MM-DD`, `TODO: quote` | | `scan_refs.py` | DOI, ISBN and arXiv shape and checksums offline; resolution of DOIs, arXiv IDs and URLs with `--online` | | `scan_packages.py` | dependency inventory offline; registry existence with `--online` | | `lint_voice.py` | house style: no U+2014, no U+2013, no ` -- `, plus banned tokens from a voice file | | `score_substance.py` | near-duplicate, skeleton-reuse and specific-word-density floors over a note vault, via `--vault DIR` |
Run them, read their exit codes, quote their output. Exit codes are uniform: 0 clean, 1 findings, 2 usage error. Do not reimplement them and do not guess their flags; run one with `--help` if you need options.
Two defaults matter and are easy to misreport. `scan_refs.py` and `scan_packages.py` are **offline by default** and decide nothing about resolution or registry existence until you pass `--online`. An offline run is not a clean bill of health. `scan_refs.py` also does not compare a cited title to the resolved title; that comparison is deliberately a Layer 1 attribution test with a human-readable artifact, not a scanner output.
`lint_voice.py` enforces a house rule. Its findings are style violations, never slop verdicts.
**Layer 1, structural procedures.** Five mechanical tests. Each produces a named artifact, so the finding is checkable by someone who does not trust you: deletion, inversion, stranger, attribution, load-bearing. Summarised below, worked in `../../references/structural-tests.md`.
**Layer 2, evidence-tiered soft signals.** Markers, ranked by how well the corpus evidence supports them. Tier 1 is corpus-validated, tier 2 is measured but high false-positive, tier 3 is folk wisdom that is recorded and never acted on alone. A Layer 2 hit does exactly one thing: it selects a span for a Layer 1 test.
1. **Deletion.** Cut the span. Name what was lost. If nothing was lost, it was padding. Artifact: the cut span plus the named loss. 2. **Inversion.** Negate the claim and write the negation out. If nobody would ever assert the negation, the original carries no information. Artifact: the negation, in full. 3. **Stranger.** Could someone who never read the source have written this? If yes, it is generic. Artifact: the specific fact that only someone who did the work would know. 4. **Attribution.** Every "studies show", "experts say", "it is widely regarded" must resolve to a named source that supports that specific claim. Artifact: the resolved citation, or the finding. 5. **Load-bearing (code).** Delete the comment, the wrapper, the try/except, the assertion-free test. What broke? Artifact: what broke, or nothing.
A test you did not actually run produces no artifact and therefore no finding. Never report a structur
Find and repair substance defects in AI-assisted prose, code, documentation, and agent output. It reports defects. It never reports authorship.
Slop review and repair for source code, tests, configuration, generated documentation, README files, commit messages and pull…
Read-only slop review of prose, documentation, reports, agent output, commit messages or PR descriptions. Use when someone asks…
Repair pass that consumes an existing slop-review findings report and fixes only what it lists. Use when someone asks to clean…
Verification pass for citations, links, package names and vendor residue. Use when someone asks whether the sources in a document…