From money-upgrade
Manages atomic project learnings in learnings.jsonl: add validated patterns via /money-learn add or phrases like 'remember this', list/search/prune them. Auto-loaded into other money-* skills across sessions.
npx claudepluginhub iamzifei/show-me-the-money --plugin money-upgradeThis skill uses the workspace's default tool permissions.
Your job is to maintain a project's `learnings.jsonl` — a JSONL file of validated patterns that other skills auto-load when they run. Each learning is one row, atomic, citable, and worth remembering across all future sessions.
Applies Acme Corporation brand guidelines including colors, fonts, layouts, and messaging to generated PowerPoint, Excel, and PDF documents.
Builds DCF models with sensitivity analysis, Monte Carlo simulations, and scenario planning for investment valuation and risk assessment.
Calculates profitability (ROE, margins), liquidity (current ratio), leverage, efficiency, and valuation (P/E, EV/EBITDA) ratios from financial statements in CSV, JSON, text, or Excel for investment analysis.
Share bugs, ideas, or general feedback.
Your job is to maintain a project's learnings.jsonl — a JSONL file of validated patterns that other skills auto-load when they run. Each learning is one row, atomic, citable, and worth remembering across all future sessions.
Learnings are NOT snapshots. A snapshot captures full session state. A learning is a single, durable insight that should influence future thinking even when no specific snapshot is being restored.
/money-save | /money-learn | |
|---|---|---|
| Granularity | Full session state | One pattern per row |
| Frequency | After a major decision | Whenever a pattern is observed |
| Auto-loaded? | Only when /money-restore is called | Yes — every money-* skill loads recent learnings |
| Mutability | Append-only snapshots | Add, search, prune, supersede |
| Use case | "Resume from this state" | "Remember this pattern always" |
A founder discovers things like:
These are atomic patterns. Each gets one row in learnings.jsonl. They're auto-injected into every future /money-discover, /money-strategy, /money-content, etc., so the agent stops re-suggesting things you've already invalidated.
| Command | Behavior |
|---|---|
/money-learn | Show recent 5 learnings for current project |
/money-learn add | Interactive: extract a learning from current conversation |
/money-learn add "<one-line pattern>" | Add a learning with explicit text |
/money-learn search <query> | Search learnings by keyword/topic |
/money-learn list | List all learnings for current project |
/money-learn list <project> | List learnings for another project |
/money-learn prune | Interactive: review old/contradicted learnings, mark as superseded or remove |
/money-learn export | Output all learnings as a markdown table |
Natural-language equivalents:
Each line in ~/.smtm/projects/{slug}/learnings.jsonl is one JSON object with this fixed schema:
{
"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"]
}
pricing, channel, icp, positioning, conversion, retention, ops, tech, competition, personal
If a learning doesn't fit any category, force a fit — usually it's personal (about the founder) or ops. Avoid creating new categories; the closed list keeps the auto-load logic predictable.
/money-learn add (interactive mode)Walk through a 5-step extraction:
hypothesis.emerging unless evidence is N≥30 or 2+ independent observations.Then write the JSON line to disk and confirm. Print the row that was added.
If the user invokes /money-learn without arguments and there's a clear pattern in the recent conversation (e.g., they just said "wow, the $39 price converts way better than $29"), auto-propose the extraction:
I noticed a pattern in this conversation. Want to log:
- Pattern: "Pricing at $39 converts 30% better than $29 in our ICP"
- Evidence: "{quoted observation from conversation}"
- Category: pricing
- Confidence: emerging (one A/B observation; would be
validatedafter replication)Save? [y/n/edit]
/money-learn search <query>Grep the JSONL for pattern + tags + evidence containing the query (case-insensitive). Return up to 10 matches sorted by:
/money-learn prune (interactive)For each learning older than 90 days OR marked hypothesis:
This is how the library stays signal-dense.
Every other money-* skill that does substantive work should load recent learnings before generating output. The standard pattern (added to those skills' preambles):
## 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.
The skills should not silently override learnings — they surface them in a small preamble:
📚 Loaded 4 relevant learnings from this project's history. Notably:
- L-a7k2 (validated, pricing): $39 converts 30% better than $29 in our ICP
- L-9b14 (emerging, channel): Reddit r/SaaS converts 3x better than X for cold outreach
These will inform the analysis below.
/money-learn (default — show recent)# 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 (after capture)✅ 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.
supersedes field. The newer one wins; the older one is shown only on /money-learn list --include-superseded.default project.{project}. Add the first one with /money-learn add."hypothesis.After /money-learn add (capturing one learning):
| 📝 Captured | 1 {category} learning at {confidence} confidence |
| ⏱ Saves you each future skill run | ~30 seconds of re-explaining a pattern + permanent prevention of skill suggesting something you already ruled out |
| ⚠️ Risk avoided | The agent has no memory across sessions without learnings — it will re-suggest the wrong pricing, wrong channel, wrong ICP unless told otherwise |
| 🔁 Auto-loaded by | All major money-* skills on next invocation (filtered by relevant category) |
After /money-learn (showing recent) or /money-learn search (querying):
| 📚 Surfaced | {N} matching learnings from {total} total |
| ⏱ Time saved | ~5-15 minutes of digging through old conversation transcripts |
| ✅ What you got | The exact validated patterns relevant to your current question, with evidence citations |