publish-article
記事公開前の全チェック(レビュー→セキュリティ→frontmatter→published_at→スケジュール→Dev.to クロスポスト→push)を順に実行する。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
記事公開前の全チェック(レビュー→セキュリティ→frontmatter→published_at→スケジュール→Dev.to クロスポスト→push)を順に実行する。
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 へ。
記事バッチの公開順序と日程を 4 軸スコアリングで決定し schedule.json に反映する。投稿タイミングの値は zenn-writing.md が正本。
Zenn 記事のタイトル・topics・emoji を Distribution レイヤーで最適化する(内容は変えない、ADR-0001)。タイトル原則・AI slop は writing-ecosystem、文字数は zenn-writing.md が正本。
Claude Code をオーケストレーター(PM)として、執筆チームを編成・指揮する
Zenn 記事の frontmatter・記法・テンプレートの正本。emoji/topics 選定、Markdown 記法、コード埋め込みのベストプラクティスを扱う。文体・執筆プロセスは扱わない(zenn-practical-writing / zenn-idea-voice を参照)。
Zenn/Dev.to 記事の任意の personality flavor。毒の効いたユーモア(AI をツッコミ対象にするシニカルな語り)と刃牙リファレンス(ドメイン置換・ダミーデータ)を保持する。type(tech/idea)問わず、話題が合えば実用記事にも layer できる。essay の基本声(だ/である × 発見調)は writing-ecosystem に defer。
| name | publish-article |
| description | 記事公開前の全チェック(レビュー→セキュリティ→frontmatter→published_at→スケジュール→Dev.to クロスポスト→push)を順に実行する。 |
| user-invocable | true |
| origin | original |
Purpose: 記事公開前の全チェックを一連のフローで実行し、抜け漏れを防止する。
/publish-article articles/ARTICLE_NAME.md
引数なしの場合は published: false の記事一覧を表示し、対象を選択させる。
以下のステップを順番に実行する。各ステップで問題が見つかった場合は修正してから次へ進む。
注: 日本語品質チェック(textlint)・Markdown 構造チェック(markdownlint)は 2026-07 に撤去済み。frontmatter 検証(Step 3 の
npx zenn list:articles)が唯一残る機械チェック。表記・文体統一は執筆時に守る(zenn-practical-writing/.claude/rules/zenn-writing.md)。
writing-team Mission A/B から到達した場合はスキップ(editor/fact-checker/codex-review は writing-team 側で既に並列実行済み)。/publish-article を単独で直接呼んだ場合のみ、このステップで editor エージェントを起動する。
editor エージェントを起動して記事を包括的にレビューする。
レビュー観点:
結果が「MAJOR ISSUES」の場合: 修正してから Step 1 を再実行。
以下を手動で確認する:
/Users/username/ のような個人パスが含まれていないか自動検出パターン:
grep -n '/Users/' {article_path}
grep -n 'sk-proj-\|api_key\|password\|secret\|token' {article_path}
frontmatter 仕様の正本は
zenn-formatskill。ここでは公開前の検証のみ。
npx zenn list:articles
チェック内容:
npm run preview
ユーザーに http://localhost:8000 でのプレビュー確認を促す。
Zenn 公開は published_at 予約投稿方式を使う。
frontmatter に以下を設定:
published: true
published_at: 2026-04-15 07:00 # JST、ハイフン区切り必須
published_at を指定して git push すれば、指定時刻に自動公開されるpublished_at まで公開されない)参考タイミング: .claude/rules/zenn-writing.md「投稿ペース方針」を参照(バズタイム:火〜水 7:00-9:00 JST)。
正本:
.claude/refs/schedule-schema.mdを参照。
scripts/schedule.json に refs/schedule-schema.md のスキーマに従ってエントリを追加する。
ユーザーに英訳してクロスポストするか確認する。
推奨: devto-translator エージェントで一気通貫(翻訳→タグ→投稿)。
英訳は articles-en/ に同名で保存される。
{slug} は articles-en/{slug}.md のベース名。投稿日時は --at 引数で渡す(tz 付き推奨。schedule.json には保存しない)。
# 変換プレビュー(実 POST しない)
cd scripts && uv run python devto_crosspost.py post {slug} --dry-run
# 予約: 指定日時に one-shot launchd 発火
# 日米ペア既定(EN = JP 公開の前日 22:00 JST)の正本は .claude/rules/zenn-writing.md「投稿予約タイミング」
cd scripts && uv run python devto_crosspost.py schedule {slug} --at "2026-07-07 22:00 Asia/Tokyo"
# 即時投稿したい場合
cd scripts && uv run python devto_crosspost.py post {slug}
post(launchd 発火 or 即時)成功時に devto へ実 URL が自動書き戻しされ、one-shot ジョブは自己削除される。手動更新は不要。
全コミット完了後、必ず git push を確認する。未 push だと:
published_at 予約投稿が反映されない| ステップ | 失敗時の対応 |
|---|---|
| editor review | 指摘事項を修正して再レビュー |
| セキュリティ | 該当箇所を即座に削除/マスク |
| frontmatter | フィールドを修正 |
| Dev.to投稿 | dry-run で原因確認 → API エラー対応 |
全ステップ実行:
/publish-article articles/my-article.md
frontmatter 検証のみ:
npm run validate
editor レビューのみ:
claude --agent=editor --prompt="Review: articles/my-article.md"