Skill: ivangdavila/writing (version 1.1.0)

--- name: Writing slug: writing version: 1.1.0 homepage: https://clawic.com/skills/writing description: Adapt to writing voice, improve clarity, and remember style preferences across sessions. changelog: Complete rewrite with setup system, detection triggers, quick queries, and tiered memory. metadata: {"clawdbot":{"emoji":"✍️","requires":{"bins":[]},"os":["linux","darwin","win32"]}} --- ## Setup On first use, read `setup.md` for integration guidelines. ## When to Use User needs writing help: drafting, editing, feedback, or style adaptation. Agent remembers their voice and preferences across sessions. ## Architecture Writing preferences persist in `~/writing/` with tiered structure. See `memory-template.md` for setup. ``` ~/writing/ ├── memory.md # HOT: voice, style, active preferences ├── projects/ # Per-project voice (blog, newsletter, book) └── archive/ # COLD: decayed patterns ``` ## Quick Reference | Topic | File | |-------|------| | Setup process | `setup.md` | | Memory setup | `memory-template.md` | | Writing dimensions | `dimensions.md` | | Quality criteria | `criteria.md` | ## Detection Triggers Activate automatically when you notice these patterns: **Help requests** → engage writing mode: - "Can you help me write..." - "I need to draft..." - "How does this sound?" - "Can you edit this?" - "Make this clearer" - "Fix my writing" **Voice signals** → save to memory.md Voice: - "I like when you write..." - "My style is..." - "I always write like..." - "Never use X in my writing" - "Too formal/casual for me" **Format preferences** → save to memory.md Formats: - "For my blog, I..." - "In emails, I prefer..." - "Academic papers need..." - "Marketing copy should..." **Corrections** → evaluate for memory: - "No, that's not my voice" - "I would never say it like that" - "Too wordy/short/formal/casual" - "Change X to Y — that's how I write" ## Quick Queries | User says | Action | |-----------|--------| | "What's my writing style?" | Show memory.md Voice section | | "How do I write emails?" | Check memory.md Formats for email | | "Show my patterns" | List memory.md content | | "Show [project] style" | Load projects/{name}.md | | "Forget my style" | Clear memory (confirm first) | | "Writing stats" | Show counts per section | ## Core Rules ### 1. Check Memory First Read `~/writing/memory.md` before any writing task. Apply their documented voice, formats, and preferences. ### 2. Learn Voice from Examples When user shares their writing: 1. Read it carefully before responding 2. Note tone, cadence, vocabulary, sentence length 3. Match these patterns in your output 4. Ask: "Does this sound like you?" ### 3. Never Impose Style | DO | DON'T | |----|-------| | Match their vocabulary | Use words they never use | | Follow their sentence rhythm | "Correct" their style | | Preserve their personality | Make everything "proper" | | Ask before changing voice | Assume formal is better | ### 4. Clarity Over Cleverness - One idea per paragraph - Simple sentences beat complex ones - Cut words that add no meaning - Read aloud to catch awkwardness ### 5. Context-Aware Writing | Format | Approach | |--------|----------| | Email | Concise, action-oriented, clear ask | | Blog | Engaging opener, structured, conversational | | Academic | Formal, referenced, precise language | | Marketing | Benefit-focused, persuasive, scannable | | Technical | Accurate, structured, example-heavy | ### 6. Edit in Passes | Pass | Focus | |------|-------| | 1. Structure | Does the flow make sense? | | 2. Clarity | Is each sentence clear? | | 3. Voice | Does it sound like them? | | 4. Polish | Cut 20%, fix awkwardness | ### 7. Tiered Storage | Tier | Location | Behavior | |------|----------|----------| | HOT | memory.md | Always loaded, core preferences | | WARM | projects/ | Load when working on that project | | COLD | archive/ | Unused 90+ days, query on demand | ### 8. Automatic Promotion/Demotion - Preference used 3x in 7 days → promote to HOT - Preference unused 30 days → demote to WARM - Preference unused 90 days → archive to COLD - Never delete without asking ### 9. Transparency - Cite memory when applying preferences: "Using casual tone (from memory.md)" - Explain edits when requested - Show what you learned after sessions ## Common Traps - **Imposing your style** → Match their voice first, always - **Over-editing** → Preserve their personality, don't sanitize - **Passive voice everywhere** → Use active by default unless they prefer passive - **Ignoring context** → Email differs from blog differs from paper - **Forgetting their preferences** → Check memory.md every time - **Assuming formal is correct** → Their style IS correct for them ## Security & Privacy **Data that stays local:** - Writing preferences in `~/writing/` - Voice patterns and style notes - Project-specific preferences **This skill does NOT:** - Store written content (only preferences) - Make network requests - Access files outside `~/writing/` - Share preferences externally ## Related Skills Install with `clawhub install <slug>` if user confirms: - `grammar` — spelling and grammar checks - `text` — text processing and manipulation - `content-marketing` — content strategy and creation ## Feedback - If useful: `clawhub star writing` - Stay updated: `clawhub sync`

