ryanthedev/oberskills · Archived

write

>- Drafts, edits, and reviews prose to remove the AI tells a model cannot see in its own writing — measured detection signals, not intuition: structural rhythm first (sentence-length variance, information density, discourse order), a reader-job type router second (narrative, expository, persuasive, marketing, expressive, announcement), the surface kill-list third (banned phrases, em-dash overuse, hollow openers, hedging), with optional private voice profiles and a phased interactive review for …

First seen Jul 16, 2026

Installation

$ npx skills add ryanthedev/oberskills --skill write

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from ryanthedev/oberskills.

npx skills add ryanthedev/oberskills

Browse all from ryanthedev/oberskills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 60
License MIT
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 10,874 B
  • docs SUMMARY.md 948 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

write

The Problem

Next-token prediction selects against surprise. RLHF narrows output toward a bland center. The result is prose that reads like a committee voted on every sentence.

What readers detect in authentic writing is cost: a specific person chose these words, believed they were right, and was willing to be judged. You have no stakes, so you compensate with discipline.


Modes

Mode When Output
EDIT (default) Drafting or improving prose Rewritten text only
REVIEW "review writing", "analyze this prose" Interactive phased review

EDIT: Editing supplied text, or drafting new text from a description. Silently fix everything. Return only improved text. No meta-commentary.

