npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

anti-slop-writing

v1.4.0

Published

Fidelity-first Agent Skill for English and Chinese technical or explanatory prose, including Chinese editorial nonfiction.

Readme

Anti-slop Writing

npm version license

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 install

Install into a shared Agent Skills directory:

npx anti-slop-writing install \
  --target ~/.agents/skills/anti-slop-writing

Start 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-document

Supported document kinds:

  • procedure
  • description
  • explanation
  • safety
  • general-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-editorial workflow additionally checks numbered surveys, tutorial/application matrices, generic terminal sections, and, under the natural profile, 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 -ing forms 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-editorial is also selected;
  • auto: selects controlled for procedure/safety, natural for an explicitly selected chinese-editorial workflow, and clear otherwise.

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/cadence

The 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.