Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
0xNyk avatar

Unmachined

  • 5 repo stars
  • Updated August 2, 2026
  • 0xnyk/unmachined

unmachined is an agent skill that removes AI-generated patterns from text and UI: deterministic scanners score drafts 0-100 against catalogs of known tells and fail them at 40 before any model rewrite.

About

unmachined strips AI slop from text and interfaces using two deterministic scanners that score a draft 0 to 100 against severity-tiered catalogs of known tells and fail it at 40, before any model judges the output. Beyond banned-word lists, it enforces cross-output variety so two runs never share a voice or layout skeleton, plus an honesty gate that rewards concrete facts over vague corporate language. It covers prose (articles, READMEs, marketing copy, microcopy) and web UI, with deep rules for Next.js, Tailwind, and shadcn and non-negotiable WCAG 2.2 AA gates. The scanners are zero-dependency Python 3.8+ scripts with CI-friendly exit codes; MIT-licensed, working in Claude Code, Codex, and any Agent Skills host.

  • Two deterministic scanners (text + UI) score 0-100 on known AI tells and fail drafts at 40, before any model judgment
  • Severity-tiered catalog: critical tells cost 20 points, major 10, minor 3
  • Variety requirement: consecutive outputs must not share a voice, layout skeleton, display font, or accent hue
  • Zero dependencies, Python 3.8+, no network; exit code 1 wires straight into CI or pre-commit
  • Honesty gate rewards concrete facts: no invented metrics, quotes, or anecdotes

Unmachined by the numbers

  • Data as of Aug 3, 2026 (Skillselion catalog sync)
At a glance

unmachined capabilities & compatibility

Free, MIT-licensed; scanners run locally with no API keys or network access.

Use cases
copywriting · ui design · documentation
Runs
Runs locally
Pricing
Free
npx skills add https://github.com/0xnyk/unmachined --skill unmachined

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars5
Last updatedAugust 2, 2026
Repository0xnyk/unmachined

Why does everything my AI writes sound the same, and how do I stop my site and copy from looking AI-generated?

Strip AI tells from prose and web UI before shipping: deterministic scanners score drafts 0-100 and block at 40, then a rewrite pass fixes what they flag.

Who is it for?

Builders shipping AI-assisted articles, landing pages, and UI who need a reproducible gate that catches machine tells before publishing.

Skip if: Encyclopedic or legal text, enforced house styles, judging whether third-party work is AI-generated, or as a substitute for having something concrete to say.

When should I use this skill?

Writing or editing prose that must not read AI-generated, building or auditing web UI that must not look AI-generated, or when the user says 'unmachined', 'de-slop', 'AI slop', or 'sounds like AI'.

What you get

Drafts and UI pass a deterministic slop scan under 40, read written rather than generated, and consecutive outputs stop sharing a voice or layout skeleton.

  • Severity-ranked audit report with slop score (0-100)
  • Repaired text or UI preserving meaning, routes, and IA

By the numbers

  • Scores drafts 0-100; 40 or above fails
  • Severity weights: critical 20, major 10, minor 3
  • Zero dependencies, Python 3.8+, no network access

Files

SKILL.mdMarkdownGitHub ↗

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

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

1. Parse an explicit verb first. If none is present, use the default build workflow. A file named audit or fix remains a target when supplied as a path. 2. Resolve the smallest target that satisfies the request. For diff, use the working-tree diff by default; when <base> is given, compare against it. 3. State the detected surfaces in one short line when both text and UI rules apply. Skip this ceremony for a single obvious file. 4. audit and diff are read-only. A request to apply their findings changes the workflow to fix only after the user asks. 5. Load only the references named by the chosen pipeline. Leave unrelated catalogs unloaded.

Text pipeline (main priority)

1. Read references/text-tells.md for the full catalog. Microcopy and brand voice also need references/voice-and-copy.md. 2. Draft or edit. 3. 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 a fix or build delivery. In audit, report the score without changing the target. Fix criticals first. 4. 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. 5. Honesty gate: every number is real or a labelled placeholder. No invented metrics, quotes, or anecdotes. Superiority claims need a cited measurement.

Design pipeline

1. Read references/design-tells.md (what to avoid) and references/design-system.md (what to build instead). Audits and redesigns also need references/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] 2. For Next.js/Tailwind/shadcn projects, read references/stack-rules.md and confirm actual versions from package.json before applying them. If the project pins older versions, follow the project and flag it. 3. 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. 4. 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. 5. 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

FileLoad when
references/text-tells.mdAny text work
references/voice-and-copy.mdMicrocopy, UX writing, brand voice
references/design-tells.mdAny UI work
references/design-system.mdBuilding or restyling UI
references/audit-playbook.mdaudit or fix on existing UI
references/stack-rules.mdNext.js, Tailwind, or shadcn detected
scripts/scan_text.pyEvery text deliverable, before shipping
scripts/scan_ui.pyAuditing 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.

Related skills

How it compares

Use instead of one-shot 'make this sound human' prompting, which draws from the same distribution that produced the slop.

FAQ

How does unmachined detect AI slop?

Two deterministic Python scanners check text and UI source against severity-tiered catalogs of known tells (critical 20, major 10, minor 3 points). A draft scoring 40 or above fails before any model-based rewrite runs.

Does unmachined work outside Claude Code?

Yes. It follows the Agent Skills format, so it works in Claude Code, Codex, and any skill host. The scanners are plain Python 3.8+ with zero dependencies and also run standalone in CI or pre-commit hooks.

How is unmachined different from banned-word de-slop skills?

Banning words like 'delve' just moves the cluster. unmachined also enforces variety across outputs so fixes don't converge on a new monoculture, and rewards concrete facts, which drop the slop score on their own.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.