REVIEW: Help the author improve through guided discovery. One issue group at a time. See [Review Protocol](#review-protocol) below.


Type — match the reader's job

Before editing or drafting, name what the reader is trying to do with the text: follow a story, understand why, decide what to believe, decide to act, meet a voice, learn what changed. That job — not the container it ships in (email, blog, doc) — sets the spine. Load references/types.md in this skill directory for the reader-job taxonomy: per-type craft rules, the characteristic AI failure for each, and the cross-type register-consistency check. Apply the matching row on top of the core rules below.


Voice — match a specific person (optional)

When the ask is "write this in my voice" / "make this sound like me" / "does this sound like me", overlay a voice profile. Humanizing is table stakes; the voice is the point — a piece that's merely "human" but doesn't sound like the target person has failed.

Voice profiles are private and live outside this skill. Resolve one in order:

  1. An explicit path or URL given in the request.
  2. $WRITEVOICESDIR/<name>.md if that variable is set.
  3. ~/.claude/writing-voices/<name>.md — the default private dir. "my voice" / "me" resolves to the author's own profile there.

If none resolves, say so and offer to author one from voices/_template.md in this skill directory — don't invent a voice. Once resolved, load the profile and apply its register ladder and patterns after the core rules and surface pass.

Drafting long-form (Claude-only)

For drafting long-form or voiced prose from scratch on Claude Code, consider routing the draft to a stronger model and running the EDIT pass locally. See references/fable-drafting.md in this skill directory (labeled Claude-specific; skip on other hosts).


Core Rules (always active)

These five rules address the structural signals that the blind-test research identified as hardest to fake and most robust for detection. They beat surface cleanup by a wide margin. The thresholds below trace to the corpus cited in the references' source headers — Pangram Labs, the UCC stylometric study, QUDsim, and the 147-paper synthesis (2025–2026).

1. Lurch

Vary sentence length violently. Shortest under five words. Longest over thirty. Never three consecutive sentences within five words of each other. Monotone sentence length is the #1 rhythmic detection signal.

Human sentence length SD: ~12 words. AI: ~6. Human burstiness: ~0.334. AI: ~0.184. If your sentences cluster within a 4-word range, rewrite.

2. Spike

Vary information density across paragraphs. Pack one tight. Let the next breathe — one idea, circled slowly. Map density to investment: compress when you care, give room when you're uncertain. Uniform density is a machine tell.

3. Wander

Don't follow the outline. Start with what's interesting. Circle back. Digress. Discourse-level predictability is the most robust detection signal in the literature — it survives paraphrasing, vocabulary swaps, even style transfer.

After drafting, map the implicit questions your piece answers. If they follow a predictable arc (setup → complication → resolution → reflection), shuffle them. Start with the answer. Bury the setup. Let the complication arrive late.

4. Shift Register

Move between precise and casual within a piece. Technical for a sentence, then conversational. Follow a careful argument with something wry. One tone sustained across an entire piece is a costume, not a voice.

Have an opinion when the context calls for one. "Both approaches have merits" is cowardice when one is clearly better.

5. Get Specific

Never write for everyone. Reference a particular paper, a particular failure, a particular afternoon. The universal is always less convincing than the particular. Research confirms it: human writing wins on "personal experiences and specific cultural backgrounds" while LLMs optimize for crowd-median appeal.

Ground claims in concrete detail. Replace "many teams experience" with the specific team, the specific tool, the specific failure. Unglamorous details ("they went back to a wiki checklist") are more convincing than dramatic ones.


Surface Rules (auto-loaded for EDIT)

On EDIT, silently load references/surface-rules.md in this skill directory for the kill list, em-dash ban, hollow openers, hedge limit, transition ban, contraction requirement, sycophancy patterns, and adverb fixes.

These catch the obvious tells. The core rules above catch the structural ones.


Deep Craft (load on demand)

For long-form writing, deep edits, or when surface + core isn't enough, load references/deep-craft.md in this skill directory. Contains the syntactic, rhetorical, and discourse signals that survive surface cleanup — verb poverty, discourse flow templating, vocabulary register range, name selection patterns, cliche metaphors, clause-level parallelism. Numbers live in the reference.

When to load:

  • Pieces over 1000 words
  • Creative or narrative writing
  • When a piece passes surface checks but still "feels AI"
  • User asks for deep edit

Final Edit Pass

Before returning, apply:

  1. Sentence length range — shortest vs longest. Less than 20-word gap? Fix it.
  2. Three consecutive same-length sentences? Break one.
  3. Register — did you shift at least twice? If one tone throughout, inject a shift.
  4. Kill list — scan for banned words/phrases from surface rules.
  5. Density — every paragraph the same density? Compress one, stretch another.
  6. Specificity — at least one concrete reference a generic model wouldn't produce?
  7. Structure — could someone predict the organization from the first paragraph? Rearrange.
  8. Em-dashes — more than one? Replace extras with commas, colons, periods, or parentheses.
  9. Register — does any sentence belong to a different type than the one you chose? Pull it back (see references/types.md in this skill directory).

Review Protocol

Crisis Invariants

Check Why
Read full text BEFORE presenting issues Need full picture to prioritize
Understand audience BEFORE suggesting fixes Wrong audience = wrong advice
One issue group at a time Wall of violations = nothing gets fixed
Socratic questions when fix needs author knowledge Can't fix vagueness from outside
Confirm before moving to next batch Unconfirmed fixes compound
Offer EDIT pass when review is complete Review without action = wasted work

Phases

1. SCAN (silent): Read full text. Identify violations. Rank by impact. Classify scope:

Signal Scope Approach
< 200 words, clear purpose Quick 2-3 top issues, then offer edit
200-1000 words, some AI tells Medium Prioritized groups, 2-3 rounds
> 1000 words or heavily robotic Deep Full phased review, load deep-craft

2. ORIENT: Present quick diagnostic. Ask ONE question about audience/purpose/constraints. Wait.

3. TOP ISSUES (2-3 max): For each: [quote] → [rule] → [concrete fix or Socratic question]. Then: "Want me to fix these, or talk through any?" Wait.

4. NEXT BATCH: After response, present next priority group. Repeat until covered or user says enough.

5. OFFER EDIT: Switch to EDIT with gathered context.

Review Tone

Be an editor, not a critic. Every violation gets a concrete suggestion or a question that helps the author find the fix.

Never say: "This is weak." / "Name it." Instead ask: "What's the one thing that makes this different?" / "If you explained this to a new hire, what would you say?"

Socratic Patterns

Problem Question
Generic mission "What makes [X] different from every other [Y]?"
Vague benefit "Can you name a specific time this helped someone?"
Buzzword section "If you couldn't use any of these words, how would you explain this?"
Flat opening "What's the most surprising thing about this that most people get wrong?"

Limited Context Strategy

When context is tight:

  1. Write your draft
  2. Dispatch a subagent with the draft + references/surface-rules.md in this skill directory
  3. Subagent edits and returns revision

For deep edits, also include references/deep-craft.md in this skill directory.


Integration

  • prompt: Use write to polish prompt text humans read
  • skill-craft: Apply when writing skill descriptions and documentation
  • web-research: Apply to synthesis output before presenting to user