投稿する

note&X自動投稿/改善(モノWebラボ — AI時代のWeb戦略を、製造業の現場へ)

中堅BToB製造業のWeb担当者に向けた、AI・Web戦略の「業界翻訳」メディアを自動運用するための自律型エージェントです。最新ニュースの収集からテーマ選定、5,000字超の専門記事執筆、図解生成、品質検閲、そしてnoteやXへの投稿までを完全自動で完結させます。 単なる記事量産ではなく、独自の品質スコアによる自己採点や、過去の成功・失敗事例をSQLite DBに蓄積して次回執筆に活かす「自己学習サイクル」を備えているのが最大の特徴です。 専門知識を要する業界特化型メディアの運営をAIに委譲し、人間はDiscordを通じた最終承認のみを行う「事業の自動運転」を実現したい場面に最適です。既存の仕組みを医療や建設など他業界へ横展開する基盤としても活用できます。
zip未取得

モノWebラボ — AI時代のWeb戦略を、製造業の現場へ

中堅BtoB製造業のWeb担当者向けに、AI/Webの最新動向を「で、ウチではどうか」に読み替えて毎日届ける、自動運転型の翻訳メディア。
  • 媒体(note):https://note.com/monoweb_lab
  • 媒体(X):https://x.com/monoweb_lab
  • このリポジトリ:媒体を毎日自動で動かしている、事業自律改善エンジンのソースコード

---

目次

  1. このメディアの意味(Why / What)
  2. 仕組み概要(How)
  3. 工夫している3つの軸
  4. リポジトリ構成と開発者向け情報

---

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つです。

  1. 読み替え記事:BtoC・大企業のAI/Web事例を、中堅BtoB製造業の文脈に翻訳した解説記事(5,000〜7,000字)を毎日2本
  2. 経営提案で使える対比構造:「Webセキュリティ開示は工場監査と同じ取引維持コスト」のように、製造業の現場語で説明し直す。読者はそのまま社内提案に転用できる
  3. 業界横断のベンチマーク資産:競合・トレンド・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.pyAnthropic API ラッパー(コスト記録・チャンク監視・リトライ)
workers/shared/feedback_loop.py過去の品質チェック結果と知見を次回プロンプトに動的注入
workers/shared/autonomy_router.py品質スコアで auto/human/discard を分岐
workers/shared/diagram_generator.pyGemini 3.1 Flash Image で図解生成
workers/shared/image_fetcher.pyUnsplash でアイキャッチ取得
workers/shared/table_to_bullets.pynote 用に表組→箇条書き変換
workers/shared/db.pySQLite 共有脳へのアクセス層

B. .claude/(Claude Code が記事設計・改善時に使うスキル)

人間と Claude Code が対話的に媒体を育てる時に使う Skill 群。本番スクリプトの中ではなく、Claude Code のセッションでオンデマンドにロードされます。

スキル役割
article-writing記事生成の全体プレイブック。3つの骨格パターンと品質基準
industry-translationBtoC・大企業事例を中堅BtoB製造業に翻訳する技法
executive-contrast「AはBではなくCだ」で経営者視点の対比構造を作る技法
movie-scene-intro読者像を解像度高く把握するための内部ツール(記事冒頭には出さない)
domain-knowledge-wiki成功事例・失敗事例・業界知識のドメインWiki
note-publishing-toolkitnote 投稿の全工程(収集 → 投稿)ツールキット

エージェントは .claude/agents/manufacturing-translator.md に定義された「製造業翻訳メディア担当」が、必要なスキルを組み合わせて作業します。

DBが共有の脳

エージェント同士は直接通信しません。すべて SQLite(db/manufacturing.db)を介します。

テーブル用途
articles記事メタデータ・status 遷移・投稿 URL・コスト記録(cost_usd)
topicsテーマ候補・選定結果
trends収集データ + 5指標の定量データ
quality_checksClaude 自己採点結果(feedback_loop の学習材料)
domain_knowledge蓄積 Wiki(成功 / 失敗 / 業界知見)
execution_logs全スクリプトの実行ログ

---

3. 工夫している3つの軸

① 稼働性 — 止まらず24時間動き続け、障害から自己復旧する

「人間が見ていなくても毎日記事が出続ける」を成立させるための工夫。

工夫中身
launchd 2回起動5:00 と 11:20 の 2 回。1 サイクルが失敗しても次のサイクルで自動リカバリ
pmset で確実な wakesudo 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.