Abstract Mode(AIPO)で記事量産パイプラインを構築する
ブログ記事を書くのは楽しいです。でも、週2本のペースで継続するのは、楽しさだけでは乗り切れません。
ネタ出し、構成、執筆、レビュー、SEO最適化、デプロイ——1記事あたりの工程が多いです。これを手動で回し続けると、どこかで品質か頻度のどちらかが犠牲になります。
そこで、Abstract Mode(AIPO)を使って記事制作パイプラインを構築しました。この記事では、その設計と実際の運用を紹介します。
AIPO / Abstract Mode とは
AIPO(AI Process Orchestration)は、AI を使ったタスク自動化のフレームワークです。5つのフェーズで構成されます。
- Sense — 状況を把握する(現状分析)
- Focus — 何にフォーカスするか決める(優先順位付け)
- Discover — 具体的な解決策を探る(設計・リサーチ)
- Deliver — 実行する(実装・制作)
- Operation — 運用・改善する(モニタリング・フィードバック)
Abstract Mode は、これらのフェーズを「変数化」して再利用可能にするアプローチです。1回の記事制作で得た知見を、次の記事制作で自動的に活用できるようにします。
パイプラインの全体設計
記事制作パイプラインは、以下のディレクトリ構造で管理しています。
ブログコンテンツ投稿計画/
├── context.yaml # プロジェクトの基本情報
├── layer.yaml # ゴール・期限・サブレイヤー定義
├── variables.yaml # 記事テンプレート・変数定義
├── Context/ # 背景情報
│ ├── 01_既存ブログ構成.md
│ ├── 02_Obsidianコンテンツ棚卸し.md
│ └── 03_技術スタック.md
├── Commands/ # 実行タスク定義
│ ├── T001_投稿スケジュール策定.md
│ ├── T002_記事制作ワークフロー確立.md
│ └── ...
├── Documents/ # 生成済みドキュメント
│ ├── 投稿カレンダー.yaml
│ ├── 記事制作ワークフロー.yaml
│ └── 公開前チェックリスト.md
└── sublayers/ # シリーズ別のサブレイヤー
├── SG1_health-data-hack/
├── SG2_ai-video-production/
└── ...
各ディレクトリの役割
Context/ — AI に渡す背景情報です。ブログの技術スタック、既存記事の構成、SEO 方針などを格納します。「AI が記事を書くために知っておくべき前提知識」をここに集約しています。
Commands/ — 実行すべきタスクの定義です。各タスクには「入力」「処理手順」「出力」が明記されており、AI がそのまま実行できる形式になっています。
Documents/ — Commands の実行結果として生成されたドキュメントです。投稿カレンダー、ワークフロー定義、チェックリスト等が入ります。
sublayers/ — シリーズ(連載)ごとのサブレイヤーです。各シリーズが独立した AIPO サイクルを持ちます。
variables.yaml:記事テンプレートの変数化
パイプラインの核心は variables.yaml にあります。記事の「型」を変数として定義し、新しい記事を作るたびに変数を埋めるだけで骨子が完成する仕組みです。
article_templates:
origin-story:
structure:
- section: きっかけ
prompt: "なぜこのテーマに興味を持ったか"
- section: 試行錯誤
prompt: "最初にやったこと、失敗したこと"
- section: 転機
prompt: "ブレイクスルーとなった出来事"
- section: 現在
prompt: "今どうなっているか"
- section: 展望
prompt: "次に目指していること"
how-to:
structure:
- section: 問題提起
prompt: "読者が抱えている課題"
- section: 解決策の概要
prompt: "この記事で解決できること"
- section: ステップバイステップ
prompt: "具体的な手順"
- section: 注意点
prompt: "ハマりやすいポイント"
- section: まとめ
prompt: "得られる成果"
新しい記事を書くとき、テンプレートを選んで変数を埋めるだけで構成が決まります。「構成を考える」という手間が大幅に減ります。
Human-in-the-Loop:人間の介入ポイント
全自動にはしていません。意図的に人間が介入するポイントを設計しています。
ソース抽出 [AI] → 構成レビュー [人間] → 本文執筆 [AI] →
内容レビュー [人間] → SEO最適化 [AI] → 最終確認 [人間] → デプロイ
人間が介入するのは3箇所です。
- 構成レビュー — AI が作った骨子が、自分の伝えたいメッセージと合っているか
- 内容レビュー — 事実誤認がないか、自分の経験と矛盾していないか
- 最終確認 — 公開前の最終チェック
それ以外は AI に任せます。特にソース抽出(Obsidian のメモから関連情報を集める)と SEO 最適化(メタデータ、内部リンク)は AI のほうが速くて正確です。
5ステップワークフロー
実際の記事制作は以下の5ステップで進みます。
Step 1:ソース抽出
Obsidian に蓄積されたメモ、過去の会話ログ、既存記事から、新しい記事に使える素材を AI が抽出します。
入力: テーマ(例: "CLAUDE.md の設計パターン")
処理: Obsidian 内の関連メモを検索、既存記事との重複チェック
出力: 素材リスト + 関連メモのリンク集
Step 2:ドラフト作成
テンプレートと素材をもとに、frontmatter + 骨子を生成します。
入力: テンプレート種別 + 素材リスト + SEOキーワード
処理: frontmatter 生成 + 各セクションの骨子作成
出力: .md ファイル(draft: true)
Step 3:本文執筆
骨子を展開して本文を書きます。コード例、データ、引用を挿入します。
Step 4:レビュー
公開前チェックリストに基づいて検証します。
- frontmatter の必須フィールド確認
- 文字数チェック(2000字以上)
- 内部リンクの疎通確認
- SEO メタデータの最適化
npm run buildでビルドエラーがないか
Step 5:公開
git checkout -b feat/article-{slug}
git add .
git commit -m "feat(blog): add {title}"
git push origin feat/article-{slug}
gh pr create --draft
レビュー完了後に PR をマージし、Vercel が自動デプロイします。
投稿カレンダーとの連携
パイプラインは投稿カレンダーと連動しています。
schedule:
pattern: "週2本(火・金公開)"
series_interleave: true # シリーズ間でインターリーブ
火曜と金曜にそれぞれ異なるシリーズの記事を公開することで、読者が飽きない構成にしています。同じシリーズが連続すると離脱率が上がるため、意図的にインターリーブしています。
運用して分かったこと
効果があったこと
- 構成のブレがなくなりました。 テンプレートのおかげで「何を書くか」で悩む時間が激減しました。
- 品質の底上げ。 チェックリストによる機械的な検証で、frontmatter の漏れや内部リンク切れが0になりました。
- ペースの安定化。 カレンダー駆動で「今週はこれを書く」が明確になり、先延ばしが減りました。
まだ改善が必要なこと
- オリジナリティの担保。 テンプレートに従いすぎると「型通り」の記事になりがちです。人間のレビューで「自分らしさ」を注入する工程が重要です。
- ソース抽出の精度。 Obsidian のメモが散逸していると、AI が関連情報を見落とします。メモの整理は人間の責任です。
まとめ
Abstract Mode(AIPO)を使った記事量産パイプラインは、「考える部分は人間、作業する部分は AI」という分業を仕組み化するものです。
全自動ではありません。むしろ、人間が介入すべきポイントを明確にすることで、AI に任せる部分の品質が上がります。
週2本のブログ更新を無理なく継続するために。パイプラインは手段であり、目的は「書き続けること」です。
記事の更新をメールで受け取る
質問・リクエストを送る
記事についての質問や、取り上げてほしいテーマがあればお気軽にどうぞ。いただいた質問はブログ記事として回答し、Q&Aページで公開することがあります。