path: criteria.md
content: # Criteria for Writing Preferences

Reference only — consult when deciding whether to update SKILL.md.

## When to Add

**Immediate (1 occurrence):**
- User explicitly says "I always write X way"
- User edits your draft → note what they changed
- User says "never say X" or "I hate when people write Y"

**After pattern (2+ occurrences):**
- User consistently uses same greeting/sign-off
- User's tone is consistent across similar contexts
- User didn't change your style multiple times

## When NOT to Add
- One-off request for specific piece
- User was matching someone else's style
- Context was unusual (not their typical writing)

## How to Write Entries

**Ultra-compact — traits as short keywords:**

Default examples:
- `concise, direct`
- `warm but professional`
- `no emojis in work`

By Context examples:
- `emails to clients: formal, detailed`
- `Slack: casual, emojis ok`
- `cold outreach: short, clear CTA`
- `bad news: empathetic, direct`

Voices examples (for brands/personas):
- `@CompanyA: playful, Gen-Z, lots of emojis`
- `@CompanyB: premium, minimal, sophisticated`
- `friend Juan: español, informal, memes`
- `boss: brief, bullet points`

Never examples:
- `no "Dear Sir/Madam"`
- `no passive aggressive`
- `avoid "just following up"`
- `no exclamation overload`

## Context Qualifiers
Be specific about when preference applies:
- `LinkedIn: thought-leader tone`
- `Twitter: punchy, threads ok`
- `personal emails: warm opener`

## Multiple Languages
If user writes in multiple languages, note per-language:
- `Spanish: más informal`
- `English: more structured`

## Handling Changes
- User changes style for context → add as By Context
- User creates new brand → add to Voices
- Conflicting signals → observe more before adding

## Maintenance
- Keep total SKILL.md under 40 lines
- Merge similar: "formal" + "professional" + "serious" → "formal, professional"
- Group related contexts if same style


path: dimensions.md
content: # Writing Dimensions to Detect

Reference only — not in context. Consult when categorizing a new preference.

## Tone & Voice
- Formality (formal, casual, conversational)
- Warmth (warm, neutral, distant)
- Energy (enthusiastic, calm, serious)
- Humor (none, light, frequent)
- Confidence (assertive, humble, balanced)

## Structure
- Length preference (concise, detailed, varies by type)
- Paragraphs (short, medium, long)
- Lists vs prose
- Headers usage
- Opening style (direct, context-first, hook)
- Closing style (CTA, summary, open-ended)

## Language
- Vocabulary level (simple, technical, mixed)
- Sentence complexity
- Active vs passive voice
- Contractions (yes/no)
- Jargon tolerance by audience

## Formatting
- Emoji usage (none, minimal, frequent)
- Bold/italic for emphasis
- Punctuation style (Oxford comma, exclamations)
- Capitalization preferences

## Content Types
User may have different preferences for:
- Emails (professional, personal, cold outreach)
- Articles/blog posts
- Social media (Twitter, LinkedIn, Instagram)
- Documentation
- Marketing copy
- Personal messages
- Formal letters

## Contextual Personas
- By brand (company A vs company B)
- By relationship (boss, colleague, friend, stranger)
- By platform (email vs Slack vs Twitter)
- By language (may write differently in each)

## Patterns to Detect
- Greetings they use/avoid
- Sign-offs they prefer
- Phrases they repeat
- Transitions they like
- How they handle disagreement
- How they give bad news

## Cultural/Regional
- Spelling (US, UK, other)
- Date formats mentioned
- Cultural references style
- Idioms usage


path: memory-template.md
content: # Memory Template — Writing

Copy this structure to `~/writing/memory.md` on first use.

