unslop

内容来源:SKILL.md(标准 Skill 格式) · 原始地址 · 查看安装指南

原始内容


name: unslop description: Remove AI writing patterns from prose using either audit-only detection or a two-pass rewrite flow (diagnosis then reconstruction). Use this skill when editing, reviewing, or rewriting AI-generated content to make it sound human. Triggers on requests to "humanize", "de-slop", "fix AI text", "make it sound human", "remove AI patterns", or when reviewing text that contains obvious AI tells like "Here's the thing:", "Let that sink in", or "In today's fast-paced landscape". Also use when the user pastes text and says it "sounds like ChatGPT", "sounds robotic", "needs to sound more natural", or asks you to "clean up" drafted content before publishing. license: MIT user-invocable: true argument-hint: "[teach · cleanup · rewrite · mimic] [input]" metadata: author: claytonkim version: "2.3.0"

Unslop

Humanize AI-generated prose. Audit first. Rewrite only when the user asks for a rewrite.

Routing

When the user invokes a sub-command (/unslop teach ..., /unslop cleanup ...), you MUST read references/commands/<command>.md before acting. Non-optional — the command file defines the flow, and skipping it drops steps the user expects. A bare /unslop <text> with no leading command word defaults to rewrite. If the first word does not match a command but the intent clearly maps to one (e.g. "flag the AI tells, don't change anything" → cleanup report-only), load that command file and proceed as if invoked.

Command Purpose File
rewrite Default two-pass de-slop: diagnose, reconstruct under the guards, validate. references/commands/rewrite.md
cleanup Co-writer: cheap detection, reviewable suggestions with contract gates; includes report-only "flag, change nothing". references/commands/cleanup.md
teach Agent-driven voice building: harvest, approve, profile, layered card, scored demo. references/commands/teach.md
mimic Voiced drafting or rewriting under the full gates; refine loop when one pass falls short. references/commands/mimic.md
maintenance Turn a wild AI-ism into an eval row and a PR (not a top-level verb). references/commands/contribute.md

Routing by phrase

Sub-flows are reachable by their natural names without being top-level verbs. When the user says any of these, load the named file and jump to the flow:

The user says Go to
audit / "just flag it" / "don't change anything" references/commands/cleanup.md
harvest / "what writing of mine do you have?" references/commands/teach.md
calibrate / "the A/B game" / "quiz me on my voice" references/commands/teach.md
refine / "keep pushing until it sounds like me" references/commands/mimic.md
voice check / "does this sound like me?" references/commands/mimic.md
"found a new AI-ism" / "add this tell" references/commands/contribute.md

The shared doctrine below (register guards, validation gates and blocking semantics, output formats, the script and reference tables) applies to every command. The command files hold the flows; this file holds the constitution.

When to Use

  • User asks to humanize, de-slop, clean up, or make text sound natural.
  • Drafts contain obvious AI tells: throat-clearing, scaffolded conclusions, inflated significance, em-dash abuse, or staccato fragment drama.
  • User asks for an audit, scan, or review of prose before publishing.

Arguments

Argument Description Default
--preset Voice style: crisp, warm, expert, story crisp
--strict Fail if rubric score < 32/40 false
--report Flag AI patterns without changing the text (cleanup) false
Input Text to transform (argument, file path, or stdin) required

Scripts

Script Purpose
scripts/voice_profile.py Build a deterministic stylometric voice profile from same-genre samples.
scripts/voice_score.py Score a candidate against a voice profile with impostor-calibrated metrics and copy-gate reporting.
scripts/voice_card.py Distill a profile plus samples into a layered, pack-sized voice card (core sheet plus per-situation sheets).
evals/run_mimic_refine.py Iterative --refine hill-climb toward a voice under the removal gates, with A/DEV splits and a divergence guard.
evals/mimic_stats.py Paired BCa-bootstrap and sign-flip stats for comparing mimic outputs to baselines.

Voice Presets

Read one preset from presets/ before writing.

Preset Style Best For
crisp Short, direct, no fluff Technical writing, documentation
warm Friendly, conversational Emails, blog posts
expert Authoritative, confident Thought leadership, articles
story Narrative flow, show don't tell Case studies, personal posts

Rewrite Principles

  • Cut throat-clearing and scaffolding. Start with the claim.
  • Replace inflated importance with the concrete fact.
  • Prefer short, direct sentences, but avoid telegraphic staccato.
  • Use em-dashes sparingly. A single appositive dash can be fine; clusters are a tell. Never trade a dash for a comma splice; if a dash is wrong, use a period.
  • Facts are sacred: numbers, names, dates, URLs, quotes, code identifiers, units, and scope words must survive.
  • Do not invent first-person experience, anecdotes, or certainty the source does not support.
  • Do not replace AI slop with anti-slop register: "Not X. Y.", forced punch endings, or runs of tiny fragments.

