# Blog Ops

> Hugo ブログ(PaperMod テーマ想定)の運用と執筆フロー全体の入口となるスキル。ブログリポジトリで記事・タグ・レイアウト・設定に触れる作業を始めるときは、内容を問わず必ず最初にこのスキルを読み、企画・執筆・公開の各段階を担当するスキルとリファレンスに振り分ける。「記事を書きたい」「ネタを相談したい」「下書きを見て」「公開前チェックして」「タグを整理して」と言われたとき、また明示的に頼まれなくても記事ファイルの作成・編集や公開・コミット直前の場面で使用する。

- Skill: `j1nn0/blog-ops` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add j1nn0/blog-ops`
- Raw SKILL.md: https://api.skillmd.com/api/skills/j1nn0/blog-ops/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: j1nn0 (https://skillmd.com/u/j1nn0)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/j1nn0/blog-ops

---


# blog-ops — Hugo ブログ作業の入口

Hugo ブログのリポジトリでの作業はすべてここから始める。段階と目的に応じて、他のスキルとこのスキルのリファレンスに振り分ける。

## 適用範囲と優先順位

このスキルは汎用の既定を定める。対象は Hugo + PaperMod のブログを想定しているが、大半は Hugo 一般に通用する。

- **リポジトリの AGENTS.md(または CLAUDE.md)が優先。** サイト固有の事実(ホスティング、リダイレクト方式、独自の規約や逸脱)はそちらに書かれている。作業を始める前に必ず確認する。
- AGENTS.md に記載がない事項は、このスキルの既定に従う。
- 執筆系スキル(後述)は文章の質を担当し、リポジトリ固有の技術的制約を上書きしない。

## ワークフローの選択

| 段階・やること | 使うもの |
|--------------|---------|
| 記事アイデアを育て、企画を固める | `blog-idea-grilling` で企画の芯を決め、企画カードにまとめる |
| 記事の企画・構成・タイトル・SEO・記事単位のレビュー | `blog-writing-guide-ja` スキル |
| 本文の執筆・文単位の推敲・文体 | `writing-ja` スキル(blog-writing-guide-ja と併用する) |
| 数値・バージョン・比較・断定の裏取り、古くなった記述の確認 | `fact-check-ja` スキル |
| 新規記事のファイル準備(スラッグ、front matter、タグ選定、画像配置) | `references/new-post.md` |
| 公開済み記事の訂正・更新・追記 | `references/update-post.md` |
| 図・スクリーンショットの作成と alt テキスト | `references/images.md` |
| 記事の公開・コミット前の確認 | `references/publish-check.md` |
| 記事公開後の SNS 告知文 | `references/social-announcement.md` |
| タグの追加・改名・削除、リダイレクト管理 | `references/tags.md` |
| 作業規約(スコープ制御、コーディングスタイル、コミット、セキュリティ) | `references/conventions.md` |

該当するものを読んでから作業を始める。ファイルを変更する作業では `references/conventions.md` のスコープ制御に必ず従う。

### 受け渡しは読み込みで行う

表の「使うもの」は参照先の名前ではなく、読み込む対象である。その段階に入る前に、SKILL.md またはリファレンスを実際に読む。

- 工程名をタスクに書くことは、工程を実行したことにならない。スキル本体を読まずにその段階を完了扱いにしない。
- **検査スクリプトの実行は、スキルを読んだことの代わりにならない。** `check_posts.py` と `check_style.py` が見るのは機械的に判定できる範囲だけで、各スキルの判断の大半はスクリプトに入っていない。スクリプトが 0 件で通っても、その段階は終わっていない。
- 裏取りのように、担当スキルの手順を読まずに自前の確認で済ませたものは、その工程を通したことにならない。自前の確認は下調べであって、`fact-check-ja` の判定と確認カードの代わりにはならない。

連携先のスキルがその環境に無い場合だけ、その段階を自力で丁寧にこなす(スキップしない)。「無い」とはインストール先を確認して見つからなかったことを指す。自力でこなしたときは、どの段階をスキルなしで行ったかを作業の報告に書く。

## 記事を出すまでの典型的な流れ

1. **企画** — アイデアがまだ固まっていないときは `blog-idea-grilling` で企画の芯を育て、企画カードにまとめる。そこから `blog-writing-guide-ja` で構成を作る。
2. **準備** — `references/new-post.md` の手順でファイル・front matter・タグを整える。
3. **執筆** — `blog-writing-guide-ja` で構成を作り、`writing-ja` の文体規範で本文を書く・推敲する。
4. **裏取り** — `fact-check-ja` で、企画カードの「要確認」と本文の数値・バージョン・比較・断定を一次情報で確認する。
5. **公開** — `references/publish-check.md` のチェックを通してからコミットする。SNS で告知するなら `references/social-announcement.md` を使う。

途中の段階から頼まれたら(例: 下書きがすでにある)、その段階から入って以降の流れに乗せる。
公開済み記事の訂正・更新は `references/update-post.md` から入る。この流れとは別の判断(URL の維持、訂正の明示、`date` を動かさない)が要る。

## 執筆スキルの優先順位

- 記事の企画・構成・SEO・記事単位レビューは `blog-writing-guide-ja` が正。
- 文レベルの文体・言い回し・書式は `writing-ja` が正。日本語の文章スキルが他にあっても、この2つを使う。
- 記事に書く事実が正しいかは `fact-check-ja` が正。文章として自然かどうかとは別の判断なので、推敲で代用しない。

## 検査スクリプト

front matter とタグ規約の機械的な検査は、このスキルディレクトリ内の `scripts/check_posts.py` が行う。対象ブログのリポジトリルートをカレントディレクトリにして実行する。

```bash
python3 "$SKILL_DIR/scripts/check_posts.py"
```

`SKILL_DIR` はこのスキルをインストールした `blog-ops` ディレクトリを指す。

既定の検査内容: front matter の必須フィールド、`summary` の有無、`lastmod` の形式と `date` との前後関係、フラット記事とページバンドルのスラッグ規約、タグの表記規約(小文字+アンダースコア)、タグ数(3〜5個)、タグページ `content/tags/<tag>/_index.md` の有無、孤児タグページ、スラッグ重複、本文の inline Markdown 形式の `/images/...` と `/posts/<slug>/` の実在、過去日付の `draft: true`。
タグ数とタグ表記は汎用の既定であり、サイト側の `AGENTS.md` に別規約があれば CLI オプションで合わせる。`--min-tags`、`--max-tags`、`--tag-pattern` の使い方は `--help` で確認する。

ERROR は修正必須、WARN は判断のうえ対応する(既存記事の WARN を頼まれていないのに直さない — スコープ制御)。

## 既定のリポジトリ構造

リポジトリが別の構成を定めていない限り、以下を前提とする。

- 記事: `content/posts/<slug>.md`(小文字ハイフン区切り)
- タグページ: `content/tags/<内部タグ値>/_index.md`(`title:` に表示名)
- 画像: `static/images/<slug>/` に置き、記事からは `/images/<slug>/ファイル名` で参照
- リダイレクト: ホスティング依存。AGENTS.md で方式を確認する(例: Cloudflare Pages なら `static/_redirects`)
- サイト設定: `hugo.yaml`(または `config.toml` など)

詳細は `references/conventions.md`。

