The Problem
AI‑generated text often falls into a handful of over‑used patterns (“It’s not X. It’s Y.”, “What nobody tells you…”) that flatten a writer’s voice. Teams that rely on LLM‑assisted drafting spend extra time re‑introducing personality and nuance.
What This Does
no‑ai‑slop ships a ChatGPT/Codex skill that scans incoming text for 20+ hard‑coded slop patterns and rewrites or flags them while preserving the author’s style. The rule set lives in skills/no‑ai‑slop/SKILL.md; the evaluation checklist is in skills/no‑ai‑slop/eval.md.
The only executable component is scripts/build_plugin.py, which packages the skill’s assets (assets/no‑ai‑slop.png, agents/openai.yaml, plugin‑submission.md) and validates the JSON manifest .codex‑plugin/plugin.json. The GitHub Action defined in .github/workflows/plugin.yml runs this script on push to ensure the plugin can be built without error.
How It Is Wired
| File | Responsibility | Key Functions / Effects |
|---|---|---|
.codex‑plugin/plugin.json | Declares the plugin metadata (name, description, command triggers). The ChatGPT runtime reads this file to expose the /no‑ai‑slop slash command. | |
skills/no‑ai‑slop/SKILL.md | Lists the textual patterns and the replacement logic in a declarative, human‑readable format. The skill engine parses this markdown at load time to generate the detection/rewriting rules. | |
scripts/build_plugin.py | Entry point for local builds. It: <br>1. Loads plugin.json. <br>2. Copies assets/, agents/, and skills/ into a temporary directory. <br>3. Zips the directory into no‑ai‑slop.zip. <br>4. Calls jsonschema.validate against the manifest. No external services are contacted; the script only touches the filesystem. | |
.github/workflows/plugin.yml | CI step that invokes python scripts/build_plugin.py on each push, failing the run if the manifest is invalid. | |
agents/openai.yaml | Provides a minimal OpenAI agent definition used by the skill when it needs to call an LLM for re‑phrasing. The file is static; the runtime loads it when the skill is invoked. | |
README.md & plugin‑submission.md | Documentation only; no code impact. |
Call flow (runtime): When a user sends “/no‑ai‑slop <text>” in ChatGPT, the platform reads plugin.json to route the command to the skill. The platform parses SKILL.md into a pattern list, applies each regex to the supplied text, and returns the edited version together with a change summary. No Python code runs in this path; the transformation is performed by the host (ChatGPT) using the declarative rules. The only code path that a developer can modify locally is the build script, which has a single linear flow and a modest blast radius (only packaging artifacts).
How To Use It
# 1. Clone the repo (use the exact URL as requested)
git clone https://github.com/moses-y/no-ai-slop
cd no-ai-slop
# 2. Build the plugin package
python scripts/build_plugin.py # produces no-ai-slop.zip
# 3. Install globally via the documented shortcut
# (copy‑paste the block from README into ChatGPT, Claude Code, etc.)
# or use the npx command:
npx skills add petergyang/no-ai-slop --skill no-ai-slop --global --yes
No additional configuration files, environment variables, or secret keys are required; the skill is self‑contained.
Real‑World Use
A content team integrates the skill into their internal ChatGPT instance. Writers draft a paragraph, prepend /no‑ai‑slop, and receive a version with the 20+ slop patterns removed and a bullet list of modifications. The team can then review the changes before publishing, saving roughly 10‑15 minutes per draft.
Code Health & Issues
- Medium – No automated tests – repository‑wide; the only executable code (
build_plugin.py) is untested. - Low – Single‑purpose build script – limited error handling; failures surface only as uncaught exceptions.
- Low – CI only validates packaging –
.github/workflows/plugin.ymlruns the build script but does not lint markdown or verify regex correctness. - Low – No type hints / static analysis –
build_plugin.pylacks type annotations, reducing IDE assistance.
No security‑related secrets are committed; the license (MIT) is present and valid.
The Bottom Line
no‑ai‑slop provides a lightweight, declarative skill for stripping common AI‑generated clichés from text, useful for teams that already rely on ChatGPT’s plugin ecosystem. The repo is minimal: a single packaging script, markdown rule definitions, and CI that only validates the zip build. Lack of tests and limited runtime code mean low maintenance overhead but also limited extensibility; developers needing custom pattern logic will have to edit SKILL.md directly. Suitable for organizations that want an out‑of‑the‑box slop filter without building their own NLP pipeline.