| name | unmachined |
|---|---|
| description | Finds and removes AI slop from prose, UX copy, and web interfaces. Use when writing, auditing, or revising articles, posts, READMEs, marketing copy, UI copy, layouts, or frontend code that must not feel AI-generated. Also use for requests containing "unmachined", "de-slop", "AI slop", "sounds like AI", "looks AI-generated", "make this human", or design and copy audits. Supports audit-only, fix, text-only, UI-only, and changed-lines workflows. |
| license | MIT |
| compatibility | Optional deterministic scanners require Python 3.8 or newer. |
| metadata | {"version": "0.2.0"} |
unmachined
Make it read written and look made, not generated.
AI output converges on the statistical center: the same vocabulary, the same cadence, the same purple gradient on the same centered hero. This skill holds two lines of defense. First, catalogs of known tells with severity tiers. Second, a variety requirement, because the fix becomes a new tell when every output converges on the same alternative. Never swap one monoculture for another. Two outputs from this skill should not share a voice or a layout skeleton unless the brief demands it.
Priorities when effort must be split: text first, design and layout equal second, branding last.
Verbs
| Invocation | Behavior |
|---|---|
/unmachined <task> (default) | Build or write with all applicable rules active from the start |
/unmachined audit <target> | Score and report findings by severity. Never edit |
/unmachined fix <target> | Audit, repair, verify, and summarize the changes |
/unmachined text <target> | Run only the prose and copy pipeline |
/unmachined ui <target> | Run only the interface and frontend pipeline |
/unmachined diff [base] | Audit only changed lines and their necessary context; never widen into unrelated cleanup |
<target> may be a file, directory, URL, or pasted content. Detect the
surface: prose gets the text pipeline, UI code gets the design pipeline,
landing pages get both.
Hosts that omit the leading slash use the same words as a natural-language invocation. Separate command files for these verbs are unnecessary. The skill is the command, and the first argument selects the workflow.
Dispatch contract
- Parse an explicit verb first. If none is present, use the default build
workflow. A file named
auditorfixremains a target when supplied as a path. - Resolve the smallest target that satisfies the request. For
diff, use the working-tree diff by default; when<base>is given, compare against it. - State the detected surfaces in one short line when both text and UI rules apply. Skip this ceremony for a single obvious file.
auditanddiffare read-only. A request to apply their findings changes the workflow tofixonly after the user asks.- Load only the references named by the chosen pipeline. Leave unrelated catalogs unloaded.
Text pipeline (main priority)
- Read
references/text-tells.mdfor the full catalog. Microcopy and brand voice also needreferences/voice-and-copy.md. - Draft or edit.
- Run the deterministic scanner. It is reproducible and cheap; run it before
any self-judgment:
python3 scripts/scan_text.py <file> [--json] [--threshold 40] [--mode prose|chat|ui]Use stdin for pasted content. Score >= 40 blocks afixor build delivery. Inaudit, report the score without changing the target. Fix criticals first. - Self-critique loop: ask "what makes this still read as AI-generated?", answer it concretely, revise once. Vary sentence rhythm, keep one opinion, allow one rough edge. Do not sand every sentence to the same length.
- Honesty gate: every number is real or a labelled placeholder. No invented metrics, quotes, or anecdotes. Superiority claims need a cited measurement.
Design pipeline
- Read
references/design-tells.md(what to avoid) andreferences/design-system.md(what to build instead). Audits and redesigns also needreferences/audit-playbook.md. On existing code, run the deterministic UI scanner first; it catches the grep-able tells before any visual judgment:python3 scripts/scan_ui.py <src-dir> [--json] [--threshold 40] - For Next.js/Tailwind/shadcn projects, read
references/stack-rules.mdand confirm actual versions from package.json before applying them. If the project pins older versions, follow the project and flag it. - Before emitting UI: pick structure first (layout skeleton before colors), set locked tokens (OKLCH custom properties, named fonts, spacing scale), and spend boldness in one place: one real aesthetic risk you can justify.
- Pre-emit self-critique, scored 1-5 on six axes: philosophy, hierarchy, execution, specificity, restraint, variety. Any axis under 3 triggers a revision pass before showing output.
- Hard gates, non-negotiable: WCAG 2.2 AA contrast (4.5:1 text, 3:1 large text and UI), prefers-reduced-motion support, keyboard focus visible, renders correctly at 320/375/414/768 px.
When the host provides image, browser, or screenshot tools, use them to inspect rendered UI after the source scan. A grep result is evidence of a candidate, not proof that the rendered design fails.
Cross-output variety
Track your own recent outputs within a project. Consecutive outputs must not share the same layout skeleton, display font, or accent hue unless the brief or an existing design system requires it. When a project has a design system, consistency with it beats variety.
Resolved rule conflicts
Sources in the research corpus disagree on a few points. These resolutions are final for this skill:
- Em-dash: banned in all generated text. Use a single hyphen, a comma, or restructure. Sole exception: a labelled placeholder inside a stat block.
- Serif type: allowed as a deliberate, justified choice; banned as an unconsidered default. Fraunces and Instrument Serif are trending toward cliche; require justification.
- Metrics in copy: real, cited, or a labelled placeholder. Never invented, even as decoration.
- Eyebrows and section numbers: off by default; only when they encode a true sequence, and never on every section.
Reference index
| File | Load when |
|---|---|
references/text-tells.md | Any text work |
references/voice-and-copy.md | Microcopy, UX writing, brand voice |
references/design-tells.md | Any UI work |
references/design-system.md | Building or restyling UI |
references/audit-playbook.md | audit or fix on existing UI |
references/stack-rules.md | Next.js, Tailwind, or shadcn detected |
scripts/scan_text.py | Every text deliverable, before shipping |
scripts/scan_ui.py | Auditing or fixing existing UI source |
Output discipline
This skill's own reports must pass its own rules. Findings are concrete: quote the offending line, name the rule, show the fix. No praise padding, no "overall this looks great". If nothing is wrong, say so in one sentence.
For audits, return: score, blocking status, findings ordered critical to minor, and the next smallest useful action. For fixes, return: what changed, scanner scores before and after, visual checks performed when relevant, and anything not verified. Never claim a render, accessibility check, or scanner pass that did not run.
