Articlify for zpaper
Convert the current conversation into a zpaper blog article by crafting a detailed writing brief and delegating to the zpaper-writer subagent.
Argument: --conversation
When $ARGUMENTS contains --conversation, the article must preserve the actual
conversation as-is. This means:
NEVER summarize the conversation. Reproduce the actual dialogue flow faithfully.
Keep casual utterances. Words like 「なるほど」「ふーん」「どう思う?」「OK」
「hum...」are meaningful conversational texture — they make the article sound
natural and human. Removing them makes it look AI-auto-written.
Minimal rewriting only. Typo fixes and light formatting are OK. Do NOT
restructure, condense, or rephrase the user's words beyond that.
PRESERVE THE ORIGINAL LANGUAGE. DO NOT TRANSLATE. This is critical. If the
conversation was in English, keep it in English. If it was in Japanese, keep it
in Japanese. If it was mixed, keep both languages as-is. Translating the
conversation to Japanese destroys the original text — it is a total loss of the
source material the user wanted to preserve. The whole point of --conversation
is to capture the raw dialogue, and translation defeats that purpose. The
surrounding frontmatter title and any minimal scaffolding headings MAY be in
Japanese, but the conversation body itself must remain in its original language.
Include the brief in the writing prompt with explicit instruction:
"This is a conversation-style article with --conversation mode. Preserve the
dialogue verbatim IN THE ORIGINAL LANGUAGE. Only fix typos and apply vocabulary
rules. Do NOT summarize, restructure, or translate. If the conversation is in
English, the article body must remain in English."
Workflow
Step 1: Gather context from conversation
Review the conversation history and identify:
- What topic was discussed
- What was tried (approaches A, B, C...)
- What worked and what didn't
- Key technical details, code snippets, commands
- The conclusion or final approach taken
- Any opinions or insights expressed
- Images: Any images attached to the conversation (screenshots, diagrams, etc.)
Step 1.3: Purge confidential information
Before crafting the writing brief, scan the gathered context for client-identifying information:
- Replace client/company names with generic placeholders (
acme-corp, some-client)
- Anonymize project-specific file names and variable names (
some-project, SomeComponent)
- Remove internal URLs and staging URLs
- Remove client-specific internal tool names
Exception: Takazudo's personal projects and Takazudo Modular are public — keep them as-is.
Step 1.5: Handle images (if any)
If images were provided in the conversation (attached screenshots, diagrams, etc.):
Determine the article slug from the topic (e.g., 20260209-package-json-organization)
Create the image directory in the zpaper repo:
mkdir -p $HOME/repos/w/zpaper/doc/public/img/articles/YYYYMMDD-slug/
Copy each image to that directory with a descriptive filename:
cp /path/to/source/image.png $HOME/repos/w/zpaper/doc/public/img/articles/YYYYMMDD-slug/descriptive-name.png
Record the image paths for the writing brief. The markdown reference format is:

