ブログ — Jekyll + GitHub Pages
リポジトリ: ~/repos/github.com/<あなた>/<あなた>.github.io
エンジン: Jekyll + GitHub Pages、テーマ: minima
ブランチ: master — プッシュ時に自動デプロイ
インデックス: ブログインデックスノートファイル(例: ~/notes/blog.md)を管理 — 記事投稿後に更新
注: ローカルでのJekyllビルドは不要です。GitHubがサーバーサイドでビルドします。
⚠️ 絶対ルール: 雇用主情報の禁止
以下の情報を記事に含めてはいけません:
- 雇用先の内部ツール、システム、コードネーム、インフラ
- 内部プロジェクト名、チーム名、組織構成、ロードマップの詳細
- 顧客名、パートナー名、契約の詳細
- 内部チケット、Wikiページ、ミーティング内容
- 給与、人員数、予算、ビジネス指標
技術、ツール、パターンについて書きましょう — 勤務先や雇用主が出荷している製品についてではありません。迷った場合は、公開前にユーザーに確認してください。
ワークフロー
1. 記事を書く
_posts/YYYY-MM-DD-スラグ.md
フロントマター:
---
layout: post
title: "ここにタイトル"
date: YYYY-MM-DD
categories: ai agents productivity # スペース区切り
series: "AIコーディングエージェントの生産性" # シリーズでない場合は省略
---
2. スタイル
- 問題を先に提示し、解決策は後で
- 具体的な冒頭一文 — 「この記事では〜について説明します」のような書き出しはしない
- 実行可能なものにはコードブロック
- 比較にはテーブル
## Sourceセクションで終える(リポジトリや参考文献へのリンク)- LLM特有の冗長表現は避け、READMEのように書く
@wordは\@wordとエスケープする(後でPDFが必要になった場合のTypst引用エラー防止)
ブログ上で評価の高い公開記事を1つ選び、トーンと密度の参考にしてください。
3. 公開前にすべてのリンクを検証する(スキップ禁止)
記憶に頼ったURLは404を生みます。各リンクのHTTPステータスを最初に確認してください:
for u in "https://example.com/a" "https://example.com/b"; do
echo "$(curl -sS -L -o /dev/null -w '%{http_code}' "$u") $u"
done
コミット前にすべてのリンクが 200(または有効なターゲットへの 301/302)を返す必要があります。デッドリンクを出荷してユーザーに指摘されてから修正するより安上がりです。
4. コミットしてプッシュ
cd ~/repos/github.com/<あなた>/<あなた>.github.io
git add _posts/YYYY-MM-DD-スラグ.md
git commit -m "投稿: <タイトル>"
git push # GitHub Pagesが自動でデプロイ(約60秒)
5. インデックスを更新
ブログインデックスノートファイルの ## Posts テーブルに新しい行を追加(新しい順)。記事がシリーズに属する場合は、## Active series 行にも追記:
| YYYY-MM-DD | タイトル | `カテゴリ/パス/YYYY/MM/DD/スラグ.html` |
URLはJekyllのcategories + date + スラグから派生するpermalinkパターンに従います。
6. 実際に公開されたことを確認する(スキップ禁止)
Pagesビルドが成功しても、記事が公開されたとは限りません — Jekyllは未来日付の記事を静かに削除します。ビルド完了後に実際のURLをcurlで確認してください:
base="https://<あなた>.github.io"; slug="/カテゴリ/パス/YYYY/MM/DD/スラグ.html"
curl -sS -L -o /dev/null -w "%{http_code}\n" "$base$slug" # 200であること
curl -sS -L "$base/" | grep -o 'スラグ[^"]*html' | head -1 # トップページに表示されていること
ビルドは成功したのに404になる場合、ほぼ間違いなく下記の未来日付トラップが原因です。
公開済み記事の更新に関する保護策
- ユーザーが明示的に書き換えを要求しない限り、元の内容を保持し、明確にラベル付けされた更新として追記します。
- 新しく追加されたURLや変更されたURLのみHTTPチェックを行い、特にリンク監査が要求されない限り、変更のない公開リンクを繰り返しチェックしません。
- プッシュ後、実際の公開URLがHTTP 200を返すことを確認します。
ヒント
- ブログインデックスノートファイルに
## TODOセクションを保持し、下書きのアイデアを管理します。ゼロから始める前に確認してください。 - 過去の記事を参照または矛盾する場合は、
{% post_url YYYY-MM-DD-スラグ %}でリンクします。 - 夜明け前の公開+未来日付トラップ: Jekyllは日付のみの
date: YYYY-MM-DDをサイトのタイムゾーンの深夜と解釈し、未来日付の記事を静かに削除します。_config.ymlに明示的なtimezone:行が追加される前は、現地時間04:00に書かれた記事はUTCの深夜(約1時間後)として読み取られ、UTCが追いつくまで削除されていました。_config.ymlにtimezone:を設定し、削除しないでください。夜明け前の投稿でビルド成功後に404になる場合は、フロントマターに明示的な時刻を追加してください(date: YYYY-MM-DD 04:00:00 +0530)。