expert-brains
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.sh→claude --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-opsexpert を新規作成(当初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 の
modelfrontmatter 仕様を調査(そのターンの間だけモデル切替、次プロンプトで復帰)。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を確認
最近のコミット
- b67f5ab absorb: company-operation のセッションまとめから知見を吸収(freee人事労務は会計プラン付帯で契約不要・社保届出の手段) 2026/8/24
- 871e295 absorb: footballnext-operation のセッションまとめから知見を吸収(共有配信JSONの後方互換設計・フィルタ交差ゼロ・実データ限定状態の証跡化・比較画像合成) 2026/8/23
- 7a0e90a absorb: sumaho-suspense の枠再構築・題材選定ループから知見を吸収 2026/8/23
- fdaf6d5 absorb: sumaho-suspense のシナリオ超大枠確定セッションから知見を吸収 2026/8/22
- 3fdc7b0 absorb: sumaho-suspense のセッションまとめから知見を吸収(game-design/corporate) 2026/8/21
- cb0d251 absorb: company-operation・kidoku-mystery の .devnotes から知見を吸収(補助金見送り判断・kidoku-mystery凍結と教訓) 2026/8/21
- ddaa772 absorb: sumaho-suspense のセッションまとめから知見を吸収(クエスト共通パターン・心の声ブロック・偽UI設計) 2026/8/21
- de2796a absorb: sumaho-suspense のセッションまとめから知見を吸収(game-design / design) 2026/8/21
- 0267619 absorb: footballnext-operation のセッションまとめから知見を吸収(外部API補完のリトライ化・ビルド番号のASC実数確認・実測幅UI切替の揺れ・centerX制約崩れ・配信データ先行確認) 2026/8/19
- c4435a2 absorb: visionworkout-operation のセッションまとめから知見を吸収(ストリーク4週確定判定・効果測定の型) 2026/8/19
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