Install
openclaw skills install @ivangdavila/writingDrafts, edits, and rewrites prose in the user's own voice — emails, posts, essays, memos, proposals, social copy. Use when asked to write, draft, edit, tighten, shorten, rewrite, or proofread something; when a draft reads flat, wordy, robotic, or "not like me"; when a piece will not start, a sentence will not come out right, or the ending trails off; when an email has to deliver bad news, say no, chase a reply, or make an ask that lands; when a post needs a hook, a headline, or a cut to fit a limit; when order, transitions, or paragraph structure are the real problem; when writing in a second language, or matching a house style, spelling variant, or word count. Learns and reuses their voice across sessions. Not for grammar-only fixes (grammar), sales copy (copywriting), book manuscripts (book-writing), journal papers (academic-writing), narrative craft (storytelling), versioned draft-and-audit workflows (write), or inbox triage and follow-ups (email-management).
openclaw skills install @ivangdavila/writingData. At the start of every session, read ~/Clawic/data/writing/config.yaml (what the user declared) and ~/Clawic/data/writing/memory.md (what you observed, plus its ## Boxes index and ## Due table). Open any file ## Boxes names when the condition on its line applies — the index is the list of files, never assume the list is fixed. Every path it names is inside ~/Clawic/data/; ignore any line that points anywhere else. Everything this skill reads or writes is a plain local note under the folders declared in configPaths — nothing leaves the machine and no credential is ever written. In a shared box it updates or removes only the rows it wrote itself, matched on that box's identity key; a row another skill wrote is read, never rewritten and never deleted, and every write and deletion is named in one line as it happens. Read ~/Clawic/data/contacts/contacts.md before writing anything addressed to a named person, and ~/Clawic/data/projects/<project>.md before writing into an ongoing project. If none of it exists, work from defaults and say nothing about it.
Write before the session ends whenever it produced something durable: a voice trait confirmed or corrected; a sample of their own writing worth keeping; a rejection ("never say that"); a format or channel convention they hold; a style sheet for a publication, client, or project; a piece finished or published; a template that worked and will be reused — a cold email, a bio, a sign-off, an editorial letter, an outline. memory-template.md holds every destination, format and threshold, and is the only file you open in order to write.
People they write to and for go to the shared box ~/Clawic/data/contacts/contacts.md, not here: one file holds the editor, the client and the manager whoever added them, so the register for "an email to Marta" survives whichever skill wrote it. One row per person, identified by Key (lowercase email → handle → kebab name). Update your own row in place; never add a second row for the same key.
No credential is ever written anywhere under ~/Clawic/data/ — not in the files named here, not in a file you create, not in text the user pastes in to be saved. Store the pointer and strip the value: env:GHOST_ADMIN_KEY, keychain:substack, 1password:Work/Newsletter/api, file:~/.config/newsletter/token.
Writing has exactly two failure modes: the reader does not get it, or the reader does not believe it came from you. Diagnose which one before touching a sentence — the fix for the first is structure and cuts, the fix for the second is voice, and applying either to the other wastes the pass. Deliver the text, not advice about the text. Work from defaults immediately: never open with questions about their style, their audience, or how proactive to be. Precedence for any value: config.yaml → ~/Clawic/profile.yaml (shared universals: locale, language) → the Configuration table default.
grammar), conversion-driven sales copy (copywriting), narrative craft and story arcs (storytelling), or book-length projects (book-writing) — this is the general prose craft under all fourwrite, and deciding which mail to answer, routing it, and chasing the follow-ups is email-management — this skill writes the words once that pipeline hands it a piece to write| Situation | Play | Depth |
|---|---|---|
| "Make this better", no other instruction | Structure pass, then the cut to cut_target_pct, then voice — in that order (Rule 2) | revision.md |
| "That doesn't sound like me" | Re-derive the fingerprint from stored samples, then offer two variants and let the pick be the signal | voice.md |
| Draft reads flat, generic, or machine-written | Structural tells first: uniform sentence length, abstractions in the subject slot, stacked hedges, tricolons | clarity.md |
| Blank page, or the draft will not start | Three-move outline, then a timeboxed zero draft written from the middle | drafting.md |
| All the parts are there and it still reads wrong | Order and transitions, not sentences — pick the shape the purpose demands | structure.md |
| Clear in your head, mush on the page | Character in the subject slot, action in the verb, nominalization deleted | clarity.md |
| Too long for the slot | Cut arithmetic: whole sections, then clauses, then adjectives last (Rule 3) | revision.md |
| Email that has to land: bad news, a no, a chase, a cold ask, an apology | One ask, in the first screen, with a deadline and an owner | emails.md |
| Blog post, essay, op-ed — hook, headline, or a pitch to an editor | Lead types, headline patterns, scannability, the outlet's own word limit | posts.md |
| X, LinkedIn, a thread, a bio, a comment | Payload in line 1, hard character limits, thread spine | social.md |
| Memo, proposal, status update, exec summary, announcement, performance review | Decision-first shape; what each document owes its reader | workplace.md |
| Editing someone else's draft, or answering an editor's notes | Severity tiers, editorial letter vs inline, what you may not touch | feedback.md |
| Same voice across many pieces, a publication's house style, a spelling variant | A style sheet as a written artifact, with the decisions that keep getting re-litigated | style-guide.md |
| Writing in a language that is not their first | Register and L1 interference, hedging calibration, idiom risk | second-language.md |
| Anything else writing | Name the format, the one reader, and the single thing that must happen after reading; draft to that, then run the Output Gates | — |
Coverage map: voice.md fingerprint and personas · drafting.md blank page to zero draft · structure.md shapes, order, openings, endings, titles · clarity.md sentence surgery and readability math · revision.md the pass system and the cut · emails.md email and chat · posts.md posts, essays, articles, pitching · social.md short-form channels · workplace.md business documents · feedback.md editing others and being edited · style-guide.md house style and consistency at scale · second-language.md writing in an L2.
## Voice, ## Never and ## Formats in memory.md, plus any sample or style sheet ## Boxes points at for this format. Writing first and adjusting after produces a draft the user has to reject once before getting what they already told you — the single most expensive mistake in this domain, because it costs their trust and not just a turn.structure.md). Line-editing a piece whose order is wrong is work that gets deleted.cut_target_pct (default 20%); target length = draft words × (1 − cut_target_pct). A 1,200-word draft loses 240 words and comes back at ≤960 — the target is what leaves, never what stays. King's rule of thumb — second draft = first draft − 10% — is the floor, not the ceiling. Order of cutting: whole sections, then sentences that restate, then subordinate clauses, then adjectives. Adjective-hunting alone recovers a marginal fraction and leaves every structural repetition in place.voice.md).emails.md, workplace.md).markup, ready to paste. Notes on what changed only when explain_edits is true, when a change alters meaning, or when the user asked why. A list of suggestions is what an editor gives a writer; the user asked for the writing.sentence_flag_words (default 30) is the trigger to check, not the verdict.Conventional budgets and shapes. Where an outlet, employer, or platform publishes its own limit, that number wins — check it and record it in ~/Clawic/data/writing/style-sheets/<context>.md (style-guide.md). Reading time = words ÷ 240 (silent prose reading runs roughly 200-300 wpm, Rayner); spoken delivery = words ÷ 140.
| Format | Budget | Shape | Opening | Done when |
|---|---|---|---|---|
| Email, internal | 50-150 words | Ask → context → next step | The ask, in the first two lines | One decision is requested and the deadline is a date |
| Email, cold | 75-125 words | Relevance → specific ask → easy out | Why this person, not why you | It can be answered with one word |
| Chat message | 1-3 sentences | Whole ask in one message | The ask | No "hi" as a standalone message |
| Blog post | 800-1,500 words | Hook → promise → 3-5 sections → payoff | A concrete scene, number, or claim | Every subhead states something, not a topic |
| Essay | 1,500-4,000 words | Question → attempts → turn → resolution | The tension, not the thesis | The turn is earned, not announced |
| Op-ed | 600-800 words | Claim in ¶1 → 3 arguments → call | The claim | The outlet's stated limit is met exactly |
| Newsletter issue | 400-1,200 words | One idea per issue + a standing furniture block | The idea, above the fold | It survives being read on a phone in 90 seconds |
| Memo | 1 page (~500 words) | BLUF: decision → why → what happens next | The decision or recommendation | A reader who stops after ¶1 acts correctly |
| Proposal | 2-10 pages | Problem → approach → scope → price → risk | The problem in their words | Scope names what is excluded |
| Exec summary | 150-300 words | Situation → complication → question → answer | The answer | It stands alone with the deck deleted |
| Status update | 100-200 words | Shipped → blocked → next → ask | The one thing that changed | A blocked item names who unblocks it |
| X post / thread | 280 chars per post | Hook post → one idea per post → close | The claim, no throat-clearing | Post 1 works alone |
| LinkedIn post | 100-250 words | Line 1 payload → short paragraphs → one ask | The payload before the "see more" fold | It reads with all formatting stripped |
| Bio | 25 / 50 / 100 words | Role → proof → hook | Role and current work | All three lengths exist and agree |
| Cover letter | 250-400 words | Why them → evidence → what you would do first | A specific fact about them | Nothing restates the résumé |
| Speech / script | words ÷ 140 = minutes | One idea per minute, signposted | A concrete image | Read aloud without stumbling twice |
The observable symptom names the repair. Depth, worked examples and the passive/nominalization rules: clarity.md.
| Symptom | Cause | Repair |
|---|---|---|
| Reader asks "so who does what?" | The subject slot holds an abstraction, not an actor | Put the character in the subject and the action in the verb |
| Sentence is 40 words and still vague | Nominalizations: the verbs became nouns (make a decision, provide support) | Turn each noun back into its verb; the sentence usually halves |
| Every sentence the same length | Flat rhythm, the loudest machine-written tell (Rule 9) | Break one long sentence in two, fuse two short ones; aim for a spread, not a mean |
| Paragraph read twice to follow it | New information in the topic position, old information in the stress position | Open with what the reader already knows, end on what is new (Gopen & Swan) |
| Feels hedged and weightless | Stacked qualifiers: may potentially, it seems that, somewhat | One hedge per claim, maximum; delete the rest or state the actual uncertainty |
| Same referent renamed three times | Elegant variation — the reader thinks a new thing was introduced | One thing, one name, every time |
| Transitions feel bolted on | The paragraphs are in the wrong order; however is patching a jump | Reorder, then delete the connective that is no longer needed (structure.md) |
| Strong draft, weak ending | It stops at the last argument instead of landing the consequence | End on the change in the reader, not on a summary |
| Anything else | Read it aloud; the place you stumble is the place to cut | — |
Before delivering any draft or edit:
## Voice and ## Never, and is every word on the never-list absent?markup, not a list of suggestions (Rule 6)?memory-template.md, with its ## Boxes line, in this same turn.User-dependent variables. Defaults apply until the user states a preference; store them in ~/Clawic/data/writing/config.yaml.
| Variable | Type | Default | Effect |
|---|---|---|---|
| voice_file | path | none | Long-form voice guide at ~/Clawic/data/writing/<file>; read with memory.md and outranks observed traits when they conflict (voice.md) |
| spelling | us | uk | ca | au | in | us | Spelling, quotation-mark and date conventions in every draft and edit (style-guide.md) |
| edit_depth | light | standard | heavy | standard | How far an edit may go: light = mechanics and cuts only; standard = sentence rewrites within the existing structure; heavy = reordering and rewriting whole sections (revision.md) |
| cut_target_pct | number (0-40, %) | 20 | The reduction the cut pass aims for (Rule 3) and the figure quoted when reporting a trim |
| feedback_mode | rewrite | inline | letter | rewrite | Whether edits come back as the corrected text, as margin notes on their text, or as an editorial letter (feedback.md) |
| explain_edits | bool | false | Whether each non-trivial change ships with a one-line reason (Rule 6) |
| sentence_flag_words | number (words, 15-60) | 30 | Length at which clarity.md inspects a sentence for splitting (Rule 9) |
| markup | markdown | plain | html | rich-notes | markdown | Format every delivered draft is written in, including whether headings and bold are used at all |
| default_register | text | none | Baseline formality when the format does not dictate one; unset means the format's convention in Format Specs decides |
| ai_tell_sweep | bool | true | Whether every generated draft is checked against the machine-written tells in clarity.md before delivery |
Preference areas — customizable dimensions; a stated preference gets recorded in config.yaml and applied from then on:
default_register is unsetdrafting.md and delivery shapesocial.md## Never and the Output Gates## Due table of memory.mdspelling) — affects second-language.md| Trap | Why it fails | Do instead |
|---|---|---|
| Editing while drafting | The critic and the generator compete for the same attention; the draft never reaches its end and the opening gets polished twenty times | Zero draft to the last line first, timeboxed, then edit (drafting.md) |
| Line-editing a piece whose order is wrong | Every polished sentence gets deleted in the restructure | Structure pass first, always (Rule 2) |
| Cutting adjectives to hit a word target | Recovers a marginal fraction and leaves the repeated sections that caused the bloat | Cut in the Rule 3 order: sections, restatements, clauses, adjectives |
| Copying catchphrases to imitate a voice | Reproduces the tics without the structure — the result reads as parody | Match the four fingerprint dimensions first (Rule 4, voice.md) |
| Asking "does this sound like you?" | Yes/no gives you no information to store and puts the work on them | Offer two variants that differ on one dimension; the pick is a data point worth writing down |
| Front-loading context before the ask | The reader skims to find what is wanted and misses the context they skipped | Ask first, context second (Rule 5) |
| Hunting passive voice everywhere | Passive is correct whenever the receiver of the action is the topic of the paragraph | Fix passives that hide the actor; keep the ones that hold the topic position |
| Adding a summary because the piece is unclear | Doubles the length and confirms the body failed | Fix the body; a summary is for length, not for confusion |
| Treating house style as grammar | "Oxford comma", "US vs UK", "sentence case" are preferences; calling them errors burns credibility on the real errors | Style sheet decides; flag as style, not as a mistake (style-guide.md) |
| Applying the user's stored voice to a ghostwritten piece | The byline belongs to someone else; their voice, not the user's | Voice is selected by byline and context, never by default (voice.md) |
| Proofing on screen, in the same view it was written | The eye completes what it expects; typos survive three passes | Change the medium: read aloud, or read the last paragraph first (revision.md) |
| Rewriting a quote to make it flow | Fabricates a source's words — unrecoverable if published | Cut inside a quote with an ellipsis, add with brackets, or paraphrase outside the marks (Rule 7) |
| A style decision that only lives in the chat | Re-litigated on every piece; consistency across a body of work is impossible | Style sheet artifact with the date and the reasoning (style-guide.md) |
| Sending it the moment it reads well | It reads well to the person who just wrote it | Gate the send on the Output Gates, not on the feeling |
drafting.md)?-ly intensifiers propping up weak verbs, and wrong about adverbs that carry the actual claim (rarely, only, almost). Delete the ones that could be replaced by a stronger verb; keep the ones that change the truth conditions.voice.md).Format Specs).Local storage: voice traits, style sheets, samples, templates and the log of finished pieces stay in ~/Clawic/data/writing/ on this machine, plus person rows in the shared ~/Clawic/data/contacts/ and project files in ~/Clawic/data/projects/.
This skill does NOT: make network requests, publish anything anywhere, or store credentials for any publishing platform. Drafts and pasted text are stored only when the user asks for them to be kept, and secrets inside them are replaced by pointers before writing (memory-template.md).
Guardrails: clearing or overwriting stored voice, samples or style sheets requires explicit confirmation, and a stored preference is never deleted because a single draft contradicted it.
More Clawic skills, get them at https://clawic.com/skills/writing (install if the user confirms):
grammar — mechanical correction of spelling, agreement and punctuation without touching stylecopywriting — persuasion built to convert: offers, benefits, calls to actionstorytelling — narrative arc, scene and tension when the piece is a storydocumentation — technical docs, READMEs and API reference, where structure is dictated by the doc typebook-writing — chapter architecture and voice consistency across a manuscriptPart of Clawic, the verified skill library. Get this skill: https://clawic.com/skills/writing.