zenn-format
Zenn 記事の frontmatter・記法・テンプレートの正本。emoji/topics 選定、Markdown 記法、コード埋め込みのベストプラクティスを扱う。文体・執筆プロセスは扱わない(zenn-practical-writing / zenn-idea-voice を参照)。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Zenn 記事の frontmatter・記法・テンプレートの正本。emoji/topics 選定、Markdown 記法、コード埋め込みのベストプラクティスを扱う。文体・執筆プロセスは扱わない(zenn-practical-writing / zenn-idea-voice を参照)。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Zenn/Dev.to の記事(tech/idea 問わず全て)を書くときの既定スキル。実用軸——「読者が数秒で何かわかり、そのまま手を動かして再現できる」——を正本として保持する。低情報密度・実コード/図・即実用・低認知負荷・用途が瞬時にわかる。文体は ですます調。Zenn/Dev.to は type で声を分けない。AI-slop 禁止・タイトル誠実さ・ネタ 3 軸は writing-ecosystem に defer。genuine な思索エッセイ(だ/である × 発見調)は Substack corpus へ。
記事公開前の全チェック(レビュー→セキュリティ→frontmatter→published_at→スケジュール→Dev.to クロスポスト→push)を順に実行する。
記事バッチの公開順序と日程を 4 軸スコアリングで決定し schedule.json に反映する。投稿タイミングの値は zenn-writing.md が正本。
Zenn 記事のタイトル・topics・emoji を Distribution レイヤーで最適化する(内容は変えない、ADR-0001)。タイトル原則・AI slop は writing-ecosystem、文字数は zenn-writing.md が正本。
Claude Code をオーケストレーター(PM)として、執筆チームを編成・指揮する
Zenn/Dev.to 記事の任意の personality flavor。毒の効いたユーモア(AI をツッコミ対象にするシニカルな語り)と刃牙リファレンス(ドメイン置換・ダミーデータ)を保持する。type(tech/idea)問わず、話題が合えば実用記事にも layer できる。essay の基本声(だ/である × 発見調)は writing-ecosystem に defer。
| name | zenn-format |
| description | Zenn 記事の frontmatter・記法・テンプレートの正本。emoji/topics 選定、Markdown 記法、コード埋め込みのベストプラクティスを扱う。文体・執筆プロセスは扱わない(zenn-practical-writing / zenn-idea-voice を参照)。 |
| user-invocable | true |
| origin | original |
Purpose: Zenn 記事の形式・記法・テンプレートのリファレンス。 文体・執筆プロセスは zenn-practical-writing が正本(任意の personality flavor は zenn-idea-voice)。
Every Zenn article MUST start with YAML frontmatter:
---
title: "Your Article Title (50 chars preferred, 60 max)"
emoji: "📚"
type: "tech" # "tech" or "idea"
topics: ["claude", "anki", "ai", "python", "tdd"] # 1-5 tags, lowercase
published: true # false for draft
---
# Article content starts here
| Field | Required | Description | Examples |
|---|---|---|---|
title | ✅ | Article title (50 文字以内推奨、60 まで許容 — 正本: .claude/rules/zenn-writing.md) | "TDD で作る pdf2anki の品質保証パイプライン" |
emoji | ✅ | Single emoji representing the article | "📚", "🔬", "🤖", "⚡" |
type | ✅ | Article type | "tech" (technical) or "idea" (opinion/essay) |
topics | ✅ | 1-5 tags (lowercase, no spaces) | ["claude", "anki", "python", "tdd"] |
published | ✅ | Publication status | true (public) or false (draft) |
published_at | Optional | Scheduled publish time (Zenn-specific). Format spec and gotchas: .claude/rules/zenn-writing.md | 2026-04-15 07:00 (JST) |
emoji・topics の選定基準はこのスキルが正本(
seo-optimizerは提案フローのみ持ち、基準はここに defer する)。
| Theme | Recommended Emojis |
|---|---|
| AI/LLM | 🤖, 🧠, 💬, ✨ |
| Anki/Learning | 📚, 🎓, 🔖, 📝 |
| Testing/Quality | 🔬, ✅, 🧪, 🎯 |
| Development | ⚙️, 🛠️, 💻, 🏗️ |
| Performance | ⚡, 🚀, 📊, 🔥 |
| Architecture | 🏛️, 🗺️, 🧩, 🌐 |
Common tags:
claude - Claude AI / Claude Codeanki - Anki flashcard systempython - Python programmingtdd - Test-Driven Developmentcli - Command-line toolsautomation - Workflow automationTag guidelines:
python, typescript)https://zenn.dev/topics/<tag> を確認し、記事数0や存在しないタグを弾く)openai(数千記事)より的を絞った harness(数十〜百記事)の方が、対象読者に届きやすく埋もれにくい)。定着している(0記事ではない)ことは要件だが、記事数が多いことは優先理由にならないai / llm のような一般名すぎるタグは単独で使わない(検索性・差別化に寄与しない)。同じ概念を指すならより具体的な語(製品名・技術名・skills 等の機能カテゴリ)に置き換える# 問題: [具体的な問題]
## 背景: なぜこれが重要か
## 実装: [解決策]
### テストファースト (TDD)
### 実装詳細
## 結果: [数値で示す改善]
## 学び: [個人的な洞察]
## まとめ
# なぜ [設計方針] か
## 従来のアプローチとその限界
## [設計方針] とは何か
### 原則 1-3
## 実装例
## トレードオフと代替案
## 結論: いつこのアプローチを選ぶべきか
# Day 1: [フェーズ 1]
## 失敗から学ぶ
# Day 2: [フェーズ 2]
## 予期せぬ問題
# Day 3: [フェーズ 3]
## 結果: [数値データ]
## 振り返り: N つの教訓
Always specify language for syntax highlighting:
```python
def _tokenize(text: str) -> set[str]:
"""Tokenize text for similarity comparison."""
tokens = re.split(r"[\s 、。??!!,.\-::]+", text)
return {t for t in tokens if len(t) >= 2}
```
Supported languages: python, typescript, javascript, bash, json, yaml, markdown, diff
Include file paths for code snippets:
```python
# src/pdf2anki/quality.py:322-329
def _tokenize(text: str) -> set[str]:
...
### Images
Store images in `/images/` directory:
```markdown