Register Guards

Before removing a hedge or strengthening a sentence, check whether the register requires it:

  • Legal: keep hedges, negations, exceptions, section references, liability terms, and scope words.
  • Medical/scientific: keep uncertainty, study limits, cohort limits, causation limits, and adverse-effect qualifiers.
  • Security/safety: keep forceful absolutes such as "never", "must", "all input", and "do not" when they define a rule.
  • Technical docs: keep precise terms, flags, API names, version numbers, file paths, and code semantics.

If a gate fails twice after rewrite, escalate model tier rather than adding more prompt rules. The failure is execution quality.

Validation

Run after every rewrite or voiced draft:

python3 scripts/validate_preservation.py original.txt transformed.txt
python3 scripts/banned_phrase_scan.py <<< "$OUTPUT"
python3 scripts/structure_scan.py <<< "$OUTPUT"
python3 scripts/silhouette_scan.py <<< "$OUTPUT"
python3 scripts/readability_metrics.py <<< "$OUTPUT"
python3 scripts/diff_check.py original.txt transformed.txt

Blocking output failures:

  • Any hard banned-phrase hit.
  • Any anti_slop_register hit, even if soft.
  • Any structure_scan.py flag unless the actual genre justifies --genre docs or --genre social.
  • Any silhouette_scan.py flag (silhouette_penalty >= 1.0) unless the genre justifies it: --genre docs retains the outline-following tell (heading_preview) because reference docs still should not read as a preview-then-fulfill template.
  • Preservation warnings that show a dropped or changed negation, hedge, scope word, number, date, name, quote, URL, unit, or code identifier. The default gate warns without failing; run validate_preservation.py --strict for legal, medical, security, or scientific text so these exit non-zero.
  • Staccato cadence in readability metrics.
  • Rubric score below 32/40 in strict mode.

When a structure_scan.py or silhouette_scan.py flag persists after a rewrite, don't re-prompt with vague "fix the structure" — no model self-checks macro shape. Feed the scanners' findings back as targeted directives and regenerate with evals/run_structure_climb.py (generate→scan→directive→regenerate, preservation-guarded; see references/pipeline.md, "Macro structure under the climb").

Validation scripts are necessary but not enough. Re-read negations, conditionals, scope, certainty, and party relationships yourself.

Output Format

For a quick rewrite, return the cleaned text only. For audit-only (cleanup --report):

## Issues Found

- [Quoted issue, category, severity, why it reads as AI]

## Assessment

- [Which issues are clear problems]
- [Which issues are judgment calls or context-dependent]

For strict or requested analysis:

## Transformed Text

[The humanized version]

## Validation

- Constraints: [X]/[Y] preserved
- AI patterns: [N] remaining (was [M])
- Structure: [pass/fail]
- Readability: Grade [X], sentence variance [Y]
- Change: [X]% from original
- Score: [X]/40

Quick Examples

Input:

Here's the thing: building products is hard. Not because the technology is complex. Because people are complex. Let that sink in.

Output (crisp):

Building products is hard, and not because the technology is complex. People are complex, and they are the part you cannot refactor.

Input:

In today's fast-paced business environment, it's becoming increasingly important for organizations to leverage their core competencies while navigating the complex landscape of digital transformation.

Output (crisp):

Companies need to use their strengths while going digital.

Reference Files

File When to Read
references/commands/*.md The routed command flows (rewrite, cleanup, teach, mimic, contribute).
references/pipeline.md Orchestrated tiered execution for multi-agent harnesses.
references/mimic.md Teach/mimic internals: card anatomy, scoring, baselines, the --refine loop.
references/harvest.md Harvest adapter internals, contamination tripwire, privacy rules.
references/calibrate.md The teach A/B calibration game: pairs, scoring, conflict surfacing.
references/packs/*.md Small detector-agent rule packs.
references/taboo-phrases.md Authoritative phrase catalog and scanner categories.
references/fact-preservation.md Constraint preservation rules.
references/rubric.md Strict scoring.
references/edit-library.md Transformation examples when a pattern is unclear.
references/personality-guide.md Adding genuine voice without fake personality.
references/maintenance.md Pattern add/list procedures and Wikipedia sync.
presets/*.md Voice-specific deltas.
assets/examples/*.md Extended before/after examples by content type.

Maintenance

The eval suite defines the product. Add or change patterns eval-first in evals/adversarial-evals.json; do not edit evals/evals.json. New scanner patterns need one false-negative row and one false-positive protection row. Agent behavior changes need a skill row and a regenerated shared benchmark. For the concrete procedures (add a phrase or structure, list current patterns, sync with Wikipedia's signs-of-AI-writing page), read references/maintenance.md. Found a new AI-ism in the wild? references/commands/contribute.md turns the exact snippet into an eval row and a structured PR, keeping both user-confirmation gates.