ワンクリックで
write-article
Write well-structured professional articles. Use when creating blog posts, technical articles, or thought leadership content.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Write well-structured professional articles. Use when creating blog posts, technical articles, or thought leadership content.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Generate the release announcement package for a finished blog article — Google-Sheet row fields plus three LinkedIn-post variants — and print everything to the terminal as copy-ready templates. Final, terminal step in the article pipeline.
Develop a blog article topic through a guided conversation. Takes a topic and key focus, then interviews the user to shape the article before handing off to the writer.
Enrich a blog article with cross-links to OpenCQRS documentation, abbreviation tooltips, admonitions, and content annotations. Fully automatic — reads the article, enriches it, and presents the result.
Critically inspect a written article before enrichment — verify codebase claims with real tool lookups, find internal contradictions, and (for argumentative articles) sparr with the author about over-simplifications, missing counter-cases, and weaknesses a critical reader would catch. The factual + consistency passes run in a sub-agent with a fresh, unbiased context (no brief, no dialogue, no enrichment-notes); only the argumentative dialogue happens in the main session. Writes findings to .article-work/{date}-{slug}/grill-findings.md and appends to the cumulative enrichment-notes.md.
Cross-article topic prospecting. Scans every session folder under .article-work/ (dialogues, briefs, enrichment notes, grill findings) plus published articles, then runs a dialogue with the author to surface patterns, gaps, and candidate next topics. Writes a dated prospecting report to .article-work/_prospect/.
Exploratory technical dialogue about a topic with an open outcome. Acts as an interested expert sparring partner focused on the subject matter and on helping the author clarify what draws them to it and whether it carries enough substance to be worth pursuing further. Does not discuss the shape of any article. Transcribes the conversation and hands off to brainstorm-article with the dialogue as context.
| name | write-article |
| description | Write well-structured professional articles. Use when creating blog posts, technical articles, or thought leadership content. |
| argument-hint | [topic-or-article-brief] |
| allowed-tools | AskUserQuestion, Read, Write, Edit, Glob, Grep, Bash |
Write a professional article based on the following input: $ARGUMENTS
Layout reference: the full artifact layout for the article pipeline is specified in
.claude/article-pipeline.md. This skill readsbrief.md(and optionallydialogue.md) from a session folder under.article-work/{YYYY-MM-DD}-{slug}/, writes the published article intomkdocs/docs/blog/posts/, and appends to the cumulativeenrichment-notes.mdin the same session folder.
Examine the input carefully. It falls into one of three categories:
A) Reference to a Brief Artifact — The input contains a path to a file at .article-work/{date}-{slug}/brief.md (or, for legacy sessions, .claude/article-briefs/). This is the standard handoff from brainstorm-article. Do this:
title, slug, date, optionally dialogue_transcript, and status. Its body is the full Article Brief as approved by the user.dialogue_transcript field. If present, the original dialogue is available at that path (relative to the session folder, typically dialogue.md) as a secondary reference. Do not read it eagerly — but reach for it when you need:
B) Inline Structured Article Brief — The input string itself contains an Article Brief (with **Title:**, **Slug:**, **Category:**, sections, key insights, etc.) rather than a path. This is the older handoff style. Use the brief as-is. Skip Step 2 entirely. Proceed directly to Step 3.
C) Loose topic or instructions — The input is a free-form topic, a rough idea, or a set of instructions without a structured brief. In this case, proceed to Step 2 to gather the information you need before writing.
This step only runs when the input is a loose topic without a structured brief.
First, ask the user whether this article should be based on a specific repository or codebase, or whether it should be written freely without a code reference. Use AskUserQuestion for this.
Then confirm the following with the user via AskUserQuestion:
kersten — confirm or ask for a different author key from .authors.yml)Write the article following all the style and formatting rules defined below. If an Article Brief was provided, follow its structure, sections, key insights, and technical details closely. Present the full article to the user for review before saving.
Once the user approves the article, save it into the mkdocs blog structure. The companion enrichment-notes.md lives under .article-work/{date}-{slug}/ (not next to the article) — see Step 5.
mkdocs/docs/blog/posts/ and incrementing the highest number found.mkdocs/docs/blog/posts/post-{N}-{slug}.md with the following front matter format:---
title: <Article Title>
date: <YYYY-MM-DD>
authors:
- <author-key>
categories:
- <Category>
tags:
- <tag1>
- <tag2>
- <tag3>
slug: <url-slug>
---
Add the <!-- more --> excerpt marker after the introduction paragraph (first paragraph after the H1 heading). This controls where the preview cuts off on the blog index page.
Update mkdocs/mkdocs.yml — add the new post to the nav section under Blog. If the article belongs to a series, add it under the existing series heading. If it starts a new series or is a standalone article, add it as a direct entry under Blog.
Verify the author key exists in mkdocs/docs/blog/.authors.yml. If the author is not yet listed, ask the user for the required information (name, description) and add the entry.
enrichment-notes.mdenrichment-notes.md is the cumulative companion that brainstorm seeds, the writer and grill append to, and enrich-article consumes. The full contract lives in .claude/article-pipeline.md.
File path: in the same session folder as brief.md, e.g. .article-work/2026-06-06-gateway-pattern/enrichment-notes.md. Do not place it next to the published article in mkdocs/docs/blog/posts/.
Expected state on entry: brainstorm-article should have already created this file and written a ## From brainstorm-article ({date}) section. If the file is missing (the user came straight to write without going through brainstorm), create it now with the header and frontmatter from the brainstorm contract; otherwise read it.
Your job: append a new section ## From write-article ({YYYY-MM-DD}) to the end of the file. Never overwrite the brainstorm section. Use the same subsection vocabulary as brainstorm, omitting subsections that have nothing for them:
## From write-article ({YYYY-MM-DD})
### Collapsible Deep Dives (high priority)
<one subsection per planned ??? tip / ??? info box that surfaced during writing — placement, why it matters, 3-6 sentences of content. Or omit.>
### Cross-Link Targets (in addition to those already generated by the standard rules)
<bulleted list of doc paths and the article phrases that should link to them. Or omit.>
### Admonitions (recommended)
<one bullet per planned admonition: type, title, suggested placement, content. Or omit.>
### Abbreviation Tooltips (article-specific, do not duplicate from glossary.md)
<*[Term]: definition lines. Or omit.>
### Content Annotations ({ .annotate } markers)
<concrete anchor phrases and the annotation content. Or omit.>
### External References (for context)
<books, specs, blog posts, papers referenced in writing-time discussions. Or omit.>
### Open Questions / Future-Article Seeds
<topics that came up while writing but do not fit this article and would warrant a separate piece. Or omit.>
### Code Reference Hints (for content annotations or admonitions)
<specific file paths and line numbers the enricher might want to point at. Or omit.>
### Style/Voice Notes for the Enricher
<article-specific style points that emerged from writing. Or omit.>
Sourcing the content:
Maintenance rule: When the user has follow-up questions about the article and the conversation produces new material that would enrich it (a sidebar idea, a naming insight, a missing cross-reference, a clarifying example), append it to the write-article section immediately, with a brief note about where it should land. Do not wait for the enrichment step to remember things.
##). Never use ### or deeper heading levels.**[link text](url)**.