Image guidelines:
architecture-diagram.png not img1.png# External links
[Anki公式サイト](https://apps.ankiweb.net/)
# Internal links (within Zenn) — フル URL 必須
# 相対パス(/articles/xxx)は Zenn 上で正しく解決されない(.claude/rules/zenn-writing.md 参照)
[前回の記事](https://zenn.dev/shimo4228/articles/previous-article-slug)
# Footnotes
テキスト[^1]
[^1]: 補足説明
:::message
重要な情報やヒント
:::
:::message alert
警告や注意事項
:::
:::details 折りたたみ可能なセクション
詳細情報をここに
:::
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Data 1 | Data 2 | Data 3 |
Show only what's needed to illustrate the point:
Good:
# Show only the relevant function
def _tokenize(text: str) -> set[str]:
tokens = re.split(r"[\s 、。??!!,.\-::]+", text)
return {t for t in tokens if len(t) >= 2}
Bad:
# Showing entire file including unrelated imports and functions
from __future__ import annotations
import json
import logging
# ... 100+ lines of irrelevant code
# BAD: No context
tokens = re.split(r"[\s 、。??!!,.\-::]+", text)
# GOOD: With context
# Split on whitespace and common Japanese/English punctuation
tokens = re.split(r"[\s 、。??!!,.\-::]+", text)
For refactoring or improvements, show both versions side by side.
公開前チェック(レビュー→セキュリティ→frontmatter→published_at→スケジュール→クロスポスト→push)の正本は publish-article。ここでは再掲しない。
~/.claude/agents/editor.md - Technical review criteria(グローバル agent。プロジェクト外のため相対リンク不可)