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の判定と確認カードの代わりにはならない。
連携先のスキルがその環境に無い場合だけ、その段階を自力で丁寧にこなす(スキップしない)。「無い」とはインストール先を確認して見つからなかったことを指す。自力でこなしたときは、どの段階をスキルなしで行ったかを作業の報告に書く。
記事を出すまでの典型的な流れ
- 企画 — アイデアがまだ固まっていないときは
blog-idea-grillingで企画の芯を育て、企画カードにまとめる。そこからblog-writing-guide-jaで構成を作る。 - 準備 —
references/new-post.mdの手順でファイル・front matter・タグを整える。 - 執筆 —
blog-writing-guide-jaで構成を作り、writing-jaの文体規範で本文を書く・推敲する。 - 裏取り —
fact-check-jaで、企画カードの「要確認」と本文の数値・バージョン・比較・断定を一次情報で確認する。 - 公開 —
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 が行う。対象ブログのリポジトリルートをカレントディレクトリにして実行する。
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。