Install
openclaw skills install draftProfessional first-draft generator. Trigger whenever the user needs to write anything from scratch: emails, reports, articles, proposals, memos, cover letter...
openclaw skills install draftEliminates the blank page. Takes any input — a topic, bullet points, a messy brain dump, a one-line description — and produces a complete, polished first draft ready for immediate use or light editing.
A good first draft is not a perfect document. It is a complete document. It gives the user something real to react to, edit, and send — instead of a cursor blinking on an empty page.
DOCUMENT_TYPES = {
"email": { structure: ["subject","greeting","context","ask","next_step","sign_off"], length: "50-300 words" },
"report": { structure: ["exec_summary","background","findings","analysis","recommendations"], length: "500-2000 words" },
"article": { structure: ["hook","context","body","conclusion","cta"], length: "600-1500 words" },
"proposal": { structure: ["problem","solution","methodology","timeline","investment","next_steps"], length: "400-1200 words" },
"memo": { structure: ["to/from/date/re","purpose","background","action"], length: "150-400 words" },
"cover_letter": { structure: ["hook","why_them","why_me","evidence","ask"], length: "250-400 words" },
"readme": { structure: ["title","description","install","usage","examples","contributing"], length: "300-800 words" },
"social_post": { structure: ["hook","value","cta"], length: "50-500 words depending on platform" }
}
If document type is ambiguous, infer from context. Only ask if it materially changes the output.
brief = {
document_type: classify(user_input),
purpose: what_should_this_accomplish(),
audience: who_will_read_this(),
key_points: what_must_be_included(),
tone: formal | professional | conversational | urgent | warm | bold,
length: short | medium | long,
constraints: deadlines, word_limits, sensitive_topics
}
Inference rules:
Universal writing rules:
Anti-patterns to eliminate:
Present the complete draft. Then offer exactly three targeted options:
Draft complete. Options if you want to refine:
1. [Specific tone adjustment relevant to this draft]
2. [Specific length adjustment relevant to this draft]
3. [Specific content addition relevant to this draft]
Or tell me what to change and I will revise immediately.
TONE_GUIDE = {
"formal": "No contractions. Full sentences. Titles used.",
"professional": "Contractions OK. Direct. Clear. Respectful but not stiff.",
"professional-warm": "Professional baseline plus genuine warmth. Human, not corporate.",
"conversational": "Write like a smart person talking. Short sentences. Real words.",
"urgent": "Lead with the urgency. Short paragraphs. Clear ask. No preamble.",
"bold": "Strong opinions. Active voice. No hedging. Confident assertions."
}