← 一覧に戻る

expert-brains

GitHub ↗ HTML 最終push: 2026/8/24 11:55

WIP(現在進行中)

Work In Progress

このプロジェクトで現在進行中の作業と、過去のスナップショットを記録する。

現在の状況

  • expert は4体制: promo / design / corporate / product-ops(2026-07-05新設)
  • absorb-devnotes スキル(model: sonnet)で ~/cdev/ 全プロジェクトの .devnotes から知見を自動吸収する仕組みが稼働。初回吸収済み(47プロジェクト→39ファイル)、以降は _shared/absorb-state.md による差分処理
  • 夜間自動実行が有効: launchd(毎日0:30 + PC起動時の追いつき)→ tools/absorb_nightly.shclaude --dangerously-skip-permissions -p "/absorb-devnotes"。ログは ~/Library/Logs/absorb-devnotes.log
  • 次にやること: 初回自動実行(明日0:30)のログ確認。吸収の質(丸写しになっていないか・重複していないか)を数日分見て、必要なら SKILL.md の指示を調整
  • 詰まっていること: なし

過去のWIPアーカイブ

(新しい「現在の状況」を書く前に、古いものをここに追記でアーカイブする。新しいものが上)

ROADMAP(計画)

ロードマップ

今週

  • 初回の夜間自動吸収(0:30 or PC起動時)のログを確認する(~/Library/Logs/absorb-devnotes.log
  • 自動吸収の質を数日分レビューし、丸写し・重複があれば SKILL.md の指示を調整する

今月

  • 各expertの knowledge が育ってきたら、projects/ 配下の小粒ファイルをテーマ別に統合するか検討

今四半期

(今四半期の目標)

いつか

(いつかやりたいこと・アイデアストック)

DECISIONS(意思決定)

意思決定記録

このプロジェクトで下した重要な意思決定を記録する。 最新が上に来る。


2026-07-05: 夜間自動吸収は launchd + スタンプファイル方式、権限は skip-permissions

背景: absorb-devnotes を毎日0:30に自動実行したいが、その時刻にスリープ/電源OFFの場合はPC起動時に追いつき実行したい。候補は launchd 方式と Claude Code Desktop の scheduled tasks(アプリ起動が前提)。

決定: launchd(StartCalendarInterval 0:30 + RunAtLoad)+ ラッパースクリプトのスタンプファイルで「1日1回」を保証する方式を採用。無人実行の権限は --dangerously-skip-permissions で全自動化。

理由: launchd はスリープ明けの発火を自前で行い、電源OFFのケースも RunAtLoad + スタンプ判定でカバーできるため、アプリ常駐なしで要件を完全に満たす。allowlist 方式は想定外コマンドで止まり吸収が不完全になるリスクがあるため、完走性を優先して skip-permissions を許容した。

2026-07-05: absorb-devnotes の実行モデルは sonnet 指定

背景: SKILL.md の model frontmatter はそのターンの間だけモデルを切り替えられる(次のプロンプトでセッションモデルに復帰)。当初 opus を指定した。

決定: model: sonnet(最新の Sonnet に解決)に変更。

理由: 吸収は差分処理が基本で毎晩自動実行されるため、コストと質のバランスで sonnet が適当と判断。

2026-07-05: 吸収の差分管理は _shared/absorb-state.md、書き込みはメインエージェント一括

背景: ~/cdev/ 直下47プロジェクトの .devnotes を毎回全読みすると重く、重複吸収も起きる。また並列処理時に INDEX.md の更新が競合しうる。

決定: プロジェクトごとの最終吸収日を _shared/absorb-state.md に記録して差分のみ処理する。読み取りは並列サブエージェント可、知識ベースへの書き込みはメインエージェントが一括で行う。

理由: 日付ベースの差分は DEVLOG の日付見出しと相性が良くシンプル。書き込み一括は INDEX 更新の競合を構造的に排除する。

2026-07-05: アプリ運用責任者 expert の名前は product-ops

背景: 4体目の expert として「アプリ運用責任者」を新設。当初 app-ops で作成を進めた。

決定: product-ops にリネームして作成。カバー範囲はストア運用・ユーザー対応・監視/障害対応・KPI/分析運用の4領域。

理由: ユーザーの指定。アプリに限らずプロダクト全般の運用を見る名前の方が実態に合う。

DEVLOG(作業ログ)

開発日誌

このプロジェクトでの作業を時系列で記録する。 最新のエントリが上に来る。


2026-07-05

19:13 - product-ops expert 新設 + absorb-devnotes スキル整備 + 初回吸収 + 夜間自動実行

やったこと

  • new-expert スキルで product-ops expert を新規作成(当初 app-ops で作成後、途中で product-ops にリネーム)。知識ベース(product-ops/)とエージェント定義(claude-config 側 agents/product-ops-expert.md)の両方を作成し push
  • expert-brains 専用のプロジェクトスキル absorb-devnotes.claude/skills/absorb-devnotes/SKILL.md)を新規作成。~/cdev/ 直下の全プロジェクトの .devnotes を横断し、4expert(promo/design/corporate/product-ops)へ知見を蒸留吸収する
  • SKILL.md の model frontmatter 仕様を調査(そのターンの間だけモデル切替、次プロンプトで復帰)。opus 指定→後に sonnet に変更
  • 初回吸収を実行: 47プロジェクトを6並列の読み取りエージェントで処理し、39ファイルの知見を新規作成(promo 10 / design 8 / corporate 7 / product-ops 14)。design と product-ops はこれが初の knowledge
  • _shared/absorb-state.md を新設し、全47プロジェクトの最終吸収日を記録(次回から差分処理)
  • 夜間自動実行を構築: tools/absorb_nightly.sh(スタンプファイルで1日1回保証)+ ~/Library/LaunchAgents/com.ichirokisanuki.absorb-devnotes.plist(毎日0:30 + RunAtLoad)。launchctl bootstrap 済み・スキップ動作確認済み

