投稿する

Githubトレンドリポジトリ自動分析、解説記事生成システム

GitHubのトレンドリポジトリを自動収集し、解説記事の執筆から画像生成、CMS投稿、SNS発信までを一貫して行う自律型メディア運営システムです。READMEの高度な分析による高品質な日本語記事の生成に加え、週次のSEOリライトやプロンプト自動最適化といった自己改善機能を備え、人間の介入を最小限に抑えた「完全自動運営」を実現します。 技術スタックにはAstro、Strapi、PostgreSQL、Cloudflareを採用し、月額2,000円前後の低コスト運用を可能にしています。エンジニア向けの技術情報発信による集客と、AIツールのアフィリエイト収益化を組み合わせたメディアビジネスを、24時間365日エージェントが自動で回し続けるための実践的なソリューションです。
⬇ ダウンロード(repo-lab-main.zip / 0.4 MB)

repo-lab

GitHub Trending JP — GitHub注目リポジトリを自動収集・記事化し、AIツールアフィリエイトと組み合わせて収益化する HOOTL(Human Out Of The Loop)自律運営メディア。

---

概要

日本語向けの GitHub トレンド解説メディアを全自動で運営するシステム。

Spinela ワークフローエンジンが 3 時間毎に GitHub Trending を収集 → 記事生成 → CMS 投稿するパイプラインを実行し続ける。記事品質の自己改善・プロンプト自動最適化・SEO リライトまで含め、人間の介入なしで運営を継続することを目標としている。

サイト: repo-lab.com

ビジネスモデル: GitHub 分析コンテンツ(集客)+ AIツールアフィリエイト(収益)

---

システム構成

[GitHub API]
     │ repo-collector(1日2回)
     ▼
[PostgreSQL / VPS]  ←── candidate_queue(記事化候補プール)
     │ candidate-selector(3時間毎・chain起点)
     ▼
[article-writer] ── GitHub README分析・記事生成・サムネイル生成(Flux.2[klein])
     │ chain(articles_ready==true)
     ▼
[article-poster] ── Strapi v5 投稿 → CF Pages 再ビルドトリガー
                                              │
                                              ▼
                                   [Cloudflare Pages]
                                   repo-lab.com(Astro)

---

技術スタック

領域技術
フロントエンドAstro v6 + Tailwind CSS v4
ホスティングCloudflare Pages(Git 連携 + Deploy Hook)
CMS / APIStrapi v5(ConoHa VPS・api.repo-lab.com)
DBPostgreSQL(VPS ローカル・スキーマ分離)
ストレージCloudflare R2(images.repo-lab.com)
パイプラインSpinela(CodeLodis WF エンジン)on VPS
画像生成Flux.2[klein](Black Forest Labs API)
VPSConoHa 4GB(hootl-prod-01 / Ubuntu)
プロセス管理PM2(Strapi + Spinela 常駐)

---

主要コンポーネント

site/ — Astroフロントエンド

Cloudflare Pages でホストされる静的サイト。Strapi REST API からデータを取得して記事一覧・詳細・ツール解説ページを表示する。

site/
├── src/pages/
│   ├── index.astro          # トップ(リポジトリ記事一覧)
│   ├── articles/[slug].astro # 記事詳細
│   ├── tools/[slug].astro   # AIツール解説(アフィリ導線)
│   ├── categories/[slug].astro
│   └── diagnose.astro       # 診断ページ
├── src/components/          # RelatedArticles など
└── wrangler.toml            # CF Pages 設定(GA4 ID等)

repo-lab/ — Spinelaパイプライン

VPS 上で動作するエージェント群と WF 定義ファイル。rlctl CLI でエージェントを管理する。

repo-lab/
├── workflow.yaml            # メイン 3WF 定義(candidate-selector / article-writer / article-poster)
├── workflows/               # サブシステム WF(品質改善・SEO・X 投稿等)
├── agents/
│   ├── candidate-selector/  # Step1: 記事化候補を candidate_queue から選定
│   ├── article-writer/      # Step2: README 分析 → 記事生成 → 画像生成
│   ├── article-poster/      # Step3: Strapi 投稿 → CF Pages 再ビルド
│   ├── repo-collector/      # GitHub Trending 収集(1日2回)
│   ├── quality-improver/    # 低スコア記事の自動リライト(週次)
│   ├── seo-improver/        # GSC/GA4 データ活用の SEO 改善(週次)
│   ├── prompt-improver/     # 品質傾向分析 → プロンプト自動最適化(週次)
│   ├── x-post-scheduler/    # X(Twitter)自動投稿
│   ├── link-checker/        # 記事内リンク死活確認(週次)
│   └── db-backup/           # PostgreSQL バックアップ → R2(日次)
├── db/                      # DB マイグレーション SQL
└── templates/article.md     # 記事生成テンプレート

