agentsclimarketplace

Clear copy

Skill DesiredPathConsulting/clear-copy/skills/clear-copy

Use when writing or revising bar-journal / legal-analysis prose for human readers (law review online supplements, circuit court analysis, SCOTUS argument analysis, legal-policy commentary, legal blog posts on Lawfare/SCOTUSblog/Yale Journal/Balkinization-style outlets). Calibrated against a law-review corpus (long sentences, dense citations, negative Flesch are normal). Skip for marketing/landing-page prose (use clear-copy-marketing instead), formal disclaimers, code, structured data.From its SKILL.md

Install
npx -y skills add DesiredPathConsulting/clear-copy --skill clear-copy

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

15.0 KB, ~3.4k tokens by cl100k_base, as published. Nobody here has run it

Clear-Copy Skill

A prose linter, not a humanizer. The skill scores prose against a calibrated reference register, flags AI-tells and mechanical issues, and leaves the rewrite to the writer. Every commercial alternative (Undetectable, Humbot, StealthGPT, WriteHuman) and every public Claude Code skill in this space (blader/humanizer, Aboudjem, voice-humanizer, conorbronsdon) is a rewriter. This one isn't. The writer learns the calibration.

Sentence-length variance is the load-bearing engagement metric. Some detection literature calls this signal "burstiness" (e.g., GPTZero's whitepaper, where it is operationalized as the coefficient of variation of sentence length). The tool computes standard deviation of sentence length, which serves the same role: low values flag uniform, machine-like rhythm. The engagement target and the detection-evasion target are the same number, which is what makes the metric useful.

Register-awareness as a methodological choice

Burstiness-based detection has been criticized (Pangram's own essay, 2024; multiple false-positive studies) for elevated false-positive rates on formal registers and non-native English: 15-45% FPR depending on the study. Bar-journal prose runs long, citation-dense, and low-Flesch by convention; scoring it against marketing-register thresholds produces nonsense. The two-register design in this skill (this clear-copy register tolerates long sentences and dense citations; clear-copy-marketing does not) is the response to that problem. Calibrating against a target corpus is the correction.

Generation-time principles (apply while drafting)

  1. Visualizable, falsifiable, non-obvious. Every claim either paints a picture (concrete noun, specific scene), can be checked (a number, a citation, a falsifiable statement), or delivers genuine insight a practicing attorney couldn't derive from a Google search. If a sentence fails all three, cut or rewrite. When a claim rests on research the reader can't independently verify, state the method briefly inline: "A review of all 51 bar opinion pages as of April 2026 found..." beats an unsourced generalization.
  2. Concrete nouns, calibrated. "Two-attorney firm in Tampa" beats "small firms in Florida" when the specificity matters. "Small firms" is right when generalizing across many. Do not auto-specify; pick the level that serves the claim.
  3. Sentence-length variance. Mix short with long. A 4-word sentence next to a 25-word sentence creates the rhythm readers feel as human. Standard deviation of sentence length is the single load-bearing stat.
  4. Do not manufacture variance. A 4-word sentence must carry meaning. Empty fragments are worse than uniform length. Anti-pattern: "It works. The system runs. Here's why." (Three filler fragments, no information.)
  5. Universal hedge blocklist. Avoid:
    • "In today's [X] landscape"
    • "When it comes to"
    • "It's worth noting that"
    • "Whether you're X or Y"
    • "At the end of the day"
    • "Moreover/Furthermore/Additionally" as sentence openers
    • Note: "It's important to" is NOT on this list. It is load-bearing in legal disclaimers and similar contexts.
  6. Opener variance. Of the first 5 sentences, no more than 2 should start with the same construction (subject pronoun, "The X is," "When X," "If X," etc.).
  7. Paragraph rhythm. Vary paragraph length. Vary paragraph openers. AI prose often has fine sentence variance but every paragraph is the same length and shape (3-5 sentences each, all topic-sentence-then-support).
  8. No em dashes. Use commas, colons, parentheses, periods.
  9. Voice over polish. A specific awkward sentence in the writer's voice beats a smooth generic one. Where the writer's voice exists in source material (notes, transcripts, prior drafts), preserve idiom.
  10. Mechanical sanity checks (these replace any "read-aloud" intuition):
    • Cap sentence length at 35 words. Restructure anything longer.
    • Limit prepositional-phrase chains: at most 2 in a row before a clause break.
    • Avoid 3+ consecutive sentences with the same syntactic skeleton.
    • Heading check: headings should describe what the section delivers, not promise more. "What the Florida Bar Said About AI Fees" beats "Game-Changing Guidance on AI." If a heading overpromises relative to the content below it, rewrite the heading or expand the content.
  11. Experience signals. When writing from first-hand knowledge (original case review, direct sourcing, site research), surface that concretely. "After reviewing 300+ AI sanctions cases in this tracker" beats "many courts have addressed this." Where first-hand experience doesn't exist, cite the primary source who does. Prose that shows the author read the order or did the slow work ranks and reads better than prose that doesn't.

YMYL check

Legal content is subject to heightened E-E-A-T scrutiny because it can affect financial and professional outcomes for law firms. Before marking a draft complete, confirm:

  • No material jurisdictional exception was omitted. A state survey that skips a binding rule is worse than no survey.
  • Every claim that could affect a firm's compliance decision traces to a verifiable source.
  • The piece's scope is clearly bounded: a reader should know exactly what it covers and what it doesn't.

Vocabulary-level AI tells (drafting blocklist)

Statistical variance can come out clean while the prose is still riddled with vocabulary that's instantly AI-coded. Sourced from Wikipedia's "Signs of AI writing" and observed AI output.

AI-era vocabulary (single words): delve, testament, enduring, intricate, intricacies, tapestry, pivotal, vibrant, underscores/underscoring, showcase (as verb), garner, foster (as verb), groundbreaking, nestled, breathtaking. Project-specific additions: leverage (as verb), robust (as marketing adj), seamless/seamlessly, best-in-class, cutting-edge, unlock (marketing verb), empower (marketing verb), future-proof, "navigate the complexities of", "in an ever-changing regulatory landscape".

Copula avoidance. Replace "serves as a / stands as a / functions as a / marks a [pivotal] moment / represents a shift" with plain "is" or "has". "The opinion is the leading authority" beats "The opinion serves as the leading authority."

Vague attributions. "Experts believe", "industry observers note", "critics argue", "some sources suggest" are AI tells AND violate the project rule that all claims trace to a primary source. Either name the source or cut the claim.

Knowledge-cutoff disclaimers. "As of my last training", "while specific details are limited", "based on available information", "readily available sources". These are chatbot artifacts that should never ship.

Generic positive conclusions. "The future looks bright", "exciting times lie ahead", "a major step in the right direction", "journey toward excellence". Replace with a specific concrete next thing or cut.

Persuasive authority tropes. "At its core,", "the real question is", "what really matters", "the deeper issue", "the heart of the matter". The sentence that follows usually just restates an ordinary point with extra ceremony.

Signposting. "Let's dive in", "let's explore", "let's break this down", "here's what you need to know", "without further ado". Cut the announcement and start the actual sentence.

Negative parallelisms. "It's not just X, it's Y." "Not only X but Y." Tail-negation fragments ("no guessing", "no wasted motion") tacked onto the end of a sentence. Convert to direct positive statements.

-ing tacking. Present-participle phrases tacked onto the end of a sentence to fake depth: "..., highlighting/underscoring/reflecting/contributing to/symbolizing/emphasizing X." Either cut the tail or split it into its own sentence with a real subject.

False ranges. "From X to Y" where X and Y aren't on a meaningful scale. "From the singularity of the Big Bang to the dance of dark matter" is decorative, not informative.

Triple rhetorical question hook. Opening with two or three short questions back-to-back to manufacture intrigue ("What if X? What if Y? What if Z?"). Replace with a direct opening claim or a specific story.

Three-part negation. "It's not about X. It's about Y. It's about Z." or "It's not just X. It's not just Y. It's also Z." Replace with a single direct sentence stating the actual point.

Stat bomb opener. Three or more standalone statistical fragments in sequence ("80% of firms. $400 average premium. 12 weeks to renewal."). Weave the numbers into real sentences with subjects and context.

Punchy orphan closer. Ending a paragraph or section with a standalone short fragment as a mic-drop ("Game changer." / "And it works." / "Every time."). Either fold it into the prior sentence or replace it with a real concluding thought.

Curly quotes. Use straight " and '. Smart quotes (", ", ', ') are a ChatGPT default that should never ship.

Verification flow (when writing prose >=5 sentences for the user)

After drafting, run the stats compute. Tool location: tools/prose-check.mjs (at the root of this repo). Always pass --register=legal for this skill (the default, but specify it for clarity).

The reference algorithm is in references/stats-compute.md. The reference distribution is in references/comparison-samples.md.

  1. Compute: sentence-length mean and stdev, paragraph-length mean and stdev, Flesch reading ease, abstract-noun ratio, hedge regex hits, vocab/phrase hits, curly-quote count, opener-pattern flag, mechanical flags (long sentences, prep chains, repeated-shape runs).

  2. Look up comparison ranges from the corpus. Output a stats block in this shape:

    Stats for this draft:
    - Score: 84 / 100  (PASS)
    - Sentence-length stdev / burstiness: 7.2  (within target)
    - Mean sentence length: 18 words  (within target)
    - Flesch reading ease: 52
    - Abstract-noun ratio: 4.0 / 100 words  (within target)
    - Paragraph-length stdev: 1.1 sentences
    
    Mechanical flags (-0 pts): None.
    Hedges (-0 pts): None.
    Vocab and phrasing (-3 pts):
    - 3 vocab/phrase AI tells:
      - vocab (2): line 4: "pivotal", line 11: "underscores"
      - copula (1): line 7: "serves as a"
    
  3. Emit this block into the response so skipping is visible.

  4. Revise if the draft has multiple load-bearing metrics in AI-sample range AND any mechanical flag. Single-metric outliers are not auto-revise triggers.

Final anti-AI audit pass

After the stats-block revision settles, run one more pass before declaring the draft done. Ask, in your own context: "What about this still reads as AI-generated?" Answer with 2-3 specific tells (rhythm too tidy, closer too slogan-y, unnamed source still vague, etc.). Then revise to address them. This catches voice-level patterns that no regex will.

This pass is from blader/humanizer. It's lightweight and high-yield: half the time it surfaces a tell the metrics missed.

Real enforcement

The stats block is a soft check during writing. The hard gate is a project-level CI script (see references/ci-enforcement.md) that runs the same algorithm in GitHub Actions on every PR. Any project that adopts this skill should also wire the CI script if it has content that's at risk of AI flags.

Review-loop pattern (batch reviews)

When reviewing more than ~5 prose files in one session, do not edit them serially in the main context. The cost is that the main context fills up with file content, slowing every subsequent step.

Instead:

  1. Triage first. Run node scripts/prose-check.mjs --triage <files> to get one line per file, sorted worst-first, with the top 3 deductions for each. This is the per-file budget allocator: no need to read pages that scored 80+.
  2. Diff mode for inspection. For pages you intend to fix, --diff prints the offending spans (long sentences, prep chains, vocab hits) without the full stats block. Faster signal than reading the page.
  3. Subagent dispatch per file. For the actual rewrites, dispatch one Explore-or-general-purpose subagent per file (or per small group of related files) with: the file path, the prose-check output, and the relevant generation-time principles. The main context only sees the resulting diffs.
  4. Re-run triage at the end. Confirm the sweep moved scores in the right direction; spot-check anything that regressed.

Source format note

For .astro / .tsx / framework-component pages, score the built HTML in dist/, not the source files. Source-side regex extraction is heuristic and misses prose passed via component props or slots. Run npm run build first, then node scripts/prose-check.mjs --html --triage dist/<paths>. The CLI honors data-prose-check-ignore on any element and has a default skip list for legal/utility pages (privacy, terms, disclaimer, accessibility, 404, search).

The skill itself stays one skill. This pattern is the workflow that makes batch reviews cheap.

Prior art and how this skill differs

Each metric this skill computes has documented prior art. The contribution is the combination: deterministic CLI + AI-tell lexicon + corpus-calibrated thresholds + transparent scoring formula, in one pass.

  • Wikipedia's "Signs of AI writing" (May 2026, WikiProject AI Cleanup): catalogs vocabulary tells, em-dash overuse, negative parallelisms, rule-of-three lists. Does not cover sentence-length variance, perplexity, or burstiness. This skill adds the statistical layer the Wikipedia article omits.
  • blader/humanizer, Aboudjem/humanizer-skill, conorbronsdon/avoid-ai-writing, dannwaneri/voice-humanizer: all Claude Code skills covering the lexical axis (vocabulary blocklists, pattern lists). All prompt-based; none ship a deterministic CLI with reproducible numbers. The Aboudjem skill emits a 0-100 score with undisclosed formula. This skill publishes the formula (see references/stats-compute.md).
  • proselint (Suchow & Griffiths, 2016): rule-based style linter using expert-codified rules with fixed thresholds. No corpus calibration, no AI-tell coverage. This skill adds both.
  • GPTZero / Pangram / Copyleaks / DetectGPT / Binoculars: detectors targeting the same signals (perplexity, burstiness, n-gram repetition). Closed; flag rather than explain at writer-actionable granularity. This skill exposes the same signals in writer-facing output.
  • Stylometric corpus comparison (Burrows's Delta, 2002, and the genre-aware variants): score a candidate text against a reference distribution. This skill inverts the typical detection use case: a domain corpus as a positive style target for a human writer, not as detector training data. Closest published analog; the inversion is the contribution.

What ships with it: 3 files

14.7 KB alongside SKILL.md

Keep looking

Skills are one crate of 326,499. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.