🛰️ Harness Meta — AI ハーネス内部監査

全プロジェクト(Tier1/2/3)の状態 / 要対応 task / 監査ログ · operator 専用
全体サマリ0
プロジェクト0
要対応0
監査ログ0
汚染監査0
利用監査0
優先度0
全 task 状態
24 時間変化
全プロジェクト接続状態(Tier1 / Tier2 / Tier3 + 未接続)
Tier Project Mode Active Awaiting Failed Last updated
要対応タスク(approval 待ち / failed / 長時間 in_progress)
Urgency Project task_id theme / lane Status Step Updated
監査ログ — 最近 updated された meta_task(top 50)
Updated Project task_id Lane Status Step
今後追加予定
以下は現在の meta_task_state スキーマに含まれておらず、Step 2 以降で追加予定:
  • state transition 履歴(worker actor — bright / char / amuro / validator / artifact)
  • 外部書き込み履歴(WP / Supabase / CF deploy)
  • Claude API / LLM 利用検出(subscription vs. API key)
  • OpenClaw candidate(source_missing 等)の統合
  • ordinary_task_state(harness 通常 task の sync)
汚染監査 — P0/P1/P2/P3 集計
P0 = harness 停止 / データ破壊の恐れ ・ P1 = 本番経路に即時影響 ・ P2 = 履歴汚染・実害なし ・ P3 = gardening candidate
カテゴリ別 check(A1 データ / A2 構造 / A3 運用)
Findings(直近監査で検出された違反)
Sev Cat Finding Evidence Remediation
改善実施履歴(直近 24h)
運用原則 A5
  • P0 は即停止(harness を止める判断を operator が下す)。P1 は即報告 + 24h 以内 fix。P2/P3 は backlog 化し gardening で潰す。
  • 追加変更で本監査が悪化する場合は merge を見送る(additive / non-destructive 原則)。
  • Phase 1 readonly 本番経路(misao / smart-treats)を壊さないことが最優先。契約テスト(tests/workers/*)が赤になる変更は受け付けない。
  • 直 Claude API 課金は禁止 — Codex CLI / Claude Code subscription 経由のみ。validator scanForbiddenPatterns で検出する。
利用監査 — Claude CLI invocation ledger
⚠️ Internal budget(社内監査用) — Anthropic 公式の Claude plan quota は API 非公開のため、 本ダッシュボードは Claude CLI が返す total_cost_usd(API-equivalent 単価の内部見積り)を集計。 実際の plan 消費・ヒット状況は claude.ai UI の 5h meter が最終参照。 budget 値($20/5h、$50/day、$200/month)は仮置き、後で config で差替可能。
Budget 消費率(仮置き閾値)
日次コスト推移(直近)
CLI 別 内訳(Claude / Codex)
CLIInvocationsCost (USD)期間備考
Actor 別 内訳
ActorInvocationsCost (USD)平均 / 呼出
Project 別 内訳(月合計)
ProjectInvocationsCost (USD)
Stage B 切替手順(2026-04-24 ~15:00 JST 予定)
  1. pre-flight: pm2 list | grep online が 8/8、PRAGMA wal_checkpoint(PASSIVE) = 0 確認
  2. .envUSAGE_LEDGER_ENABLED=1 を追記
  3. 段階的 restart (各 30-60 分観察):
    • pm2 restart bright-worker --update-env → 30 min 観察
    • pm2 restart char-worker --update-env → 30 min 観察
    • pm2 restart amuro-worker --update-env → 30 min 観察
  4. 各 worker restart 後 10 分以内に ledger 書込を確認: SELECT cli, actor, COUNT(*), SUM(total_cost_usd) FROM usage_ledger WHERE source='live' GROUP BY cli, actor;
  5. regression 監視項目:
    • pm2 restart count 増加が +1 のみ (crash loop 無し)
    • error.log で SQLITE_BUSY_RECOVERY / usage ledger record failed 無し
    • 本番 task が planning / executing / evaluating で止まらない
    • Claude CLI total_cost_usd が正しく入る (Claude 経路)
    • Codex duration_ms + prompt_chars / output_chars が入る (Codex 経路)
  6. rollback: echo USAGE_LEDGER_ENABLED=0 >> .env; pm2 restart bright-worker char-worker amuro-worker --update-env
優先度スコア — 自動生成 task の採点
ℹ️ 内部評価指標 — business_impact (intent BOFU/MOFU/TOFU) + data_availability (Misao 数値・医師コメント) + cta_proximity (両院導線) + freshness (同 axis 直近公開の減点) + local_context (岐阜ローカル)。strategic_urgency で 1.0〜1.5x 倍率。 control-plane/priority-scorer.ts が single source of truth。
Task 別スコア (band 降順) — 🌱 seeded (承認待ち 6) / 🔮 predicted (予測 9)
状態BandScoreTaskIntentBreakdown
Discord Catalog 入口統計 (DE-5、直近 30 日)
🎯 Discord 唯一の入口方針 — `DISCORD_CATALOG_ENABLED=1` で bridge が request_summary から catalog prefix を解決、hit/miss/disabled を event metadata に記録。 ここで catalog 不在の未対応 prefix を発見できる。

採点要素の凡例
  • business_impact (0-40): BOFU=40 (予約直結) / MOFU=30 (検討層) / TOFU=20 (認知)
  • data_availability (0-25): 数値データ 15pt/件 + 医師コメント 7pt/件、cap 25
  • cta_proximity (0-15): 両院 CTA=15 / 片方=10 / なし=0
  • freshness (-10〜0): 同 axis 直近公開 0 日=-10、7 日以降 0 で回復
  • local_context (0-10): 岐阜ローカル + ルイかのう導線 両方=10 / 片方=5
  • strategic_urgency (1.0-1.5x): deadline 30 日以内=1.5 / 季節性=1.2 / 通常=1.0
今後追加予定(Phase 1+)
  • ✅ L7-4 (priority scorer): 自動生成 task に business_impact / data / CTA / freshness / local を配点、band で dashboard 表示 (→ 「優先度」タブ参照)
  • ✅ P1 (ingest): base-worker が Claude / Codex 両経路で usage_ledger を live 記録 (wire 済、flag OFF default)
  • P2 (Freeform ingest): runClaudeFreeform を stream-json 化して amuro の Claude 経路も ledger 対象化
  • P3 (Supabase sync): ledger を Supabase mirror して本 dashboard を動的化(現状は静的 snapshot)
  • P4 (Model Router): config/model-routing.yaml で actor×priority→model を選択、base-worker 起動時に --model 付与
  • P5 (Budget Governor): 新 worker が budget_state(ok/constrained/emergency)を読み、低優先度 task を budget_deferred に 退避
  • P6 (budget_deferred state): state-machine に transition 追加、resume_at で順次復帰