Communitygithub.com

0xNyk/unmachined

Anti-AI-slop agent skill: makes text read written and UI look made, not generated. Deterministic scanners + severity-tiered tell catalogs.

unmachined 是什么?

unmachined is a Claude Code agent skill that anti-AI-slop agent skill: makes text read written and UI look made, not generated. Deterministic scanners + severity-tiered tell catalogs.

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add 0xNyk/unmachined

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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.

Priorities: text first, design and layout equal second, branding last.

Always-on (native enforcement)

Once installed, the skill can stay on for the whole CLI session so agents do not write AI-text slop unless the user opts out.

ModeBehavior
always_on: trueEvery user-facing text (and optional UI) is drafted under anti-slop rules and scanned before ship. No need to type /unmachined each time.
always_on: falseOpt-in only: run /unmachined … when you want enforcement.
not onboardedAsk once (see onboard). Until answered, treat as off.

Full contract: references/always-on.md.

Onboarding (required once)

On first use, or when onboarded_at is missing, ask:

Turn unmachined always-on for this CLI so all user-facing writing is anti-slop by default? Or leave off (only when you invoke the skill)?

Then save via:

python3 scripts/onboard.py                 # interactive
python3 scripts/onboard.py --always-on     # native on, text+ui
python3 scripts/onboard.py --always-on --text-only
python3 scripts/onboard.py --always-off
python3 scripts/onboard.py --show          # status

Config: project .unmachined.json overrides ~/.config/unmachined/config.json. Env UNMACHINED_ALWAYS_ON=1|0 overrides the boolean for a single session.

Agent duties when always_on is true

  1. Resolve config (scripts/onboard.py --show or read the JSON files).
  2. Load references/text-tells.md before drafting user-facing prose.
  3. Write clean; do not draft slop intending to clean later.
  4. Run scripts/scan_text.py on the deliverable; score >= threshold blocks ship.
  5. If ui is in surfaces and the task is UI, also load design refs and scan_ui.py when editing UI source.
  6. First content write of the session: one short line that always-on is active.

Out of scope: pure logic without user-facing strings; this skill's ban-list docs; raw logs and data dumps. See always-on.md.

Verbs

InvocationBehavior
/unmachined <task> (default)Build or write with all applicable rules active from the start
/unmachined onboardAsk always-on preference; write config
/unmachined always-onEnable always-on and save
/unmachined always-offDisable always-on and save
/unmachined statusPrint resolved config
/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

Hosts without slash commands use the same words in natural language.

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. If verb is onboard / always-on / always-off / status, handle config only (shell scripts/onboard.py …).
  3. If no config onboarded_at and the task will write user-facing text, run onboarding once before continuing (or instruct the user to run the script).
  4. If always_on is true, apply the always-on agent duties even when the user did not type /unmachined.
  5. Resolve the smallest target that satisfies the request. For diff, use the working-tree diff by default.
  6. State detected surfaces in one short line when both text and UI apply.
  7. audit and diff are read-only unless the user asks to fix.
  8. Load only the references named by the chosen pipeline.

Text pipeline (main priority)

  1. Read references/text-tells.md. Microcopy also needs references/voice-and-copy.md.
  2. Draft or edit under the rules (em-dash ban; no critical vocabulary; concrete claims; honesty gate).
  3. Run the deterministic scanner before self-judgment: python3 scripts/scan_text.py <file> [file...] [--json] [--threshold 40] [--mode prose|chat|ui] Stdin works for pasted content. Score >= threshold blocks fix / build / always-on delivery. Fix criticals first.
  4. Self-critique once: "what still reads as AI-generated?" Revise for cadence and variety. 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.

Design pipeline

  1. Read references/design-tells.md and references/design-system.md. Audits also need references/audit-playbook.md. python3 scripts/scan_ui.py <src-dir> [--json] [--threshold 40] [--tailwind-version auto|3|4]
  2. For Next.js/Tailwind/shadcn, read references/stack-rules.md and match the project pin.
  3. Structure before color; one justified aesthetic risk; WCAG 2.2 AA; reduced motion; focus visible; 320-768px layouts.

Cross-output variety

Consecutive outputs must not share the same layout skeleton, display font, or accent hue unless the project design system requires it.

Resolved rule conflicts

  • Em-dash: banned in generated text. Hyphen, comma, or restructure.
  • Serif type: only with justification; not a lazy default.
  • Metrics: real, cited, or labelled placeholder.
  • Eyebrows / section numbers: only when they encode a true sequence.

Reference index

FileLoad when
references/always-on.mdOnboard, always-on, or session writing policy
references/text-tells.mdAny text work
references/voice-and-copy.mdMicrocopy, UX writing
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 / shadcn
references/host-support.mdInstall paths and host notes
scripts/onboard.pyOnboarding and always-on toggles
scripts/config_show.pyStatus
scripts/scan_text.pyEvery text deliverable before shipping
scripts/scan_ui.pyUI source audits

Output discipline

This skill's own reports must pass its own rules. Findings are concrete: quote the line, name the rule, show the fix. No praise padding. Never claim a scan, render, or test that did not run.

相关技能