note&X自動投稿/改善(モノWebラボ — AI時代のWeb戦略を、製造業の現場へ)
モノWebラボ — AI時代のWeb戦略を、製造業の現場へ
中堅BtoB製造業のWeb担当者向けに、AI/Webの最新動向を「で、ウチではどうか」に読み替えて毎日届ける、自動運転型の翻訳メディア。
- 媒体(note):https://note.com/monoweb_lab
- 媒体(X):https://x.com/monoweb_lab
- このリポジトリ:媒体を毎日自動で動かしている、事業自律改善エンジンのソースコード
---
目次
---
1. このメディアの意味(Why / What)
誰の、どんな課題を解いているか
読者は、業界シェア上位(1〜4位)の中堅BtoB製造業(従業員200〜800名)のWebマーケ責任者・Web担当リーダーです。専任のWeb担当が1〜3人いる現場で、決裁権を持つか経営層への提案権を持つ立場。
この人たちはいま、共通の痛みを抱えています。
- 経営層から「AI時代のWeb戦略を出せ」と言われている
- しかし一般のメディアやセミナーは BtoC・大企業の事例ばかり で、自社規模・自業界の例が世の中に存在しない
- 製造業マーケ支援会社は業界に強いがWeb/AIに弱い/業界紙は中立だがWeb/AIに弱い/Webマーケ大手はWeb/AIに強いがBtoC寄り
- 結果として 社内に相談相手がおらず、社外にも業界の友達がいない。一人で提案書を抱えている
モノWebラボが提供する価値
この空席ポジション ——「業界中立性 × Web/AI翻訳」—— をひとつのメディアで埋めます。
具体的な提供物は次の3つです。
- 読み替え記事:BtoC・大企業のAI/Web事例を、中堅BtoB製造業の文脈に翻訳した解説記事(5,000〜7,000字)を毎日2本
- 経営提案で使える対比構造:「Webセキュリティ開示は工場監査と同じ取引維持コスト」のように、製造業の現場語で説明し直す。読者はそのまま社内提案に転用できる
- 業界横断のベンチマーク資産:競合・トレンド・AI導入率など5指標を毎日DBに蓄積。半年後には独自の競争優位データになる
一文で言うと
「経営層に『AI時代のWeb戦略』を求められたが、自社規模・業界の事例がなく一人で抱えている中堅BtoB製造業のWeb担当リーダー」に、毎日業界翻訳された判断材料を届けるメディアです。
---
2. 仕組み概要(How)
全体フロー(Loop 1:日次記事自動化)
毎日 5:00 と 11:20 の 2 回、macOS の launchd が起動して 1 サイクルを回します。
[launchd 起動:5:00 / 11:20]
│
├─ 01_collect_news ニュース収集(RSS / PR TIMES / X)→ trends テーブル
├─ 02_select_topic テーマ選定(Claude)→ topics テーブル
├─ 03_generate_article 記事生成(Claude Opus 4.7)→ articles テーブル + .md
│ └─ 延伸ループ(5,000字未満なら最大2回まで自動追記)
│ └─ Gemini で図解画像生成 / Unsplash でアイキャッチ取得
│ └─ 表組み → 箇条書き変換(note 用版を別途生成)
├─ 04_quality_check 自己採点(Claude Sonnet 4.6)→ quality_checks テーブル
│ └─ 品質スコアで3段階分岐(後述)
├─ 05_notify_discord Discord 通知(承認 / 自動公開)
├─ approve.py 人間承認(Discord で承認後)
├─ 06_post_note note.com に投稿(Chrome DevTools MCP 経由)
└─ 06_post_x X に要約 + URL を投稿(140字以内 + 1タグ)
2系統のエージェント/スキル
このプロジェクトには、性質が異なる 2つの実行主体 があります。
A. workers/(無人実行される本番エージェント)
launchd が黙々と叩く Python スクリプト群。1ファイル1責任の番号付き構造で、1ステップだけ再実行・デバッグできます。
| ファイル | 役割 |
|---|---|
workers/loop1_article/01〜06_*.py | 上記フローの各ステップ |
workers/shared/claude_client.py | Anthropic API ラッパー(コスト記録・チャンク監視・リトライ) |
workers/shared/feedback_loop.py | 過去の品質チェック結果と知見を次回プロンプトに動的注入 |
workers/shared/autonomy_router.py | 品質スコアで auto/human/discard を分岐 |
workers/shared/diagram_generator.py | Gemini 3.1 Flash Image で図解生成 |
workers/shared/image_fetcher.py | Unsplash でアイキャッチ取得 |
workers/shared/table_to_bullets.py | note 用に表組→箇条書き変換 |
workers/shared/db.py | SQLite 共有脳へのアクセス層 |
B. .claude/(Claude Code が記事設計・改善時に使うスキル)
人間と Claude Code が対話的に媒体を育てる時に使う Skill 群。本番スクリプトの中ではなく、Claude Code のセッションでオンデマンドにロードされます。
| スキル | 役割 |
|---|---|
article-writing | 記事生成の全体プレイブック。3つの骨格パターンと品質基準 |
industry-translation | BtoC・大企業事例を中堅BtoB製造業に翻訳する技法 |
executive-contrast | 「AはBではなくCだ」で経営者視点の対比構造を作る技法 |
movie-scene-intro | 読者像を解像度高く把握するための内部ツール(記事冒頭には出さない) |
domain-knowledge-wiki | 成功事例・失敗事例・業界知識のドメインWiki |
note-publishing-toolkit | note 投稿の全工程(収集 → 投稿)ツールキット |
エージェントは .claude/agents/manufacturing-translator.md に定義された「製造業翻訳メディア担当」が、必要なスキルを組み合わせて作業します。
DBが共有の脳
エージェント同士は直接通信しません。すべて SQLite(db/manufacturing.db)を介します。
| テーブル | 用途 |
|---|---|
articles | 記事メタデータ・status 遷移・投稿 URL・コスト記録(cost_usd) |
topics | テーマ候補・選定結果 |
trends | 収集データ + 5指標の定量データ |
quality_checks | Claude 自己採点結果(feedback_loop の学習材料) |
domain_knowledge | 蓄積 Wiki(成功 / 失敗 / 業界知見) |
execution_logs | 全スクリプトの実行ログ |
---
3. 工夫している3つの軸
① 稼働性 — 止まらず24時間動き続け、障害から自己復旧する
「人間が見ていなくても毎日記事が出続ける」を成立させるための工夫。
| 工夫 | 中身 |
|---|---|
| launchd 2回起動 | 5:00 と 11:20 の 2 回。1 サイクルが失敗しても次のサイクルで自動リカバリ |
| pmset で確実な wake | sudo pmset repeat wakeorpoweron MTWRFSU 04:55:00 で Mac のスリープから起こす(launchd だけでは起きない) |
| caffeinate で 11:20 まで保持 | 朝のサイクル完了時に caffeinate -i -t を発火し、昼のサイクルまで Mac を起こしておく |
| チャンク監視 30秒 | Claude のストリーミング応答で 30 秒チャンクが来なければ即 kill → リトライ最大3回。hang を 5.5分から 30秒に短縮 |
| 延伸ループ | 記事が 5,000 字未満なら最大 2 回まで自動追記。文字数不足で破棄しない |
| 品質スコアで自動分岐 | 95点以上は自動承認、80〜94点は人間承認待ち、80点未満は破棄。低品質記事の事故公開を防ぐ |
| Gemini 図解失敗時のグレース | 画像生成が失敗しても記事本体は通す(画像なしで公開) |
| Discord 通知 | 各ステップの成否・承認依頼・自動公開を Discord に投げ、人間がスマホでも状況把握できる |
| gitleaks + .gitignore + hooks 多層防御 | API キー・Cookie の漏洩を物理ブロック |
② 進化性 — 実行するほどデータが溜まり、自動で賢くなる
「ただ記事を量産する」のではなく、運用するたびに媒体自身が賢くなる仕組み。
| 工夫 | 中身 |
|---|---|
| feedback_loop による動的プロンプト注入 | 過去の quality_checks(採点コメント)と domain_knowledge(成功/失敗パターン)を次回の記事生成プロンプトに自動注入。同じミスを繰り返さない |
| domain_knowledge_wiki スキル | 成功事例・失敗事例・業界知見を Wiki 化して蓄積。1 年で独自の競争優位になる設計 |
| trends テーブルで5指標を毎日蓄積 | 業界別AI導入率 / コーポレートサイトリニューアル件数 / ChatGPT・Claude導入企業数 / Web担当者求人件数 / オウンドメディア公開数。半年で独自データ資産に |
| 品質スコアと延伸履歴のDB記録 | どんなテーマで何点出たか・何回延伸したかを全件記録 → モデル切替・プロンプト改修の効果を定量検証できる |
| コスト記録(cost_usd 列) | Anthropic API のキャッシュ書き / 読みまで倍率込みで正確記録。ROI 計算とコスト圧縮 PDCA を回せる |
| Calibrated Autonomy の段階デビュー | 初期は自動承認閾値 95 点で保守的に開始 → 1〜2 週運用して事故ゼロなら 90 点に下げる、という段階的な権限移譲 |
| ハイブリッド執筆(人間 ↔ Claude Code) | スキル群を Claude Code が育て、本番 workers がそれを使う。日々の改善が翌日の本番に効く構造 |
③ 事業性 — 解いた課題の大きさ・実世界でのインパクト
「個人の趣味ではなく、事業として成立する」ことを意識した設計。
| 観点 | 中身 |
|---|---|
| 市場の空席ポジション | 「業界中立性 × Web/AI翻訳」は、製造業マーケ支援会社・業界専門紙・Webマーケ大手のどれもカバーしていない交点。供給ゼロの需要を独占できる |
| 読者の決裁権 | 中堅製造業の Web 担当リーダー=部課長クラス。記事 1 本が数百万円〜数千万円規模の Web 改修発注の意思決定に直結する |
| 取引維持コストとしてのWeb開示 | 取引先の調達部門のセキュリティチェック厳格化を背景に、Web 開示が「IT コスト」から「営業資料 / 取引維持コスト」に変質。記事の経営層への通り筋を確保 |
| コスト構造 | 1 記事あたり約 $1.5(Anthropic API + Gemini 画像)。月 60 本(1日2本)で約 $90。広告費ゼロでも note 単体の収益・コンサル経由のリードで回収可能な水準 |
| 横展開可能な事業エンジン | 仕組み(DB + スキル + ループ)はドメイン非依存。製造業で確立すれば、医療・建設・物流など他業界に「翻訳メディア」を量産できる |
| HOOTL(human out of the loop)を最終ゴール | 人間チェックが残る限り事業はスケールしない。Calibrated Autonomy で段階的にループの外に出る前提で全体設計 |
| 媒体の独自データ資産化 | 半年後の trends + domain_knowledge は、業界レポート・コンサル・データ販売の原資になる |
---
4. リポジトリ構成と開発者向け情報
主要ディレクトリ
ディレクトリ全体像は浅く、エージェント/スキル群(.claude/agents/・.claude/skills/)は 深い階層まで 展開しています。これがこのプロジェクトの「Claude Code に何を覚えさせて、どう協働させているか」の核です。
automation-agent/
├── .claude/ # Claude Code 用の設定とスキル
│ ├── settings.json # permissions / hooks
│ ├── hooks/ # 秘密ファイル防御・自動整形 等
│ │
│ ├── agents/ # ===== サブエージェント定義 =====
│ │ └── manufacturing-translator.md # 「製造業翻訳メディア担当」エージェント。
│ │ # ニュース収集〜記事生成〜投稿の全工程を統括
│ │
│ └── skills/ # ===== 役割別スキル(オンデマンドロード)=====
│ ├── article-writing/
│ │ └── SKILL.md # 記事生成の全体プレイブック。3つの骨格パターンと品質基準
│ │
│ ├── industry-translation/
│ │ └── SKILL.md # BtoC・大企業事例を中堅BtoB製造業に翻訳する技法
│ │
│ ├── executive-contrast/
│ │ └── SKILL.md # 「AはBではなくCだ」で経営者視点の対比構造を作る技法
│ │
│ ├── movie-scene-intro/
│ │ └── SKILL.md # 読者像を解像度高く把握するための内部ツール
│ │ # (冒頭描写ではなく書き手の脳内モデル用)
│ │
│ ├── domain-knowledge-wiki/
│ │ └── SKILL.md # 成功事例・失敗事例・業界知識のドメインWiki
│ │
│ └── note-publishing-toolkit/ # note 投稿の全工程ツールキット
│ ├── SKILL.md # ニュース収集 → 投稿の 6 ステップ定義
│ └── references/ # ステップ別の詳細リファレンス
│ ├── topic-selection-policy.md # テーマ選定ポリシー
│ ├── article-generation-prompt.md # 記事生成プロンプト本体
│ ├── article-template.md # 記事構成テンプレ
│ ├── title-and-heading-guide.md # タイトル・見出しの型と禁則
│ ├── industry-translation-rules.md # 業界翻訳の運用ルール
│ ├── persona.md # 読者ペルソナ定義
│ ├── quality-rubric.md # 品質採点ルーブリック
│ ├── diagram-style-guide.md # 図解のスタイルガイド
│ ├── note-editor-mcp-guide.md # note エディタ MCP 操作手順
│ └── unsplash-credit-format.md # アイキャッチのクレジット表記ルール
│
├── workers/ # 本番(launchd が叩く Python)
│ ├── loop1_article/01〜06_*.py
│ ├── loop1_article/approve.py / auto_approve_noon.py
│ └── shared/ # claude_client / db / feedback_loop 他
├── db/
│ ├── schema.sql
│ └── migrations/ # 001〜004
├── output/articles/YYYY-MM/ # 生成記事(.gitignore)
├── logs/ # 実行ログ(.gitignore)
├── secrets/ # Cookie 等(.gitignore)
├── scheduler/ # launchd plist テンプレ
├── CLAUDE.md # プロジェクト戦略書(Claude Code が毎回読む)
└── SETUP_INSTRUCTIONS.md # セットアップ・運用手順の詳細
サブエージェント × スキル × ワーカースクリプトの3層設計
このプロジェクトでは 2 系統のエージェント が役割を分けて動いています。それを束ねるのが「スキル」と「DB(共有の脳)」です。
| 層 | 実体 | 動かす人 | 役割 |
|---|---|---|---|
| ① Claude Code サブエージェント | .claude/agents/manufacturing-translator.md(1体のみ) | 人間 + Claude Code(Max プラン経由) | 設計・改善・記事のレビュー・テーマ相談などの 対話的な作業 を統括する人格。スキル群を必要に応じてオンデマンドロードする |
| ② スキル | .claude/skills/*/SKILL.md(6種類) | 上記サブエージェントが呼び出す | 「どんな技術・判断軸を使うか」を定義する 道具箱。記事執筆・業界翻訳・対比構造・読者ペルソナ・Wiki 参照・note 投稿の 6 領域 |
| ③ ワーカースクリプト | workers/loop1_article/01〜06_*.py(6本+承認系2本) | launchd(無人) | 毎日 5:00 / 11:20 に自動起動して 無人で記事を量産する Python スクリプト群。1ファイル1責任で SQLite DB を介して連携する |
2系統が混ざらない理由
.claude/とworkers/は混ぜない:前者は人間と Claude Code が育てる場所、後者は launchd が黙々と回す本番。アクセス権限も.claude/settings.jsonのpermissionsで隔離されている- DB が共有の脳:両系統が直接通信せず、すべて SQLite(
db/manufacturing.db)を経由する。ワーカーが書いた品質スコアや採点コメントを、Claude Code セッションでスキルが読みに来る——という非同期コラボが成立する - references/(
note-publishing-toolkit配下)は、スキルの中でもさらに細かい運用ルール集。プロンプト本体・採点基準・図解スタイル・ペルソナ等を分離管理し、改善時はこの単位で差分修正できる
CLAUDE.md では設計思想③で「エージェント同士は直接通信せず、SQLite DBに書き込み・読み込みすることで連携する」と書かれており、この「エージェント」は ②スキル経由のサブエージェント と ③ワーカースクリプト の両方を指しています。役割は違うが、どちらも DB を共有脳として連携する自律的な実行主体、という意味で同じ語が当てられています。
セットアップと運用手順
セットアップ手順、環境変数、launchd 登録、日次運用フローの詳細は SETUP_INSTRUCTIONS.md を参照してください。
Claude Code でこのリポジトリに作業を依頼する際の絶対ルール(記事 12 原則・自律性 3 段階・セキュリティ原則 等)は CLAUDE.md にまとまっています。
セキュリティ方針(要約)
- GitHub Private リポジトリのみ(Public 絶対禁止)
- 秘密情報(API キー・Cookie・DB・記事・ログ)は
.gitignoreで物理ブロック .claude/settings.jsonのpermissions.deny+ PreToolUse Hook で Claude Code からも不可視gitleaksで push 前に自動スキャン
ライセンス
Private repository — All rights reserved.