行政失敗ずかん (gyosei-shippai-db)
行政失敗ずかん (gyosei-shippai-db)
日本の行政が過去に廃止・指摘した事業を継続収集し、「何が起きたか / なぜ起きたか / 同じ構造を持つ民間ビジネス」 の三層で整理する公開データベースです。
新しい事業計画を起案する前に、似た条件で過去に何が起きたかを確認し、同じ轍を避けるための場所として設計しています。
本データベースに掲載される分類・教訓・根本原因・防止策の多くは機械学習モデルによる生成物を含みます。意思決定の最終判断は人間が行ってください。詳細は docs/GOVERNANCE.md。
---
仕組みの根本
公的に開示された行政事業データを 収集 → 構造化 → 分析 → 配信 の 4 工程で扱う、サブスク完結型の AI パイプラインです。一度仕掛けたら毎日 03:00 に自動で 1 サイクル動き続け、新しい事案が増えるごとに自分の分類精度を測り直し、必要ならプロンプト改善案を自動で書く設計になっています。
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 収集層 │ → │ 処理層 │ → │ 索引層 │
│ discovery │ │ extractor │ │ similarity │
│ crawler │ │ classifier │ │ (embeddings) │
└──────────────┘ │ qa / resolver│ └──────────────┘
└──────────────┘ ↓
↓ ┌──────────────┐
┌──────────────┐ │ 配信層 │
│ メタ層 │ │ Next.js UI │
│ taxonomy │ │ + JSON API │
│ root_cause │ └──────────────┘
│ business_lsn │
└──────────────┘
各層は独立した Python モジュールで、SQLite を中央 store に共有します。LLM 呼び出しは Claude.ai / ChatGPT のサブスク経由のみ で、外部 API 直接課金はゼロです。
---
何を貯めているか
| カテゴリ | 内容 |
|---|---|
| 事案 (cases) | 会計検査院の検査報告から抽出した個別失敗事業。事業名 / 組織 / 金額 / 期間 / 本文 / 出典 URL |
| 分類タグ (tags) | 失敗パターン (制度設計の穴 / 算定誤り / 履行確認不備 等) を 10 親 + 49 sub の階層で付与 |
| 教訓 (lessons) | 各事案 1 行の本質教訓 |
| 根本原因 (case_rca) | 構造的失敗原因 + counterfactual (もし◯◯していれば) + 防止策 (行政向け / 民間向け) |
| 企業教訓 (business_lesson) | 同じ失敗構造を持つ民間プロジェクトへの翻訳 + 早期警報 + アクション |
| 意味的近傍 (case_embeddings / similar_cases) | sentence-transformer 384 次元ベクトル + cosine 類似度 Top-N |
| レビュー待ち (review_queue) | 自動分類の低信頼度起票 + AI 1 次判定 + 監査結果 |
---
データ規模 (現時点)
| 項目 | 値 |
|---|---|
| 収録事案 | 2,193 件 (会計検査院 H28–R05、8 年分) |
| 有効 cases | 1,994 件 (除外 199: 目次/集計ページ等を auto-detect で排除) |
| 投入タグ | 3,985 件 |
| 失敗分類体系 | 59 active タグ (10 親 + 49 sub) |
| 教訓 (lessons) | 全件カバー |
| 累計指摘額 | 約 122.3 兆円 |
| 100 億円超事案 | 247 件 |
| 根本原因分析 (RCA) | 2,030 件 (92.6%) |
| 民間翻訳 (Business Lesson) | 1,844 件 (84.1%) |
| 意味的近傍 | embeddings 2,193 件 / similar_cases 21,930 行 |
| 累計 API 直接課金 | ¥0 (Claude.ai + ChatGPT サブスク内で完結) |
---
動かし続ける仕組み (Resilience)
「PC を朝つけたらまた壊れていた」を避けるため、停止/障害の検知と自動復旧の経路を多層に組んでいます。
| 仕組み | 役割 |
|---|---|
| Windows タスクスケジューラ 8 タスク | 日次/週次/月次の運転 (詳細は後述) |
scripts/refresh_web.py | publisher + health_export + cooccurrence + trend_detector を 1 コマンドで更新 |
scripts/health_check.py | DB / web data / cron ログの健全性検査 (cron 完了後に exit code で異常通知) |
scripts/llm_watchdog.py | Python 生存数 × DB 書込み age × log timeout 多軸で stall 検知、alert 出力 |
scripts/db_watch_refresh.py | DB mtime と web data mtime を比較し、ズレを検知したら自動再生成 |
scripts/schedule/schtasks_status.ps1 | schtasks の真の Last/Next Run + 失敗履歴 dashboard |
| Discord / LINE webhook 通知 | .env 設定で失敗時に外部チャンネルへ送信 |
scripts/db_backup.ps1 | DB を 7 世代 rotate (毎日 02:30) |
---
賢くなる仕組み (Continuous Improvement)
「動かすほどデータが溜まり、自分の出力品質を測って改善案を書く」ループを内蔵しています。
新規事案 ─→ 分類 ─→ qa 起票 ─→ resolver_v3 が下書き ─→ auto_approver が閾値判定
│ │
↓ ↓
review_queue_audit deferred_applier (実 DB 反映)
│ │
↓ ↓
audit_score 低い分 intelligence_log に進化記録
│
↓
prompt_auto_tuner が改善案 (proposals/*.md)
│
↓
assemble_prompt_v4_candidate が次バージョン雛形
│
↓
人間レビュー → resolver_v4 化 → A/B test → 採用
| 仕組み | 役割 |
|---|---|
scripts/daily_incremental_ingest.py | 未取得 URL から毎日 N 件を自動 ingest、ベース事案を日々増やす |
evaluator-agent + case_resolver_audit | resolver 出力を独立サンプルで採点、accuracy をログ |
review_queue_audit.py --ids-file | 学習時に見ていない hold-out で v3 を 0.861 まで実証 (audit_id=8) |
prompt_auto_tuner.py | 低 score サンプルから改善案を action 別に生成 (proposals/2026-05-17_prompt_resolver_tune_*.md) |
assemble_prompt_v4_candidate.py | 提案を集約し v4 移行 10-step を出力 |
weekly_classifier_quality.py | 固定 protocol (sonnet n=30) で分類品質の時系列を測る |
taxonomy-agent + proposals/ | 肥大したタグを Opus で sub-tag 分割提案 → auto_apply |
intelligence_log テーブル | 週次の avg_confidence / accuracy / coverage を歴史化 |
---
主要な利用面
| ページ / コマンド | 入力 | 出力 |
|---|---|---|
/cases | キーワード / 組織 / 金額 / 年度 / タグ | 該当事案リスト + CSV エクスポート |
/patterns | 失敗パターン名 | 定義 / 典型構造 / 計画への問い / 代表事案 |
/diagnose | 事業計画テキスト | 類似失敗 Top-5 + 警戒タグ + 防止策抜粋 |
/analytics | (なし) | 組織×パターン heatmap / 共起 lift / 規模補正異常値 |
predict_risk_v2 --file plan.txt (CLI) | 計画テキスト | リスクスコア + 警戒タグ + 類似事案 + v6 RCA から集約した予防策 + Markdown 診断レポート |
利用面はすべて「新規事業を起こす立場の人が、過去事案から学んで意思決定を改善する」ための入口として配置しています。診断・統計・分析の各出力は出典 URL 付きで、最終判断者が原典に当たれる構造です。
---
アーキテクチャ
LLM 呼び出し方針
| 用途 | 担当 |
|---|---|
| 規約判断 / タグ品質 / スキーマ進化 / コンテンツ生成 | Claude (Claude.ai サブスク、src/utils/claude_runner.py 経由) |
| 量を捌く構造化抽出 / コード生成 | Codex CLI (ChatGPT サブスク、src/utils/codex_runner.py 経由) |
各エージェントは Anthropic SDK / OpenAI SDK を 直接呼ばず、上記 runner 経由でサブスク認証を使います。環境変数 ANTHROPIC_API_KEY は未設定が前提です。
サブエージェント
.claude/agents/ 配下に 24 個のサブエージェントを 4 階層に分けて配置。
- 階層 1: 取得・分類 — discovery / crawler / extractor / classifier / qa
- 階層 2: 自己改善 — evaluator / curator / taxonomy / prompt-tuner / trend-detector
- 階層 3: 知見抽出 — synthesizer / analyzer / insight / anomaly-detector / pattern-miner
- 階層 4: 価値出口 — content / publisher / summarizer / prediction-engine
- 戦略層 — research-agent
詳細は docs/AGENTS.md。
スケジュール
scripts/schedule/*.ps1 を Windows タスクスケジューラに登録して 24h 稼働。
| タスク | 頻度 | 内容 |
|---|---|---|
gyosei-daily-pipeline | 毎日 03:00 | 日次インクリメンタル ingest + crawler → extractor → classifier → resolver → applier → refresh_web |
gyosei-daily-analytics | 毎日 06:00 | analyzer + publisher |
gyosei-weekly-monday | 月 06:00 | trend / anomaly / pattern / organization_rate |
gyosei-weekly-friday | 金 18:00 | synthesizer / content / evaluator / prompt-tuner |
gyosei-weekly-sunday | 日 21:00 | taxonomy review (条件付き) |
gyosei-monthly | 月初 06:00 | curator / research / 月次 analyzer |
gyosei-db-backup | 毎日 02:30 | DB バックアップ 7 世代 rotate |
gyosei-db-watch | 毎日 12:00 | DB mtime 監視 + web data 自動 refresh (漏れ防止) |
詳細は docs/RUNBOOK.md。
---
データソース
| ソース | 規約 | 状態 |
|---|---|---|
| 会計検査院 検査報告データベース | 政府標準利用規約 (第 2.0 版) | 稼働中 (H28–R05、8 年度) |
| 行政事業レビュー見える化サイト | 政府標準利用規約 | e-Gov 経由 CSV/JSON、着手準備中 |
| 自治体事務事業評価 PDF | 自治体個別 | フェーズ 2 以降 |
クロール時の絶対ルール (qa-agent が自動拒否で強制):
| ルール | 内容 |
|---|---|
| robots.txt 確認 | クロール対象サイトで最初に確認 |
| アクセス間隔 | 最低 1 秒、推奨 2 秒以上 |
| User-Agent 明示 | gyosei-shippai-db-bot/0.1 (contact: <email>) |
| 全文再配布禁止 | 出力はメタデータ + タグ + 教訓 + 出典 URL 誘導のみ |
| 出典明記 | 全事案に出典名と取得日を必須記録 |
| dry-run モード | 全クローラに --dry-run 必須実装 |
詳細は docs/DATA_SOURCES.md。
---
クイックスタート (開発者向け)
前提
| ツール | 版 |
|---|---|
| Python | 3.10+ |
| Node.js | 20+ |
| SQLite | 3 |
| Claude Code | 最新 |
| Codex CLI | 任意 (量を捌くタスク用) |
| PowerShell | 7+ (Windows) |
セットアップ
git clone https://github.com/HY3YH/gyosei-shippai-db
cd gyosei-shippai-db
pip install -r requirements.txt
python src/db/migrate.py
cd web && npm install && npm run dev # http://localhost:3030
動作確認
# 現状スナップショット (DB 主要指標)
python scripts/status.py --axes
# 単発スモーク (LLM 不使用)
python -m src.analyzers.coherence_checker --sample 3 --prompt-version v6 --dry-run
# 健全性検査
python scripts/health_check.py
---
データの保管 / バックアップ
このリポジトリに含まれるもの / 含まれないもの
| 種類 | リポジトリ (= GitHub) | 場所 |
|---|---|---|
コード (src/ web/ scripts/) | ✅ 含む | git 追跡 |
プロンプト (prompts/) / 教師例 (seeds/) | ✅ 含む | git 追跡 |
スキーマ定義 (migrations/) | ✅ 含む | git 追跡 |
配信用 JSON スナップショット (web/public/data/) | ✅ 含む | git 追跡 |
作業ログ (worklog/) | ✅ 含む | git 追跡 |
DB 本体 (data/db/gyosei.db) | ❌ 含まない | ローカルのみ |
生 HTML (data/raw/) | ❌ 含まない | ローカルのみ |
個人方針メモ (memory/) | ❌ 含まない | ローカルのみ |
.env (API キー等) | ❌ 含まない | ローカルのみ |
データを GitHub に上げないのは標準的な分離であり、.gitignore で除外しています。
現状のサーバ構成 (シンプル)
[Windows PC 1 台]
├── C:\...\gyosei-shippai-db\data\db\gyosei.db ← SQLite 本体 (100MB ±)
│ └── scripts\db_backup.ps1 → 同 PC 内に 7 世代 rotate
├── OneDrive 同期 ← デスクトップ配下のため OneDrive クラウドにも自動コピー (設定次第)
├── Windows タスクスケジューラ ← 8 タスクで日次/週次/月次運転
└── Claude.ai + ChatGPT Plus サブスク ← LLM 呼び出し (API 課金ゼロ)
ローカル単体で完結するため最小コストで動きますが、PC ディスクが壊れたら DB を失います。
本番運用時の補強案
| 強化対象 | 標準的な選択肢 |
|---|---|
| DB ホスティング | Cloud SQL / RDS / Cloudflare D1 / Supabase |
| Off-site スナップショット | S3 / R2 / GCS / B2 への daily backup (Restic 等で暗号化) |
| 別端末レプリカ | 別 PC / NAS / 外付け SSD への rsync |
| 機密管理 | AWS Secrets Manager / GitHub Actions secrets / 1Password Connect |
| 公開 deploy | Cloudflare Pages / Vercel / GitHub Pages |
| アラート通知 | Discord / LINE webhook (現状 .env 設定で対応可、外部監視 SaaS 連携は未) |
詳細は docs/PRODUCTION_READINESS.md の「1.4 バックアップ」「1.5 セキュリティ」節。
受領者が手元で復元する場合
このリポジトリだけでは DB の中身は再現できません:
- DB 本体を別途受領 (
data/db/gyosei.dbを直接コピー) → そのまま全データ復元 - 空 DB から再構築:
python src/db/migrate.py→ crawler → classifier → RCA を回す。Claude.ai サブスク必須、数日かかる - 閲覧のみ:
web/public/data/*.jsonがリポジトリに含まれているため、npm run devで UI 上の表示だけは再現可能 (新規分析・診断は不可)
---
セキュリティ
| 項目 | ルール |
|---|---|
| API キー | コード直書き禁止。環境変数経由 (os.environ.get) のみ |
.env ファイル | commit しない (.gitignore 除外済) |
| ログ出力 | キー・パスワード・個人情報を worklog/ / logs/ に書かない |
| 漏洩時対応 | console.anthropic.com で 5 分以内に Revoke |
コミット前セルフチェック:
git diff --cached | Select-String -Pattern "sk-ant-[A-Za-z0-9_-]{20,}|sk-[A-Za-z0-9_-]{40,}|gh[ps]_[A-Za-z0-9]{30,}|AIza[A-Za-z0-9_-]{30,}|AKIA[A-Z0-9]{16}"
ヒットしたらコミットしない。詳細は docs/SECURITY.md。
---
ディレクトリ構成
gyosei-shippai-db/
├── CLAUDE.md Claude Code 用プロジェクト憲法
├── README.md 本ファイル
├── .claude/
│ ├── agents/ サブエージェント定義 (24 個)
│ ├── skills/ スキル定義
│ └── commands/ スラッシュコマンド
├── src/ Python 実装
│ ├── crawlers/ データソース別クローラ
│ ├── extractors/ HTML / PDF → cases
│ ├── classifiers/ Few-shot 分類 + evidence_filler
│ ├── analyzers/ RCA / business_lesson / coherence / evaluator
│ ├── evaluators/ review_queue resolver / auto_approver / applier
│ ├── prediction/ 予防診断 (predict_risk_v2)
│ ├── publishers/ DB → web/public/data/*.json
│ └── utils/ claude_runner / codex_runner / llm_runner
├── web/ 可視化システム (Next.js 14 + Tailwind)
│ ├── app/ 17 ページ (App Router)
│ ├── components/ UI 部品
│ └── public/data/ publisher が出力する JSON
├── prompts/ LLM プロンプト (バージョン管理対象)
│ ├── taxonomy.json
│ ├── root_cause/v1〜v6.md
│ ├── coherence/v1.md
│ └── evaluator/
├── seeds/ Few-shot 教師データ (curator-agent で進化)
├── migrations/ SQLite マイグレーション (001-020)
├── scripts/
│ ├── schedule/ タスクスケジューラ統合
│ ├── notify/ LINE / Discord 通知
│ ├── refresh_web.py 全 web data を 1 コマンドで更新
│ ├── health_check.py 健全性自動検査
│ └── status.py 現状スナップショット
├── data/ 生データ + SQLite (gitignore)
├── reports/ 自動生成された分析レポート
├── proposals/ taxonomy / prompt 改善提案
├── diagnostics/ 予防診断 demo / レポート
├── plans/ 診断用サンプル計画テキスト
├── worklog/ セッション作業ログ (JST、追記専用)
├── memory/ 永続知識 (gitignore、ローカル)
└── docs/ 設計ドキュメント
---
ドキュメント一覧
| ファイル | 内容 |
|---|---|
| CLAUDE.md | Claude Code 用プロジェクト憲法 / 起動手順 |
| CONTRIBUTING.md | 貢献ガイド / コミットルール |
| docs/AGENTS.md | 24 エージェントの役割・モデル・実装状況 |
| docs/ARCHITECTURE.md | システム全体構成・データフロー |
| docs/PIPELINE_SPECIFICATION.md | 10 stage の canonical パイプライン仕様 |
| docs/RUNBOOK.md | 日常運用・Codex 連携・タスクスケジューラ統合 |
| docs/DATA_SOURCES.md | データソース詳細・規約・取得手順 |
| docs/DATA_SOURCE_PLAYBOOK.md | 新ソース追加の 5 ステップ |
| docs/DATA_SOURCE_ROADMAP.md | データソース拡大計画 |
| docs/GOVERNANCE.md | 信頼性と限界・規約遵守 |
| docs/SECURITY.md | API キー管理・漏洩時対応 |
| docs/PRODUCTION_READINESS.md | 本番公開前 見直しチェックリスト |
| docs/BRIEF_RCA_COHERENCE_AND_EVAL.md | RCA / coherence / evaluator の設計 |
| docs/EVALUATOR_REFACTOR_PLAN.md | evaluator の Plugin 化計画 |
| docs/ROADMAP.md | 進行状況・残タスク |
| docs/FAQ.md | よくあるトラブルと対処 |
| docs/GLOSSARY.md | プロジェクト固有の用語集 |
---
貢献・コンタクト
- バグ報告・改善提案: GitHub Issues
- 詳細な貢献手順: CONTRIBUTING.md
---
ライセンス
- コード: MIT License
- データ: 政府標準利用規約 (出典: 会計検査院 / 行政事業レビュー) に準拠
- AI 生成テキスト (分類タグ・教訓・根本原因等): 出典明記・改変明示の条件下で再利用可
詳細は docs/GOVERNANCE.md。