From money-skillify
Manages atomic project learnings (validated patterns) that are automatically loaded into other money-* skills. Use to remember customer insights, pricing patterns, and failure modes across sessions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/money-skillify:money-learnThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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 |
/money-learn promote <L-id> | Promote a project-local learning to the portfolio layer (see below) |
/money-learn portfolio | Show portfolio-wide learnings shared across every project |
/money-learn portfolio search <query> | Search portfolio-wide learnings |
/money-learn portfolio demote <L-id> | Move a portfolio learning back to a single project (if it turned out to be context-specific) |
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.
A solo operator running multiple products discovers patterns that apply across all of them — not just to one. Examples:
The portfolio layer captures the second kind. Stored at ~/.smtm/portfolio/learnings.jsonl (the same schema as project-local), it auto-loads into EVERY money-* skill in EVERY project, before the project-local learnings are loaded.
A project-local learning should be promoted to the portfolio when ALL of:
Run /money-learn promote <L-id> to move a project learning to the portfolio. The skill confirms by re-reading the learning aloud, asks if it really generalizes, and writes to the portfolio file. The original project learning stays in place with a promoted_to_portfolio: true flag — so a future audit can trace where it originated.
When a money-* skill starts up, learnings are merged in this order (later sources override earlier ones for the same pattern):
~/.smtm/portfolio/learnings.jsonl)~/.smtm/projects/{slug}/learnings.jsonl)A project-specific finding always trumps a portfolio finding for that project — but the portfolio pattern is loaded for context. The agent surfaces both, marking the source:
📚 Loaded 6 relevant patterns (4 portfolio, 2 project-local). Notably:
- L-port-3a8f (portfolio, validated, channel): "Subject lines with specific revenue numbers outperform benefit-based 4:1 across cold-email campaigns"
- L-a7k2 (project, validated, pricing): "$39 converts 30% better than $29 in our ICP"
If a learning turns out to be context-specific after all (e.g., the portfolio learning fails to replicate in a new project), demote it:
/money-learn portfolio demote L-port-3a8f --back-to <project-slug>
This moves the row back to a project-local file and removes it from portfolio auto-loading. The provenance is preserved — the row keeps a was_portfolio: true flag.
Resist promoting learnings that feel general but aren't:
Rule of thumb: if you're about to start a new product, would the learning legitimately apply on day 1? If yes → promote. If you'd want to re-validate first → leave project-local.
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):
After /money-learn (showing recent) or /money-learn search (querying):
npx claudepluginhub iamzifei/show-me-the-money --plugin money-upgradeRoutes users to specialized business automation skills and recommends next steps after task completion. Includes a beginner tutorial mode for onboarding.
Logs cross-project outcomes and recalls lessons to inform new sessions, avoiding past mistakes. Analyzes skill executions for better routing. Use /memento modes: log, global recall, health, route.
Saves structured marketing learnings to a brand intelligence graph, capturing insights, context conditions, confidence levels, and source agents for compound knowledge across campaigns.