Skip to content
Skills Library
Marketing & content · Writing

write

/write

Use when producing newsletters, articles, reports, shorts, or social content

Licence
MIT
Last repository change
22.10.2026

Assessment and security

96/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability21 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
11
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 22.10.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Use when producing newsletters, articles, reports, shorts, or social content

Original author description

Use when producing newsletters, articles, reports, shorts, or social content

How it works

  1. Iron Law
  2. Red Flags
  3. When to Use
  4. Workflow
  5. Options
  6. Soul-Aware Voice Resolution
  7. Voices
  8. Voice Checklist
  9. Format Rules
  10. Length Negotiation
Original SKILL.md headings · 117 lines, 952 words
SKILL.md preview
---
name: write
description: "Use when producing newsletters, articles, reports, shorts, or social content"
effort: high
user-invocable: false
---

## Iron Law

> **Never publish content without research and review.**

## Red Flags

- "I'll skip the research step, I know enough about this topic" → STOP, because writing without sources falls back to training knowledge silently — warn the user or provide `--input`.
- "The review found issues but they're minor, ship it" → STOP, because Critical and Major findings must be addressed before output — review is mandatory, not advisory.
- "I'll figure out the format as I go" → STOP, because the format spec file must be loaded before drafting — writing without it produces structure drift.
- "This is only 800 words but it covers everything" → STOP, because format minimums (newsletter 10000, article 4000, report 5000 chars of body) are hard rules — negotiate length with the user, never silently truncate.
- "The voice doesn't matter for this piece" → STOP, because tone inconsistency is the top reader-trust killer — load the voice guide and verify the voice checklist before finalizing.

# Write

Produce content with automatic research and review unless the caller explicitly skips those steps.

## When to Use

- The user asks for a draft, article, newsletter, report, short-form script, or social post
- Another skill needs polished written output

## Workflow

1. Run `/scc:research` UNLESS `--skip-research` flag is set OR source material is already provided via `--input`. **Guard**: If `--skip-research` is set but no `--input` is provided and no source material exists in the conversation, warn the user: "No source material provided. Output will rely on training knowledge only. Continue?" Do NOT silently fall back to training knowledge.
2. Load format spec AND voice guide: read `references/formats/{format}.md` (required — abort if missing) and `references/voice-guides/{voice}.md` (recommended). If the voice guide file doesn't exist, proceed using the default voice characteristics from the Voices table mapping below.
3. Draft content following loaded format spec and voice constraints.
4. Run `/scc:review --preset quick` UNLESS `--skip-review` flag is set. This step is MANDATORY by default.
5. Address all Critical and Major review findings. Re-read the review output and apply fixes.

## Options

| Flag | Values | Default |
|------|--------|---------|
| `--format` | `newsletter\|article\|shorts\|report\|social\|card-news` | `article` |
| `--voice` | `peer-mentor\|expert\|casual` | format-specific |
| `--publish` | `notion\|file` | `file` |
| `--skip-research` | flag | off |
| `--skip-review` | flag | off |
| `--lang` | `ko\|en` | `ko` |
| `--input` | file path | none |
| `--constraints` | comma-separated strings | none |

`--constraints`: Review findings injected as hard requirements for this draft. Each entry is enforced as a non-negotiable rule during drafting and is not open to negotiation with the user. Passed automatically by the PDCA Act→Do route; can also be supplied manually.

When `--input` is provided (or when called from a pipeline with `input_from`), the file content is injected as source context and `--skip-research` is implied.

## Soul-Aware Voice Resolution

Voice is resolved in this priority order:
1. `--voice` flag (explicit override — always wins)
2. `## Tone Rules` in `.data/soul/SOUL.md` (personal preferences — merge with voice guide)
3. `.data/soul/templates/STYLE.md` defaults (bilingual baseline)
4. Format voice guide from the Voices table below

If `.data/soul/SOUL.md` exists, read its `## Tone Rules` section and treat those rules as non-negotiable constraints on top of the selected voice guide. Soul tone rules override format defaults but never override an explicit `--voice` flag.

## Voices

| Voice | Default For |
|-------|-------------|
| `peer-mentor` | newsletter |
| `expert` | report, article |
| `casual` | shorts, social, card-news |

## Voice Checklist

