
Agent Skills で gaipack Blog の入稿作業を半自動化してみた📖
gaipack では営業日毎日、社内 LT 会を開催し、登壇内容を当日中に gaipack Blog へ投稿する運用にしています。この記事では、このブログ化というルーチンワーク(執筆・サムネイル生成・CMS への入稿)を Agent Skills で半自動化し、1本あたりの作業時間を40分〜1時間から30分以内に短縮した取り組みを紹介します。
ブログ化というルーチンワークが重かった
gaipack Blog の記事は Contentful という CMS で管理しています。従来は、登壇内容を Markdown へ手動でコピペし、Title・Slug・Description の入力やサムネイルのアップロードも手作業で行っていました。1本あたりの負担は小さくても、記事を作るたびに発生する定型作業が営業日毎日積み重なると、地味に時間を食います。「どうにか効率化できないか」というのが出発点でした。
登壇からブログ公開までの流れ
現在の運用では、登壇からブログ公開までを次の7ステップで回しています。
| # | 工程 | 担当 |
|---|---|---|
| 1 | 登壇(社内 LT 会) | 人 |
| 2 | 登壇資料と文字起こしを Google Drive に格納 | 人 |
| 3 | 素材を読んで記事を Markdown 化 | 自動(write-blog) |
| 4 | サムネイル生成 | 自動(generate-thumbnail) |
| 5 | Contentful への入稿(Draft 作成) | 自動(publish-blog) |
| 6 | プレビュー確認 | 人 |
| 7 | Publish(公開) | 人 |
全部を自動化したわけではありません。記事のレビューや公開ボタンの押下といった人の判断が要る部分は、あえて人に残す設計にしています。
Agent Skills と3つのスキルの構成
Agent Skills は、SKILL.md を中心としたフォルダ形式でエージェントへの指示をパッケージ化する Anthropic 発のオープン規格です。Claude Code や Codex、GitHub Copilot など幅広いツールが対応しており、リポジトリの .agents/skills/{skill-name}/SKILL.md のように定義します。概要は Songmu さんの解説記事が参考になります。
ブログ入稿の自動化は、この規格に沿った3つのスキルで構成しています。
.agents/└── skills/ ├── write-blog/ │ └── SKILL.md ├── generate-thumbnail/ │ ├── references/ │ │ └── brand.md │ ├── scripts/ │ │ └── render_thumbnail.py │ └── SKILL.md └── publish-blog/ ├── scripts/ │ ├── publish_blog.py │ └── upload_body_images.py └── SKILL.md- write-blog: 登壇資料と文字起こしを読んで記事を Markdown 化する
- generate-thumbnail: 記事の内容をもとにブランドイメージに沿ったサムネイル画像を生成する
- publish-blog: Contentful へ Draft として自動入稿する
スキルのフォルダに scripts/ としてスクリプトを置いておくと、スキルの実行時にそのスクリプトが呼び出されます。指示書(SKILL.md)だけでなく、決定的に動かしたい処理をコードで同梱できるのが使いやすいところです。
実際に投げているプロンプトは1行
記事執筆の起点として人が投げているプロンプトは、これだけです。
/write-blog <Google Drive の URL>これだけで動くのは、Google Drive の MCP コネクタを設定してあるためです。Claude Code が Drive 上のフォルダから登壇資料・文字起こし・Q&A を直接参照します。MCP 連携は個人のローカル設定として行っています。
生成されたドラフトは、YAML フロントマターに Title・Slug・Description まで入った状態で出力されます。この段階で人が内容を確認し、事実と異なる部分があれば指摘して直してもらいます。問題なければ「サムネイル作成と Contentful への入稿を進めてください」と投げるだけで、サムネイルが生成され、Draft として入稿され、管理画面 URL とプレビュー URL まで返ってきます。あとは Contentful の管理画面でプレビューを確認し、Publish ボタンを押せば公開です。
段階的にスキル化してきた経緯
このフローは最初から完璧に設計したわけではなく、面倒だと感じた部分を一個ずつスキル化して積み上げてきました。
- 2026年7月4日: write-blog スキルを新設。まず執筆だけを自動化しました
- 7月6日: generate-thumbnail スキルを新設。CairoSVG を用いて、ブランドイメージに沿ったサムネイル画像を生成します
- 7月17日: publish-blog スキルを新設。Contentful の Management SDK を活用した Python スクリプトで Draft を自動入稿し、publishDate の付与とプレビュー URL・管理画面 URL の取得まで自動化しました
ハマったポイント: 文字起こしだけで書くと誤変換が混ざる
7月17日の時点では、Drive 上の文字起こしや登壇資料を人がコピーして Claude Code に渡していました。それも面倒だったので Drive の MCP 連携を手順に組み込んだのですが、ここで問題が発生します。ブログ入稿の指示を出すと登壇資料を参照してくれず、文字起こしだけで記事を書いてしまうことがありました。
文字起こしは音声認識由来なので、年号(2026年を2025年と誤認するなど)・社名・固有名詞の誤変換を含みます。それがそのまま記事化されてしまう状態でした。そこで7月27日に、登壇資料を必ず読み、文字起こしと食い違う場合は執筆者が文字で用意した一次情報である登壇資料を優先する、という読み取り手順をスキルに追記して対処しました。
作業時間は40分〜1時間から30分以内に
publish-blog を作るまでは手動の部分が多く、1本の公開までに40分〜1時間かかっていました。現在は30分以内で終えられています。朝に登壇した内容が昼には記事として公開されている、というサイクルが回るようになりました。
一方で、残課題もあります。記事本文への画像の埋め込みは、Contentful のリッチテキストで挿入位置を明示的に指定する処理が必要で、まだ自動化できていません。スキル側で「ここに画像を差し込むとよい」と推奨箇所を提示する機能と合わせて、今後対応していく予定です。
今後の展望: Publish ボタンを押すだけにしたい
現状では、/write-blog を叩くところは人がやっています。ここに Claude Code の Routine 機能を組み合わせ、Slack のコメントや Google Drive のリンクを自動検知してスキルを発動できれば、執筆・サムネイル生成・入稿(Draft 化)までが人手なしで進められるはずです。そうなれば、人間の作業は最終確認と Publish ボタンの押下だけになります。
まとめ
| 項目 | 内容 |
|---|---|
| 自動化した範囲 | 記事の Markdown 化・サムネイル生成・Contentful への Draft 入稿 |
| あえて人に残した範囲 | 記事レビュー・プレビュー確認・Publish |
| 効果 | 1本あたり40分〜1時間 → 30分以内 |
| 残課題 | 本文への画像埋め込み、起動の自動化(Routine 機能で検討中) |
最初から完璧に設計する必要はなく、実際にぶつかった面倒くささを一個ずつスキル化していけば十分回ります。スキルにしておけば作業を他の人にも継承でき、属人化の排除にもつながります。みなさんの日常のルーチンワークも、Agent Skills に落とし込んでみましょう!
なお KDDIアイレットでは、今回のような CMS 運用への AI 活用を AIDD CMS として支援しています。AI CMS で開発・運用負荷を約50%軽減した導入事例も公開していますので、コンテンツ運用の効率化にお悩みの方はお気軽にKDDIアイレットへお問い合わせください!