詰まったこと / 気づき

  • 並列読み取りエージェントの1つが担当7プロジェクト中 visionworkout-operation の報告を落とした。回収結果は対象プロジェクト数と突き合わせて検品が必要(今回は手動で補完)
  • company-operation の corporate 分と 7channel の ASO 分は既存 knowledge と重複するため吸収をスキップ(重複回避が機能した)

次回やること

  • 明日 0:30(またはPC起動時)の初回自動実行後、~/Library/Logs/absorb-devnotes.log を確認

最近のコミット

README

expert-brains

Claude Codeサブエージェント(expert)用の永続知識ベース。

構成

  • _shared/ : 全expert共通の知識(プロダクト一覧など)
  • <expert>/INDEX.md : そのexpertの知識目次。起動時に必ず読む
  • <expert>/knowledge/ : 蒸留済みの知識(Markdown)
  • <expert>/sessions/ : 相談ログ。定期的にknowledge/へ蒸留する

expert一覧

  • promo : 自分が開発・リリースするアプリやサービスのプロモーション全般(ASO、SNS戦略、広告、値付け、ローンチ告知)の相談に乗る
  • design : UI/UXデザイン、ビジュアルデザイン、デザインシステム全般の相談相手
  • corporate : 会社全般の相談相手。財務・法務・税務・契約・登記・コンプライアンス・資本政策などバックオフィス全般をカバー
  • product-ops : アプリ運用責任者。ストア運用(審査・レビュー返信)、ユーザー対応、監視・障害対応、KPI・分析運用の相談に乗る
  • game-design : ゲーム設計・アプリ設計の相談相手。コアループ、報酬設計、動機づけ、難易度曲線、リテンションなど、ユーザーがどこに面白さを感じるか(エンゲージメント設計)を扱う
  • biz : 経営全般の相談相手。経営戦略・事業計画・ビジネスモデル設計・マネタイズ・市場/競合分析・リソース配分・撤退/継続判断など、事業をどう伸ばすかの意思決定を扱う(バックオフィス実務は corporate の領分)
  • health : ユーザー個人の体調・健康・メンタルの管理の相談相手。睡眠・食事・運動などの生活習慣、体調不良時の対処、ストレスケアやメンタル維持など、心身のコンディション全般を扱う

ダッシュボード

リポジトリ全体(expert・knowledge・sessions)を可視化する静的HTMLを生成できる。

python3 tools/build_dashboard.py
  • Python標準ライブラリのみ・依存なし・外部通信なし
  • リポジトリ直下に dashboard.html(CSS埋め込み・1ファイル)を出力
  • open dashboard.html でブラウザ表示(ダークモード)

コミット時に自動再生成する(git hooks)

.git/hooks/ は clone では復元されないため、clone 後に一度だけ以下を実行する。 以降、コミットのたびに dashboard.html が再生成され自動で git add される。

bash tools/setup_hooks.sh