| name | write |
| description | Use when producing newsletters, articles, reports, shorts, or social content |
| effort | high |
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 2000, article 3000, report 4000) 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
- Run
/second-claude-code: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.
- 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.
- Draft content following loaded format spec and voice constraints.
- Run
/second-claude-code:review --preset quick UNLESS --skip-review flag is set. This step is MANDATORY by default.
- 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:
--voice flag (explicit override — always wins)
## Tone Rules in .data/soul/SOUL.md (personal preferences — merge with voice guide)
.data/soul/templates/STYLE.md defaults (bilingual baseline)
- 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:
Format Rules
newsletter: 6-stage arc, minimum 2000 words, at least 2 research data points
article: minimum 3000 words
report: minimum 4000 words with numbered recommendations
shorts: around 300 words 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:
- Inform the user: "Article format minimum is 3000 words, you requested ~800."
- Offer alternatives: switch to
shorts or social format, OR keep article at full length.
- 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
/second-claude-code:review.
Subagents
writer: { model: opus, constraint: "follow format rules, voice, and length minimums" }
editor: { model: opus, constraint: "address all Critical and Major review items" }