VPS(ConoHa / hootl-prod-01)

サービスPM2 名用途
Strapi v5strapi-repo-labCMS API(api.repo-lab.com)
Spinela—WF 実行エンジン
PostgreSQL—DB(strapi_hootl)

---

ワークフロー概要

メインパイプライン(3時間毎・自動)

candidate-selector
  └─ candidate_queue から未記事化リポジトリを選定
       ↓ has_candidates == true
  article-writer
  └─ GitHub README 分析 → 記事本文生成 → Flux.2[klein] でサムネイル生成
       ↓ articles_ready == true
  article-poster
  └─ Strapi v5 に投稿 → CF Pages Deploy Hook で再ビルド → DB 記録

自律改善パイプライン(週次・自動)

WFスケジュール内容
quality-improver毎週月曜 UTC 3:00スコア < 70 の記事を自動リライト
seo-improver週次GSC/GA4 データ → 低 CTR 記事のタイトル/meta 改善
prompt-improver毎週日曜 UTC 8:00品質データ集計 → プロンプト改善提案 → 自動適用 + ロールバック

---

セットアップ(概要)

前提条件

  • ConoHa VPS(4GB)上に以下が稼働していること:
  • PostgreSQL(strapi_hootl DB)
  • Strapi v5(PM2 管理・api.repo-lab.com)
  • Spinela(CodeLodis WF エンジン)
  • Cloudflare Pages プロジェクト(repo-lab.com)
  • Cloudflare R2 バケット(repo-lab-images / repo-lab-backups)

環境変数設定

cd repo-lab/
cp .env.example .env
# .env を編集して各 API キー・接続情報を設定
# 詳細: docs/infra/env-vars.md

主要な設定項目:

変数説明
POSTGRES_DSNPostgreSQL 接続文字列
GITHUB_TOKENGitHub PAT(public_repo 読み取り)
STRAPI_API_URL / STRAPI_API_TOKENStrapi CMS 接続情報
CF_DEPLOY_HOOK_URLCloudflare Pages デプロイフック
R2_ACCESS_KEY / R2_SECRET_KEYR2 認証情報
BFL_API_KEYFlux.2[klein] 画像生成 API

WF 登録・起動

# Spinela に WF を登録
lodisctl workflow register repo-lab/workflow.yaml
lodisctl workflow register repo-lab/workflows/quality-improver.yaml
# ... 他の workflows/ も同様

# 手動起動(動作確認)
lodisctl workflow run "github-trending::candidate-selector"

# 実行状態確認
lodisctl workflow status <run_id>

サイト(Astro)ローカル確認

cd site/
npm install
npm run dev   # http://localhost:4321
npm run build # 静的ビルド(CF Pages にデプロイ)

---

現在の稼働状況

コンポーネント状態備考
記事生成 WF(3WF チェーン)✅ 稼働中3時間毎・公開記事 22件・品質合格率 100%
Astro サイト✅ 稼働中repo-lab.com
repo-collector✅ 稼働中1日2回(UTC 6:00 / 18:00)
db-backup✅ 稼働中JST 02:00
quality-improver✅ 週次登録済み稼働確認要
seo-improver⚠️ 実装済みGoogle API SA 設定待ち
x-post-scheduler⚠️ 登録済みX API KEY 未取得のため停止中
アフィリリンク❌ 審査待ち5件 #pending(DO / Udemy / Perplexity 等)

---

ドキュメント

ドキュメント内容
docs/wbs.md実装計画・WBS・現状サマリ
docs/infra/infrastructure-design.mdインフラ構成設計
docs/infra/env-vars.md環境変数一覧
docs/workflow/pipeline/spinela-pipelines.mdSpinela パイプライン設計
docs/workflow/pipeline/article-lifecycle-wf-design.md記事ライフサイクル WF 設計
repo-lab/README.mdSpinela パイプライン詳細

---

月次コスト(参考)

項目費用
ConoHa VPS 4GB≈¥891〜¥1,144
ドメイン(repo-lab.com)≈¥83
Flux.2[klein](月 240 枚)≈¥540
Cloudflare Pages / R2¥0
テキスト生成(Claude Code サブスク)¥0
合計≈¥1,514〜¥1,767