Step 2: Craft the writing brief
Create a detailed, self-contained prompt that the writer subagent can use without any conversation context. The brief must include:
- Article topic: Clear one-line description
- Background: Why this was done, what motivated it
- Story arc: The journey (tried X, it failed because Y, then tried Z which worked)
- Technical details: Specific code, commands, configurations, error messages
- Key points to cover: Bullet list of must-include content
- Images: If images were copied in Step 1.5, list each with its markdown path and a description of what it shows and where it should be placed in the article
- Conclusion: What was the outcome, what was learned
- Tone guidance: Any specific angle or framing (if applicable)
- Suggested tags: Suggest tag IDs from the tag list (the writer will read the tags doc). Suggest at most 7 tags — prefer broader tags over overly specific ones. See the tag selection rules in
doc/src/content/docs/overview/tags.md.
The brief must not contain any client-identifying information. All confidential details should have been purged in Step 1.3.
The brief should be written so that someone with zero context could write the full article from it alone.
Step 3: Delegate to subagent
Use the Agent tool to spawn the zpaper-writer subagent with run_in_background: true so the user is not blocked during writing:
Agent tool:
subagent_type: zpaper-writer
run_in_background: true
prompt: [the detailed writing brief from Step 2]
The subagent will:
- Read the repo's writing style guides
- Write the draft article following zpaper conventions (in Japanese by default, but preserving the original language when
--conversation is specified)
- Set
sidebar_position using the formula 999999999999 - YYYYMMDDHHMM (ensures newest articles appear first)
- Save to the draft articles directory (
doc/src/content/docs/articles/)
- Run formatting checks
- Report the file path
Step 4: Report back
After the subagent completes, report:
- The file path of the created draft article
- A brief summary of what was written
- Remind the user to run
/convert-to-article when ready to publish to the blog (that skill is project-scoped to the zpaper repo's own .claude/skills — it is not in this settings repo)
Important Notes
- The writing brief is the ONLY context the subagent receives - make it thorough
- Include actual code snippets, error messages, and command outputs in the brief
- If the conversation involved multiple topics, ask the user which one to articlify
- Images must be copied BEFORE delegating - the subagent cannot see conversation images
- Include the full markdown image reference paths in the brief so the subagent can embed them
- $ARGUMENTS can provide additional guidance on focus or angle
- The subagent writes a draft in the doc site — the conversion to blog MDX is a separate step via
/convert-to-article (a project-scoped skill in the zpaper repo's own .claude/skills, not in this settings repo)
1---2name: zpaper-articlify3description: Convert conversation context into a zpaper blog article via the zpaper-writer subagent. ONLY invoke when the user explicitly asks — NEVER proactively propose. Triggers: 'write zpaper article', 'zpaper記事', 'zpaperに書いて', 'articlify for zpaper', or /zpaper-articlify. Gathers context, creates a writing brief, delegates to the writer subagent.4---56# Articlify for zpaper78Convert the current conversation into a zpaper blog article by crafting a detailed writing brief and delegating to the `zpaper-writer` subagent.910## Argument: `--conversation`1112When `$ARGUMENTS` contains `--conversation`, the article must preserve the actual13conversation as-is. This means:1415- **NEVER summarize the conversation.** Reproduce the actual dialogue flow faithfully.16- **Keep casual utterances.** Words like 「なるほど」「ふーん」「どう思う?」「OK」1718 「hum...」are meaningful conversational texture — they make the article sound19 natural and human. Removing them makes it look AI-auto-written.2021- **Minimal rewriting only.** Typo fixes and light formatting are OK. Do NOT2223 restructure, condense, or rephrase the user's words beyond that.2425- **PRESERVE THE ORIGINAL LANGUAGE. DO NOT TRANSLATE.** This is critical. If the2627 conversation was in English, keep it in English. If it was in Japanese, keep it28 in Japanese. If it was mixed, keep both languages as-is. Translating the29 conversation to Japanese destroys the original text — it is a total loss of the30 source material the user wanted to preserve. The whole point of `--conversation`31 is to capture the raw dialogue, and translation defeats that purpose. The32 surrounding frontmatter `title` and any minimal scaffolding headings MAY be in33 Japanese, but the conversation body itself must remain in its original language.3435- **Include the brief in the writing prompt** with explicit instruction:3637 "This is a conversation-style article with `--conversation` mode. Preserve the38 dialogue verbatim IN THE ORIGINAL LANGUAGE. Only fix typos and apply vocabulary39 rules. Do NOT summarize, restructure, or translate. If the conversation is in40 English, the article body must remain in English."4142## Workflow4344### Step 1: Gather context from conversation4546Review the conversation history and identify:4748- What topic was discussed49- What was tried (approaches A, B, C...)50- What worked and what didn't51- Key technical details, code snippets, commands52- The conclusion or final approach taken53- Any opinions or insights expressed54- **Images**: Any images attached to the conversation (screenshots, diagrams, etc.)5556### Step 1.3: Purge confidential information5758Before crafting the writing brief, scan the gathered context for client-identifying information:5960- Replace client/company names with generic placeholders (`acme-corp`, `some-client`)61- Anonymize project-specific file names and variable names (`some-project`, `SomeComponent`)62- Remove internal URLs and staging URLs63- Remove client-specific internal tool names6465**Exception**: Takazudo's personal projects and Takazudo Modular are public — keep them as-is.6667### Step 1.5: Handle images (if any)6869If images were provided in the conversation (attached screenshots, diagrams, etc.):70711. **Determine the article slug** from the topic (e.g., `20260209-package-json-organization`)722. **Create the image directory** in the zpaper repo:7374 ```75 mkdir -p $HOME/repos/w/zpaper/doc/public/img/articles/YYYYMMDD-slug/76 ```77783. **Copy each image** to that directory with a descriptive filename:7980 ```81 cp /path/to/source/image.png $HOME/repos/w/zpaper/doc/public/img/articles/YYYYMMDD-slug/descriptive-name.png82 ```83844. **Record the image paths** for the writing brief. The markdown reference format is:8586 ```87 88 ```8990### Step 2: Craft the writing brief9192Create a **detailed, self-contained prompt** that the writer subagent can use without any conversation context. The brief must include:93941. **Article topic**: Clear one-line description952. **Background**: Why this was done, what motivated it963. **Story arc**: The journey (tried X, it failed because Y, then tried Z which worked)974. **Technical details**: Specific code, commands, configurations, error messages985. **Key points to cover**: Bullet list of must-include content996. **Images**: If images were copied in Step 1.5, list each with its markdown path and a description of what it shows and where it should be placed in the article1007. **Conclusion**: What was the outcome, what was learned1018. **Tone guidance**: Any specific angle or framing (if applicable)1029. **Suggested tags**: Suggest tag IDs from the tag list (the writer will read the tags doc). Suggest at most 7 tags — prefer broader tags over overly specific ones. See the tag selection rules in `doc/src/content/docs/overview/tags.md`.103104The brief must not contain any client-identifying information. All confidential details should have been purged in Step 1.3.105106The brief should be written so that someone with zero context could write the full article from it alone.107108### Step 3: Delegate to subagent109110Use the Agent tool to spawn the `zpaper-writer` subagent with `run_in_background: true` so the user is not blocked during writing:111112```113Agent tool:114 subagent_type: zpaper-writer115 run_in_background: true116 prompt: [the detailed writing brief from Step 2]117```118119The subagent will:120121- Read the repo's writing style guides122- Write the draft article following zpaper conventions (in Japanese by default, but preserving the original language when `--conversation` is specified)123- Set `sidebar_position` using the formula `999999999999 - YYYYMMDDHHMM` (ensures newest articles appear first)124- Save to the draft articles directory (`doc/src/content/docs/articles/`)125- Run formatting checks126- Report the file path127128### Step 4: Report back129130After the subagent completes, report:131132- The file path of the created draft article133- A brief summary of what was written134- Remind the user to run `/convert-to-article` when ready to publish to the blog (that skill is project-scoped to the zpaper repo's own `.claude/skills` — it is not in this settings repo)135136## Important Notes137138- The writing brief is the ONLY context the subagent receives - make it thorough139- Include actual code snippets, error messages, and command outputs in the brief140- If the conversation involved multiple topics, ask the user which one to articlify141- **Images must be copied BEFORE delegating** - the subagent cannot see conversation images142- Include the full markdown image reference paths in the brief so the subagent can embed them143- $ARGUMENTS can provide additional guidance on focus or angle144- The subagent writes a **draft** in the doc site — the conversion to blog MDX is a separate step via `/convert-to-article` (a project-scoped skill in the zpaper repo's own `.claude/skills`, not in this settings repo)