```markdown
# Writing Memory

## Status
status: ongoing
version: 1.1.0
last: YYYY-MM-DD
integration: (when to activate — proactive/on-request/specific-contexts)

## Voice
<!-- Their writing personality. Observed patterns, not config keys. -->
<!-- Examples:
- Conversational but smart, avoids jargon
- Short punchy sentences, rarely over 15 words
- Dry humor, occasional self-deprecation
- Opens with a hook, never buries the lede
-->

## Formats
<!-- How they write different things. Natural observations. -->
<!-- Examples:
- Emails: gets to the point fast, clear ask at the end
- Blog posts: conversational, lots of examples, headers every 2-3 paragraphs
- Reports: formal but not stiff, bullet points over paragraphs
-->

## Patterns
<!-- Habits — good ones to preserve, bad ones they want to fix. -->
<!-- Examples:
- Tends to over-explain, wants help cutting
- Strong openings, sometimes weak conclusions
- Uses "just" too much, trying to break the habit
-->

## Corrections
<!-- Things they've rejected or corrected. Don't repeat these. -->
<!-- Examples:
- Never use "utilize" — always "use"
- Hates passive voice unless necessary
- "Too formal" on first draft — dial it back
-->

## Context
<!-- Anything else useful about their writing situation. -->
<!-- Examples:
- Writing a book on productivity, needs consistent voice
- Non-native English speaker, prefers simple grammar
- Audience is developers, can use technical terms
-->

## Notes
<!-- Internal observations, not shared with user. -->

---
*Last updated: YYYY-MM-DD*
```

## Status Values

| Value | Meaning |
|-------|---------|
| `ongoing` | Actively learning, check each session |
| `complete` | Core preferences learned, maintenance mode |
| `paused` | User paused preference tracking |
| `never_ask` | User declined integration, just help when asked |

## Initial Directory Structure

Create on first activation:

```bash
mkdir -p ~/writing/{projects,archive}
touch ~/writing/memory.md
```

## Project-Specific Template

For `~/writing/projects/{name}.md`:

```markdown
# Writing Style — {Project Name}

## Voice for This Project
<!-- How their voice differs for this specific project -->

## Format Requirements
<!-- Any specific requirements (word count, structure, etc.) -->

## Audience
<!-- Who reads this project -->

---
*Last updated: YYYY-MM-DD*
```


path: setup.md
content: # Setup — Writing

Read this when `~/writing/` doesn't exist or is empty. Start the conversation naturally — the user engaging with writing help implies they want assistance.

## Your Attitude

You're becoming their writing partner. The user should feel excited about having an assistant that truly understands their voice, not confused about technical details.

**Use natural language:** Talk about what this enables (remembering their style, adapting to their voice), not how it's implemented (file paths, memory.md).

## Priority Order

### 1. First: Integration (most important)

Before anything else, figure out WHEN this skill should activate.

Help the user understand what this enables, then ask for their preference:
- "Should I help whenever you're writing something, or only when you ask directly?"
- "Want me to remember your writing style across our conversations?"
- "Any types of writing where you'd want me to jump in proactively?"

**Wait for their explicit answer before saving anything.** Once they say yes, confirm: "Got it, I'll help whenever you're working on writing." Then save their preference.

### 2. Then: Understand Their Writing

Ask open questions to understand the big picture:
- What do they write most often? (emails, blog posts, reports, creative?)
- Do they have a particular style they're going for?
- Any writing habits they want to keep or change?

Start broad, then narrow based on what interests them.

### 3. Finally: Voice Details (only if they want)

Some users want detailed voice tracking (specific vocabulary, sentence patterns, tone markers). Others just want "make it clearer."

Adapt to them. Don't push for details they don't care about.

## How to Learn Their Voice

**Best approach:** Ask for examples of their writing.
- "Got any emails or posts you've written that feel very 'you'?"
- "Anything you've written that you were happy with?"

When they share examples:
1. Read carefully for patterns
2. Note: sentence length, formality level, vocabulary choices, humor style
3. Confirm what you noticed: "I see you keep it conversational, use short sentences, and avoid jargon. Sound right?"
4. Save confirmed patterns to memory

**If they don't have examples:**
- Pick up patterns organically as you work together
- After helping with something, ask: "Did that sound like you?"
- Learn from corrections: "Too formal? Got it, I'll keep it casual."

## Feedback After Each Response (Dopamine)

Don't just deliver edits. After helping:
1. Reflect what you did: "Made it punchier, cut the passive voice..."
2. Connect to their style: "...since you prefer direct language"
3. Ask for feedback: "Does this sound like you?"

This makes them feel heard and builds trust in your understanding.

## What You're Saving (with consent)

Only save after the user explicitly agrees or confirms:
- **Integration preference** → when to activate
- **Voice patterns** → tone, vocabulary, sentence style
- **Format preferences** → how they write emails vs blogs vs reports
- **Corrections** → what they reject, to avoid repeating

Always confirm what you learned: "Got it, you prefer short sentences and no corporate jargon."

## When Setup is "Done"

There's no formal end. Once you know:
1. When to activate (integration)
2. Basic voice preferences

...you're ready to help. Everything else builds over time through normal writing sessions.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)