schedule-publish
記事バッチの公開順序と日程を 4 軸スコアリングで決定し schedule.json に反映する。投稿タイミングの値は zenn-writing.md が正本。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
記事バッチの公開順序と日程を 4 軸スコアリングで決定し schedule.json に反映する。投稿タイミングの値は zenn-writing.md が正本。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional 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)を順に実行する。
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 | schedule-publish |
| description | 記事バッチの公開順序と日程を 4 軸スコアリングで決定し schedule.json に反映する。投稿タイミングの値は zenn-writing.md が正本。 |
| user-invocable | true |
| origin | original |
Purpose: 記事バッチの公開順序と日程を、データに基づくスコアリングで決定し、schedule.json に反映する。
/schedule-publish # published: false の全記事を評価
/schedule-publish --start 2026-03-01 # 開始日を指定
各記事を以下の基準で評価する。高スコア = 先に公開。
関心のある読者がこの記事を見つけられるか。
| Score | 基準 | 例 |
|---|---|---|
| 3 | 特定の問題を抱えた読者が検索で到達できる | 「Invalid regular expression: invalid escape」 |
| 2 | 具体的なテーマで探している読者が見つけられる | 「Zenn Qiita クロスポスト」 |
| 1 | 一般的なトピック(関心層は広いが特定しにくい) | 「Claude Code の使い方」 |
| 0 | 著者の思索(見つけた人が読む、検索到達は期待しない) | 「マルチLLM戦略」 |
他の記事が前提知識として参照する度合い。
| Score | 基準 |
|---|---|
| 3 | 3本以上の記事が前提として参照 |
| 2 | 1-2本の記事が前提として参照 |
| 1 | 独立(参照なし) |
| 0 | 他の記事に依存(先に出すべき記事がある) |
レビュー・品質ゲートの完了状態(prose lint は 2026-07 に全撤去済み。機械チェックは frontmatter 検証のみ)。
| Score | 基準 |
|---|---|
| 3 | editor レビュー済み、CRITICAL・MEDIUM なし、frontmatter 検証パス |
| 2 | レビュー済み、MEDIUM 修正が残る |
| 1 | レビュー未実施 |
| 0 | CRITICAL 未修正 |
トピックのタイムリーさ。
| Score | 基準 |
|---|---|
| 2 | 直近のトレンド・リリースに関連 |
| 1 | エバーグリーン(時期を問わない) |
| 0 | 古い情報を含む可能性あり |
スコアが同じ場合、以下の順で優先:
| 項目 | ルール | 根拠 |
|---|---|---|
| 曜日・時刻 | .claude/rules/zenn-writing.md「投稿ペース方針」が正本(バズタイム:火〜水 7:00-9:00 JST)。ここでは再掲しない | 値の二重管理を避ける |
| 間隔 | 最低2日空ける | 各記事の「新着」フィード露出時間を確保 |
| 上限 | .claude/rules/zenn-writing.md「投稿ペース方針」が正本(週2-3本)。ここでは再掲しない | 値の二重管理を避ける |
| クロスポスト | EN (Dev.to) は JP の前日 22:00 JST(日米ペア既定の正本: .claude/rules/zenn-writing.md「投稿予約タイミング」) | Dev.to(EN) のみ |
published: false の記事を一覧化する。
grep -rl 'published: false' articles/*.md
各記事を4軸で評価し、テーブルで出力する。
| # | slug | Discover | Anchor | Ready | Fresh | Total | Order |
|---|------|--------|--------|-------|-------|-------|-------|
重要: スコアの根拠を1行ずつ明記する。根拠なしのスコアは不可。
スコア順に投稿日時を決め、各記事を one-shot launchd ジョブとして仕込む(旧 plan_schedule.py は廃止)。JP はバズタイム(火水 09:00 JST)に寄せ、EN はその前日 22:00 JST(≈ 米国 09:00 ET)。日時は --at 引数で JST 明示で渡す(schedule.json には保存しない。正本: .claude/rules/zenn-writing.md「投稿予約タイミング」)。
# JP が 2026-07-08 09:00 JST なら、EN はその前日 22:00 JST
cd scripts && uv run python devto_crosspost.py schedule {slug} --at "2026-07-07 22:00 Asia/Tokyo"
生成されたスケジュールを表形式で提示し、承認を得る。
承認後、schedule.json にエントリを追加する。
正本:
.claude/refs/schedule-schema.mdを参照。
refs/schedule-schema.md のスキーマに準拠してエントリを追加する。スコアリング結果は score フィールドにトレーサビリティ用に記録:
{
"file": "articles/example-article.md",
"date": "2026-04-15",
"score": { "discover": 2, "anchor": 1, "ready": 3, "fresh": 1, "total": 7 }
}
Zenn 公開は published_at 予約投稿方式:
published: true + published_at: YYYY-MM-DD HH:MM (JST) を設定git push すれば指定時刻に自動公開。レートリミットにカウントされないZenn 公開: published_at 予約投稿(push 時点で予約、指定時刻に自動公開)
Dev.to クロスポスト:
devto_crosspost.py schedule {slug} --at "<日時 IANA/Tz>" で記事ごとの one-shot launchd ジョブを仕込む。指定時刻に発火 → Dev.to へ POST → schedule.json に実 URL を書き戻し → plist 自己削除(GitHub Actions cron / 毎日ポーリングは廃止済み)devto-translator エージェントで翻訳→投稿を一気通貫も可スコアリング基準の根拠: