money-learn について
money-learnは、プロジェクトのlearnings.jsonlを管理し、検証済みのパターンを検索・再利用できる個別の記録として保存します。money-*スキルを使うプロジェクト向けで、プロジェクト単位と複数プロジェクト共通の学びを扱います。
主な機能
- 01プロジェクトの学びの追加と検索
- 02確信度とカテゴリによる記録の整理
- 03古い学びの確認、整理、置き換え
- 04プロジェクトとポートフォリオ間での移動
- 05学びのMarkdownテーブル出力
活用シーン
- 01今後の事業判断に役立つパターンの記録
- 02価格やチャネルに関する過去の発見の検索
- 03検証済みの汎用的な知見のプロジェクト間共有
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ iamzifei/ show-me-the-money --skill money-learnインストール後、Claude Code で/money-learnを入力して読み込まれたか確認します。
詳細
/money-learn — プロジェクトの学びを管理
プロジェクトの learnings.jsonl(ほかのスキルが実行時に自動読み込みする、検証済みパターンの JSONL ファイル)を管理します。各学びは1行で表され、独立して引用でき、今後のすべてのセッションを通じて覚えておく価値があります。
学びはスナップショットではありません。 スナップショットはセッション全体の状態を記録します。学びは、特定のスナップショットを復元していない場合でも、今後の思考に影響を与える、単一かつ永続的な知見です。
/money-save とは別に用意されている理由
/money-save | /money-learn | |
|---|---|---|
| 粒度 | セッション全体の状態 | 1行につき1つのパターン |
| 頻度 | 重要な決定の後 | パターンを見つけたときはいつでも |
| 自動読み込み? | /money-restore の呼び出し時のみ | はい — すべての money-* スキルが最近の学びを読み込みます |
| 変更可能性 | 追記のみのスナップショット | 追加、検索、整理、置き換え |
| 用途 | 「この状態から再開する」 | 「このパターンを常に覚えておく」 |
創業者が発見することには、次のようなものがあります。
- 「コールドメールの開封率は、メリットを約束する件名より、具体的な売上額を示す件名のほうが4倍高い。」
- 「自社の ICP は X/Twitter を読まず、Reddit の r/SaaS をよく利用している。」
- 「価格が高いにもかかわらず、$29 より $39 のほうがコンバージョン率が30%高い。」
- 「$99 のティアを超えてアップグレードする顧客は、必ずチームシート機能を理由に挙げる。」
これらは独立したパターンです。それぞれが learnings.jsonl の1行になります。今後の /money-discover、/money-strategy、/money-content などに自動で挿入されるため、エージェントがすでに無効だと分かっていることを再提案しなくなります。
トリガー
| コマンド | 動作 |
|---|---|
/money-learn | 現在のプロジェクトの最近の学び5件を表示 |
/money-learn add | 対話形式で、現在の会話から学びを抽出 |
/money-learn add "<one-line pattern>" | 明示したテキストで学びを追加 |
/money-learn search <query> | キーワードやトピックで学びを検索 |
/money-learn list | 現在のプロジェクトの学びをすべて表示 |
/money-learn list <project> | 別のプロジェクトの学びを表示 |
/money-learn prune | 対話形式で、古い学びや矛盾する学びを確認し、置き換え済みとしてマークするか削除 |
/money-learn export | すべての学びを Markdown テーブルとして出力 |
/money-learn promote <L-id> | プロジェクト固有の学びをポートフォリオレイヤーに昇格(下記参照) |
/money-learn portfolio | すべてのプロジェクトで共有する、ポートフォリオ全体の学びを表示 |
/money-learn portfolio search <query> | ポートフォリオ全体の学びを検索 |
/money-learn portfolio demote <L-id> | ポートフォリオの学びを単一プロジェクトに戻す(状況に固有のものだと分かった場合) |
自然言語での同等表現:
- 「これを覚えておいて」「この学びを記録して」「これは残しておく価値のあるパターンです」
- 「何を学んだ?」「学びを表示して」「学びを見せて」
- 「记住这个」「存入经验」「这是一个模式」「查看经验库」
スキーマ
~/.smtm/projects/{slug}/learnings.jsonl の各行は、次の固定スキーマを持つ JSON オブジェクトです。
{
"id": "L-{4 hex chars}",
"captured_at": "ISO 8601 with timezone",
"from_skill": "name of the skill that generated this learning, or 'manual'",
"category": "one of: pricing | channel | icp | positioning | conversion | retention | ops | tech | competition | personal",
"pattern": "One sentence stating the pattern. Imperative or declarative; no hedging.",
"evidence": "Concrete evidence supporting the pattern. Specific numbers, dates, quotes preferred.",
"confidence": "validated | emerging | hypothesis",
"supersedes": "id of an older learning this replaces (or null)",
"tags": ["arbitrary", "free-form", "tags"]
}
確信度のレベル
- validated — 独立した観察が2回以上ある、または N>30 の定量的な結果が1つある状態です。これに基づいて自由に行動できます。
- emerging — 強い観察が1つあるものの、まだ再現されていない状態です。ほかのスキルは考慮しますが、確定事項として扱いません。
- hypothesis — パターンに一度気づいたものの、検証していない状態です。認識を促すためだけに提示されます。
カテゴリ(固定リスト)
pricing、channel、icp、positioning、conversion、retention、ops、tech、competition、personal
学びがどのカテゴリにも当てはまらない場合は、無理にでも当てはめてください。通常は創業者についての学びなら personal、そうでなければ ops です。新しいカテゴリの作成は避けてください。固定リストにすることで、自動読み込みロジックの予測可能性が保たれます。
ワークフロー
/money-learn add(対話モード)
5つの手順で抽出します。
- どのようなパターンですか? — 1文で記述します。ユーザーが段落で説明した場合は、断定的な1文に言い換えます。
- 根拠は何ですか? — 具体的に記述します。「顧客がXと言っている」ではなく、「5人の顧客がXと言った」とします。根拠が曖昧な場合は、確信度を
hypothesisに下げます。 - カテゴリは何ですか? — 選択肢のリストから選びます。
- 確信度はどの程度ですか? — N≥30の根拠、または2件以上の独立した観察がない限り、デフォルトは
emergingです。 - 古い学びを更新しますか? — 類似するパターンを検索して、ユーザーに尋ねます。
その後、JSON 行をディスクに書き込み、完了を確認します。追加した行を表示します。
会話からの自動抽出
ユーザーが引数なしで /money-learn を呼び出し、直近の会話に明確なパターンがある場合(例:「わあ、$29より$39のほうがずっとコンバージョン率が高い」と話した場合)、自動で抽出案を提示します。
この会話からパターンに気づきました。次の内容を記録しますか?
- パターン:「ICPでは、$39での販売は$29よりコンバージョン率が30%高い」
- 根拠:「{会話から引用した観察内容}」
- カテゴリ:pricing
- 確信度:emerging(A/Bテストでの観察が1件。再現すれば
validatedになります)保存しますか? [y/n/edit]
/money-learn search <query>
JSONLから、パターン、タグ、根拠にクエリが含まれる項目を大文字・小文字を区別せずに検索します。次の順序で並べ替えて、最大10件を返します。
- 確信度(validated > emerging > hypothesis)
- 新しさ(新しい順)
/money-learn prune(対話モード)
90日を超えた学び、または hypothesis とマークされた学びごとに、次を行います。
- 学びを表示する
- まだ有効か、より新しい内容に置き換えられたか、完全に削除するかを尋ねる
こうして、ライブラリのシグナル密度を保ちます。
ポートフォリオの学び(プロジェクト横断で共有)
複数のプロダクトを運営する個人事業者は、1つのプロダクトだけでなく、すべてのプロダクトに当てはまるパターンを発見することがあります。例:
- 「$29より$39のほうがコンバージョン率が高い」は、特定のプロダクトのICPだけに当てはまる可能性があります。プロジェクト内限定。
- 「特定の売上額を示すコールドメールの件名は、メリットを軸にした件名より4:1で成果が高い」は、すべてのコールドアウトリーチキャンペーンに当てはまります。ポートフォリオ全体。
- 「StripeのWebhookでは、基盤となるAPI呼び出しが冪等であっても、冪等性キーを必ず確認する必要がある」は、すべてのStripe連携に当てはまります。ポートフォリオ全体。
ポートフォリオ層は、2つ目のような学びを記録します。~/.smtm/portfolio/learnings.jsonl に保存され(スキーマはプロジェクト内限定のものと同じです)、プロジェクト内限定の学びが読み込まれる前に、すべてのプロジェクトのすべての money-* スキルに自動で読み込まれます。
昇格の基準
プロジェクト内限定の学びをポートフォリオに昇格するには、次の条件をすべて満たす必要があります。
- 確信度がvalidated — emerging または hypothesis は対象外です
- 再現されている — 少なくとも2つの異なるプロジェクトで観察されている(または、創業者が同じ特徴を持つ今後のプロジェクトすべてに当てはまると考えている)
- ドメイン全般に当てはまる — 戦術、チャネル、ツールの挙動、または運営者のパターンを説明しているものであり、特定のICP、価格帯、プロダクト固有の知見ではない
/money-learn promote <L-id> を実行して、プロジェクト内の学びをポートフォリオに移動します。このスキルは学びを読み上げて再確認し、本当に一般化できるかを尋ねたうえで、ポートフォリオファイルに書き込みます。元のプロジェクト内の学びは promoted_to_portfolio: true フラグを付けて残すため、後から監査する際に由来をたどれます。
読み込み順序
money-* スキルの起動時に、学習内容は次の順序で統合されます(同じパターンについては、後のソースが先のソースを上書きします)。
- Atom コーパス(読み取り専用、パッケージに同梱)
- ポートフォリオの学習内容(
~/.smtm/portfolio/learnings.jsonl) - プロジェクトの学習内容(
~/.smtm/projects/{slug}/learnings.jsonl)
プロジェクト固有の知見は、常にそのプロジェクトのポートフォリオの知見より優先されます。ただし、ポートフォリオのパターンもコンテキストとして読み込まれます。エージェントは両方を提示し、ソースを明記します。
📚 関連するパターンを6件読み込みました(ポートフォリオから4件、プロジェクト固有から2件)。主なもの:
- L-port-3a8f(ポートフォリオ、検証済み、チャネル):「具体的な売上数値を含む件名は、コールドメールキャンペーンでベネフィット訴求型の件名を4:1で上回ります」
- L-a7k2(プロジェクト、検証済み、価格設定):「当社のICPでは、$39は$29より30%高いコンバージョン率を達成します」
格下げ
学習内容が実際には特定のコンテキストに依存すると判明した場合(例:ポートフォリオの学習内容が新しいプロジェクトで再現できない場合)は、格下げします。
/money-learn portfolio demote L-port-3a8f --back-to <project-slug>
これにより、行はプロジェクト固有のファイルに戻され、ポートフォリオの自動読み込み対象から除外されます。出所情報は保持され、行には was_portfolio: true フラグが残ります。
プロモートしないケース
一般的に見えても、実際にはそうではない学習内容をプロモートしないようにしてください。
- 価格設定に関する所見:ほとんどの場合、ICP 固有です
- 「チャネル X が有効」—どのオファーに有効なのでしょうか。一般化しないようにしてください
- ツールの好み:創業者の好みであり、ポートフォリオ全体に当てはまる事実ではありません
- 一度限りの成功:1回の再現だけでは、ポートフォリオに加える価値があるとは言えません
目安:新しいプロダクトを始めるとき、その学習内容は初日から本当に当てはまるでしょうか?当てはまるなら → プロモートします。まず再検証したいなら → プロジェクト固有のままにします。
他のスキルへの自動読み込み
実質的な作業を行う他のすべての money-* スキルは、出力を生成する前に最近の学習内容を読み込む必要があります。標準パターン(各スキルの前文に追加):
## Auto-loaded learnings
Before producing output, read `~/.smtm/projects/{slug}/learnings.jsonl` and surface any
relevant rows by category. Match priority:
- For /money-discover: icp, positioning, channel, competition
- For /money-strategy: pricing, icp, channel, positioning, competition
- For /money-content: positioning, conversion, channel
- For /money-product: tech, ops, conversion
- For /money-diagnose: ALL categories (the diagnosis may surface anything)
- For /money-panel and the four reviewer skills: ALL categories
- For /money-ads: channel, conversion, pricing
- For /money-outreach: channel, icp, positioning, conversion
Filter to confidence ≥ emerging by default. Show the user which learnings influenced the output, so they can spot if any are stale.
スキルは学習内容を黙って上書きしてはなりません。短い前文として提示します。
📚 このプロジェクトの履歴から関連する学習内容を4件読み込みました。主なもの:
- L-a7k2(検証済み、価格設定):当社のICPでは、$39は$29より30%高いコンバージョン率を達成します
- L-9b14(新たな知見、チャネル):コールドアウトリーチでは、Reddit r/SaaSはXより3倍高いコンバージョン率を達成します
以下の分析では、これらを考慮します。
出力形式
/money-learn(デフォルト — 最近の項目を表示)
# Recent learnings — {project}
{N learnings shown of {total} total}
| ID | Captured | Confidence | Category | Pattern |
|---|---|---|---|---|
| L-a7k2 | 2026-04-22 | validated | pricing | $39 converts 30% better than $29 in our ICP |
| ... | | | | |
Use `/money-learn search <query>` to filter, `/money-learn add` to capture a new one, or `/money-learn prune` to clean up stale ones.
/money-learn add(記録後)
✅ Learning captured.
ID: L-{hex}
Pattern: {pattern}
Evidence: {evidence}
Category: {category}
Confidence: {confidence}
File: ~/.smtm/projects/{slug}/learnings.jsonl
This will now influence future runs of /money-discover, /money-strategy, /money-content, etc.
エッジケース
- 学習内容の矛盾 — 2つのパターンが直接矛盾することがあります(例:「チャネル X は非常に有効」と「チャネル X は使えない」)。自動的に統合しないでください。
supersedesフィールドを使用します。新しい項目が優先され、古い項目は/money-learn list --include-supersededでのみ表示されます。 - JSONL の破損 — 1行に問題があってもファイル全体の処理を中断しないでください。読み込みエラーが発生した場合は、問題のある行をログに記録して処理を続行します。
- プロジェクトの slug がない — プロジェクトディレクトリの外で実行された場合は、
defaultプロジェクトにフォールバックします。 - 空のファイル — 「
{project}の学習内容はまだありません。/money-learn addで最初の項目を追加してください。」と表示します。
原則
- 物語ではなく、原子的に — 学習内容はそれぞれ1行、1文にします。複数の段落にまたがる場合は、分割してください。
- 意見より証拠を重視 — 証拠のないパターンは推測です。
hypothesisとして記録してください。 - カテゴリ一覧は固定 — カテゴリを新設しないでください。既存の10カテゴリに無理なく当てはめてください。
- 上書きではなく、置き換えとして記録 — 古い学習内容は現在では誤りかもしれませんが、置き換えられたという事実自体がシグナルになります。
- ライブラリの健全性は重要 — ノイズが30%含まれる1,000行の学習ファイルは、シグナルが95%を占める200行のライブラリより劣ります。
価値の定量化(出力の最後に必須)
/money-learn add の後(学習内容を1件記録):
- 📝 記録済み — {category} の学習内容を1件、確信度 {confidence} で記録しました
- ⏱ 今後の各スキル実行で節約できる時間 — パターンを再説明する時間を約30秒節約でき、すでに却下した案をスキルが提案することを恒久的に防止します
- ⚠️ 回避できたリスク — 学習内容を記録しなければ、エージェントはセッションをまたいで記憶を保持できません。別途伝えない限り、不適切な価格設定、チャネル、ICPを再提案します
- 🔁 自動読み込み元 — 次回の実行時に、すべての主要な money-* スキルが自動読み込みします(関連カテゴリで絞り込み)
/money-learn の後(最近の学習内容を表示)、または /money-learn search の後(検索):
- 📚 表示済み — 全 {total} 件のうち、条件に一致する学習内容を {N} 件表示しました
- ⏱ 節約できた時間 — 過去の会話記録を探す時間を約5~15分節約できます
- ✅ 得られる内容 — 現在の質問に関連する、検証済みの具体的なパターンと根拠の引用