Before finalizing, verify:
- [ ] At least one first-person example (peer-mentor) OR authoritative citation (expert) OR conversational aside (casual)
- [ ] Tone is consistent throughout — no voice mixing
- [ ] CTA present for shorts/social formats

## Format Rules

- `newsletter`: 6-stage arc, minimum 10000 chars of body, at least 2 research data points
- `article`: minimum 4000 chars of body
- `report`: minimum 5000 chars of body with numbered recommendations
- `shorts`: around 1800 chars with a mandatory CTA
- `social`: platform-optimized short post
- `card-news`: slide-by-slide narrative with visual direction

## Length Negotiation

When user-specified length conflicts with format minimums:
1. Inform the user: "Article format minimum is 4000 chars, you requested ~800."
2. Offer alternatives: switch to `shorts` or `social` format, OR keep `article` at full length.
3. If user insists on short article, respect user intent but note the override in output metadata.

Never silently truncate or silently exceed the user's request.

## Auto-Save

After the review step (or after drafting if `--skip-review`), save the final content:

- Path: `.captures/write-{format}-{slug}-{YYYY-MM-DD}.md`
- `{slug}` = topic lowercased, spaces to hyphens, max 40 chars
- Write the full content using the Write tool. Do NOT skip this step.
- Tell the user the saved path.

When `--publish notion` is set: requires a configured Notion MCP connection (`mcp__claude_ai_Notion__notion-create-pages`). Create a Notion page with the content, then save the local .md file. If Notion MCP is not available, warn the user and save to file only.

## Gotchas

- Do not skip research unless real sources are already supplied.
- Do not start writing before loading the format spec file.
- Do not output content without running the review step (unless `--skip-review` is explicitly set).
- Do not miss the CTA in shorts or conclusions.
- Do not ship the reviewed version without addressing Critical and Major issues. Minor issues may be deferred.
- Severity levels follow the shared taxonomy: **Critical** (ship-blocking), **Major** (significant gap), **Minor** (polish). Same as `/scc:review`.

## Subagents

```yaml
writer: { model: opus, constraint: "follow format rules, voice, and length minimums" }
editor: { model: opus, constraint: "address all Critical and Major review items" }
```
Files in this package (11)
  • SKILL.md 6 KB
  • gotchas.md 1 KB
  • references/formats/article.md 1 KB
  • references/formats/card-news.md 1 KB
  • references/formats/newsletter.md 1 KB
  • references/formats/report.md 1 KB
  • references/formats/shorts.md 1 KB
  • references/formats/social.md 1 KB
  • references/voice-guides/casual.md 1 KB
  • references/voice-guides/expert.md 1 KB
  • references/voice-guides/peer-mentor.md 1 KB

Versions

RepositoryScoreLicence
This page · unclejobs-ai/second-claude-code96MIT
tw93/Waza100MIT
mimshins/ork100MIT
waynesutton/builder-skills100Apache-2.0
iankiku/forwward-teams100MIT
nagisanzenin/idiolect100MIT
petitchu/holocron100MIT
researai/deepscientist95Apache-2.0
markusleben/ha-nova90MIT

Database snapshot: 13.11.2026 · package version 2bf4192e0295 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 95linkedin-content-creator
    Create LinkedIn content including posts, articles, carousels, and newsletters for professional growth. Triggers on "write a linkedin post", "linkedin article", "linkedin carousel", "thought leadership", "professional post".
  • 100podcast-content-suite
    Transform podcast transcripts into comprehensive content marketing suites including blog posts, social media content, newsletters, SEO-optimized articles, and timestamps. Use when user provides podcast transcripts or wants to repurpose podcast content.
  • 90social-content-strategy
    Use when planning social media content, calendars, captions, hooks, video scripts, hashtags, or channel adaptation.
  • 100ac-writing-blog-posts
    Write blog articles and generate social media posts to promote them. Use when user says "blog", "article", "write post", "blog post", or wants to create/update a blog article or generate social media content.
  • 100distribution-plan
    Use when planning social, community, PR, founder-led content, newsletters, audience building, or recurring distribution between launches.
  • 100content-writer
    Research topics and write content like blog posts, articles, and marketing copy. Use when a user asks to write a blog post, create an article, draft marketing copy, write website content, create a newsletter, produce thought leadership content, or write any long-form or short-form copy.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.