anti-slop-writing
v1.4.0
Published
Fidelity-first Agent Skill for English and Chinese technical or explanatory prose, including Chinese editorial nonfiction.
Maintainers
Readme
Anti-slop Writing
An explicitly invoked Agent Skill for fidelity-first writing, rewriting, and auditing of English or Chinese technical and explanatory prose.
The skill protects:
- facts, stance, modality, and protected tokens before wording
- one stable term for one concept
- profile fit: controlled, clear, natural, author voice, or strict STE
- sentence and paragraph movement: every retained unit advances the reader or performs a named function
- a load-bearing argument spine for controlled documents and standard explanations
- a Chinese editorial nonfiction engine that passes a concrete-material gate, establishes a source-bounded speaking position, drafts prose-first along the reader's next local question, and chooses headings only after the path exists
- claims through evidence, no-change, and overcorrection checks
It includes native English and Chinese semantic routes, a progressive knowledge tree, route-specific internal ledgers, and a conservative surface-review tool.
Install
Install for Codex:
npx anti-slop-writing installInstall into a shared Agent Skills directory:
npx anti-slop-writing install \
--target ~/.agents/skills/anti-slop-writingStart a new agent session after installation.
Use
The skill does not run implicitly. Invoke it by name:
$anti-slop-writing Rewrite this technical explanation.
Preserve all numbers, identifiers, and required terminology.The default profile is controlled for procedures and safety text, and clear
for descriptions and standard technical explanations. Chinese or
Chinese-dominant whole-document editorial nonfiction defaults to natural.
Use author-voice only with a qualified same-author, same-language, comparable
sample. English and Chinese share the fidelity and evidence boundary, then use
different planning and surface routes. Strict ASD-STE100 work is English-only
and still requires the complete official source and the project's terminology
set.
Chinese or Chinese-dominant editorial nonfiction loads a material-first engine instead of the pre-draft section map used by standard explanations. A long draft needs enough concrete, traceable material; the first version follows local reader questions without a complete table of contents, and structural review happens after prose exists. The engine stays inactive for English-only work, procedures, safety text, short local edits, fiction, and dialogue, so the scope does not become a general creative-writing system.
Deterministic checks
Run the checker through the package:
npx anti-slop-writing check docs/procedure.md \
--kind procedure --profile controlled --workflow controlled-documentSupported document kinds:
proceduredescriptionexplanationsafetygeneral-technical
The checker finds review candidates. It cannot determine whether text is true, complete, safe, semantically redundant, AI-authored, or ASD-STE100 conformant. It has two deliberately separate layers:
- a script-agnostic Markdown structure layer that always runs and reports the heading tree, empty sections, exact and near-surface reuse, repeated sibling shapes, and competing ending candidates;
- an English language layer for grammar, wording patterns, sentence counts, and cadence;
- a Chinese language layer for conservative sentence-boundary, cadence, and
repeated correction/reveal and insight-signpost candidates. The explicit
chinese-editorialworkflow additionally checks numbered surveys, tutorial/application matrices, generic terminal sections, and, under thenaturalprofile, declared hard stops for stock pivots, explanatory colons, and em dashes. It does not apply English word limits, a universal Chinese-character cap, or an authorship score.
Profiles change deterministic severity:
strict-ste: source-derived punctuation and sentence controls can be hard;controlled: the same controls are review warnings;clear: ordinary contractions, semicolons, passive voice, and-ingforms are allowed; longer sentences use a wider review threshold;natural: disables mechanical STE style warnings, keeps the cross-script structure layer, and applies the declared English or Chinese cadence review; editorial-only hard stops remain inactive unless--workflow chinese-editorialis also selected;auto: selectscontrolledfor procedure/safety,naturalfor an explicitly selectedchinese-editorialworkflow, andclearotherwise.
Checker workflows are controlled-document, standard-explanation, and
chinese-editorial. auto deliberately keeps editorial-only findings inactive
unless the caller selects that route explicitly. This prevents a natural
technical explanation or qualified author-voice sample from inheriting a
different genre's punctuation and shape rules. For a qualified author sample,
pass --profile natural --author-voice; an editorial route still receives its
macro-shape review, but generic editorial surface bans do not override the
sample.
The language layer masks code, frontmatter, tables, blockquotes, quoted spans, links, and citations. The structure layer still records their block shape while protecting their contents. Language detection is a Unicode-script heuristic, not a general classifier.
Chinese and Chinese-dominant mixed prose report a complete, deliberately narrow
Chinese language layer. Languages outside the declared English and Chinese
scopes, or unsupported script mixtures, report
structure_analysis.status: complete, language_analysis.status: unsupported,
and analysis_status: partial, then return exit 4. Structural findings remain
visible; the result is not reported as a pass. A zero-finding result is a
no-change-candidate, not a truth or quality certification.
The structure layer is portable because it uses Markdown boundaries, Unicode normalization, character-level surface fingerprints, and conservative heading cues. It does not pretend to detect paraphrases across languages or decide whether a recap is necessary. Standard long explanations use a dependency-aware argument spine. Chinese editorial drafts use a short material-and-question ledger, then receive section and ending review after the prose exists. Every retained unit must add movement or perform a named reader job.
Route receipts
The skill records its selected OKF Concepts internally with SHA-256 hashes:
npx anti-slop-writing receipt \
foundation/fit-and-modes quality/meaning-lock signals/cadenceThe receipt identifies the exact Concept set declared for the route and hashes its file contents. It is runtime evidence, not article content, and is not appended to a normal Write or Rewrite response. A hash does not prove that a file was read or that a model used it; read events and a binding from each Concept to a decision, artifact target, and verification provide those separate forms of evidence.
Routes have no arbitrary Concept-count ceiling. Progressive disclosure selects the smallest complete branch; mandatory Concepts are not dropped to satisfy a fixed count. Planning Concepts are read before drafting. Chinese editorial planning loads positive material, speaking-position, and rolling-question instructions; its structural defect catalog and hard editorial review load only after a complete first draft, so revision cues do not become the draft's template.
You need Node.js 20 or newer and Python 3.10 or newer.
What is included
skills/anti-slop-writing/
├── SKILL.md
├── agents/openai.yaml
├── data/
├── references/
├── scripts/
└── templates/The package does not include the official ASD-STE100 PDF, dictionary, examples,
or logos. It also does not ship upstream prose samples or checker files, a
language model, embedding model, evaluation harness, or separate test skill.
Its Chinese editorial workflow and selected surface checks include attributed
adaptations from the MIT-licensed human-writing project; see the notice.
Important notice
This project is an original and unofficial operational adaptation of controlled-writing principles. ASD and the ASD Simplified Technical English Maintenance Group did not produce, approve, certify, or endorse this project.
ASD-STE100 Simplified Technical English is a copyright and registered trademark of the Aerospace, Security and Defence Industries Association of Europe. Read the full third-party notice and obtain the official standard from asd-ste100.org for strict work.
License
The original code and original project text are available under the MIT License. The license does not grant rights to ASD-STE100, its official text, dictionary, examples, logos, or trademarks.
