money-save

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

/money-save — Business State Checkpoint

/money-save — 业务状态检查点

Your job is to take the conclusions reached in the current conversation and write them to disk in a structured, recoverable format. Future sessions can
/money-restore
to pick up exactly where this one left off.
You do not run diagnoses. You do not give business advice. You only persist state.

你的任务是将当前对话中得出的结论以结构化、可恢复的格式写入磁盘。未来的会话可以通过
/money-restore
精确地从中断处继续。
你不运行诊断。你不提供商业建议。你只持久化状态。

Why this exists

为什么存在

Show Me The Money's pipeline is supposed to operate like a private business operator that knows your context. But every new Claude Code conversation is a cold start — last week's
/money-discover
conclusions, the pivots you ruled out, the hypotheses you're still testing — all gone.
Saving turns a one-shot tool into a continuous operator. The state you write here is the only thing that lets the next conversation skip the re-onboarding ritual and continue real work.

Show Me The Money 的流程本应像一个了解你上下文的私人业务运营者。但每次新的 Claude Code 对话都是一次冷启动——上周的
/money-discover
结论、你排除的转向方向、你还在验证的假设——全部消失。
保存功能将一个一次性工具转变为持续性运营者。你在这里写入的状态是让下一次对话跳过重新上手的仪式并继续真正工作的唯一手段。

Triggers

触发方式

CommandBehavior
/money-save
Save what's been decided in the current conversation. Title auto-extracted.
/money-save <title>
Save with an explicit title, e.g.
/money-save pricing locked at $29
/money-save list
List all snapshots for the current project
/money-save list <project>
List snapshots for a specific project
/money-save --slug <project>
Save under a non-default project name
Natural-language equivalents (any of these → run
/money-save
):
  • English: "save this", "checkpoint this", "remember this", "lock it in", "snapshot before we continue"
  • 中文: "保存", "存档", "记下来", "这个结论留着", "存一份"

命令行为
/money-save
保存当前对话中已决定的内容。标题自动提取。
/money-save <title>
使用明确的标题保存,例如
/money-save pricing locked at $29
/money-save list
列出当前项目的所有快照
/money-save list <project>
列出特定项目的快照
/money-save --slug <project>
使用非默认项目名称保存
自然语言等价触发词(以下任一 → 运行
/money-save
):
  • 英文:"save this", "checkpoint this", "remember this", "lock it in", "snapshot before we continue"
  • 中文:"保存", "存档", "记下来", "这个结论留着", "存一份"

Project isolation

项目隔离

Every snapshot belongs to a project. A project separates one business from another — what you decide for
MusicAPI
should never bleed into
KolFind
's diagnosis history.
Default project name:
basename($(pwd))
with non-
[a-z0-9-]
characters replaced by
-
. If the user runs
/money-save
from
~/Dev/musicapi
, the project becomes
musicapi
.
Explicit override:
--slug my-project
.
Fallback: if you're in
$HOME
or somewhere generic, the project is
default
.
In conversation, refer to it as business or project — never "slug" (that's the internal identifier).

每个快照都属于一个项目。一个项目将不同业务区分开——你为
MusicAPI
做的决策绝不应混入
KolFind
的诊断历史。
默认项目名:
basename($(pwd))
并将非
[a-z0-9-]
字符替换为
-
。如果用户从
~/Dev/musicapi
运行
/money-save
,项目即为
musicapi
。
显式覆盖:
--slug my-project
。
回退:如果你在
$HOME
或其他通用目录中,项目为
default
。
在对话中,称之为业务或项目——永远不要叫“slug”(那是内部标识符)。

Workflow

工作流程

Step 1 — Decide if there's anything worth saving

第 1 步——判断是否有值得保存的内容

Before writing anything, scan the conversation for actual decisions. A snapshot is not a journal entry — it's a record of judgments the user has confirmed.
Worth saving if the conversation contains any of:
  • A pricing decision the user accepted
  • An idea or pivot the user explicitly ruled out
  • A hypothesis the user wants to test next sprint
  • A clear "next-skill" handoff (e.g., "do
    /money-product
    next")
  • A diagnosis root cause the user agreed with
If nothing of substance happened, refuse cleanly:
Nothing to save yet — no decisions confirmed in this conversation. Run
/money-discover
,
/money-strategy
, or another diagnostic skill first, then come back.
Never write empty or filler snapshots.
在写入任何内容之前,扫描对话以寻找实际决策。快照不是日记条目——它是用户已确认的判断的记录。
如果对话包含以下任何一项,则值得保存:
  • 用户接受的定价决策
  • 用户明确排除的想法或转向方向
  • 用户希望在下个迭代周期验证的假设
  • 明确的“下一个 skill”交接(例如“接下来做
    /money-product
    ”)
  • 用户同意的诊断根因
如果没有任何实质性内容,礼貌地拒绝:
还没有可保存的内容——本次对话中未确认任何决策。请先运行
/money-discover
、
/money-strategy
或其他诊断 skill,然后再回来。
永远不要写入空白或填充性的快照。

Step 2 — Extract or confirm a title

第 2 步——提取或确认标题

Pull a noun-phrase title from the conversation, ≤ 24 characters. Examples:
  • pricing locked at $29
  • ruled out enterprise pivot
  • MVP scope frozen
  • 首单获客渠道是 [niche forum]
  • 定价从 $9 拉到 $29
If the user gave an explicit title via
/money-save <title>
, use theirs verbatim.
从对话中提炼一个名词短语标题,≤ 24 个字符。示例:
  • pricing locked at $29
  • ruled out enterprise pivot
  • MVP scope frozen
  • 首单获客渠道是 [niche forum]
  • 定价从 $9 拉到 $29
如果用户通过
/money-save <title>
给出了明确标题,则原样使用他们的标题。

Step 3 — Build the path

第 3 步——构建路径

~/.smtm/sessions/{project}/{YYYYMMDD-HHMMSS}-{title-slug}.md
  • Timestamp: local time, format
    20260503-141522
  • title-slug: lowercase, spaces →
    -
    , punctuation stripped, CJK characters preserved
  • If a same-second collision somehow occurs, append a 4-char random suffix:
    -a7k2
mkdir -p
the directory first if it doesn't exist.
~/.smtm/sessions/{project}/{YYYYMMDD-HHMMSS}-{title-slug}.md
  • 时间戳:本地时间,格式
    20260503-141522
  • title-slug:小写,空格 →
    -
    ,去除标点,保留中日韩文字
  • 如果发生同秒冲突,追加 4 字符随机后缀:
    -a7k2
如果目录不存在,先运行
mkdir -p
创建目录。

Step 4 — Write the snapshot

第 4 步——写入快照

YAML frontmatter + markdown body. Both fixed-format. Other skills will parse this — do not improvise the schema.
yaml
---
slug: {project}
timestamp: {ISO 8601 with timezone, e.g. 2026-05-03T14:23:15+08:00 — generate via `python3 -c "from datetime import datetime; print(datetime.now().astimezone().isoformat(timespec='seconds'))"` or equivalent. Never use the basic-format variant 20260503T142315+0800.}
title: {the title verbatim}
source_skill: {which money-* skill produced the bulk of the conclusions in this session, e.g. money-discover. If multiple, comma-separated.}
status: {in-progress | resolved | abandoned}
next_skill: {recommended next skill name, or empty if not yet decided}
---
YAML frontmatter + markdown 正文。两者均为固定格式。其他 skill 将解析此文件——不要随意修改 schema。
yaml
---
slug: {project}
timestamp: {ISO 8601 with timezone, e.g. 2026-05-03T14:23:15+08:00 — generate via `python3 -c "from datetime import datetime; print(datetime.now().astimezone().isoformat(timespec='seconds'))"` or equivalent. Never use the basic-format variant 20260503T142315+0800.}
title: {the title verbatim}
source_skill: {which money-* skill produced the bulk of the conclusions in this session, e.g. money-discover. If multiple, comma-separated.}
status: {in-progress | resolved | abandoned}
next_skill: {recommended next skill name, or empty if not yet decided}
---

Business state

Business state

{One paragraph. What is the current state of this business? What brought the user to /money this conversation? Use the user's own framing where possible; do not abstract into generic strategy-speak.}
{One paragraph. What is the current state of this business? What brought the user to /money this conversation? Use the user's own framing where possible; do not abstract into generic strategy-speak.}

Confirmed conclusions

Confirmed conclusions

  • {Conclusion 1, one line. Includes pricing decisions, validated hypotheses, accepted root causes.}
  • {Conclusion 2}
  • ...
If a conclusion was reached in this conversation specifically (not inherited), prefix with
(new) 
. If it was reaffirming a prior snapshot's conclusion, prefix with
(reaffirmed) 
.
  • {Conclusion 1, one line. Includes pricing decisions, validated hypotheses, accepted root causes.}
  • {Conclusion 2}
  • ...
If a conclusion was reached in this conversation specifically (not inherited), prefix with
(new) 
. If it was reaffirming a prior snapshot's conclusion, prefix with
(reaffirmed) 
.

Ruled out

Ruled out

  • {Direction the user explicitly decided NOT to pursue, with one-line reason.}
  • {e.g. "Won't pivot to enterprise — sales cycle too long for solo founder."}
  • {If empty, write
    (none yet)
    .}
  • {Direction the user explicitly decided NOT to pursue, with one-line reason.}
  • {e.g. "Won't pivot to enterprise — sales cycle too long for solo founder."}
  • {If empty, write
    (none yet)
    .}

Open hypotheses

Open hypotheses

  • {Assumption that needs validation in the next sprint, with how it'll be tested.}
  • {e.g. "Hypothesis: niche-forum traffic will convert at >2%. Test: 5 posts over 2 weeks, track signups via UTM."}
  • {If empty, write
    (none yet)
    .}
  • {Assumption that needs validation in the next sprint, with how it'll be tested.}
  • {e.g. "Hypothesis: niche-forum traffic will convert at >2%. Test: 5 posts over 2 weeks, track signups via UTM."}
  • {If empty, write
    (none yet)
    .}

Next move

Next move

{One paragraph or a bullet. Which skill picks up from here? What action does the user take first?}
E.g. "Next: /money-product to build the landing page. First action: register the domain musicapi.ai."
{One paragraph or a bullet. Which skill picks up from here? What action does the user take first?}
E.g. "Next: /money-product to build the landing page. First action: register the domain musicapi.ai."

Notes

Notes

{Anything else worth preserving — links, doc paths, edge-case considerations. Optional. If empty, write
(none)
.}
undefined
{Anything else worth preserving — links, doc paths, edge-case considerations. Optional. If empty, write
(none)
.}
undefined

Step 5 — Confirm to the user

第 5 步——向用户确认

Print a short confirmation in the user's chosen language:
✅ Saved as
<title>
under project
<project>
. File:
~/.smtm/sessions/<project>/<filename>.md
Resume next time with
/money-restore
from this directory.

使用用户选择的语言打印一个简短确认:
✅ 已保存为
<title>
,项目
<project>
。 文件:
~/.smtm/sessions/<project>/<filename>.md
下次可从该目录使用
/money-restore
继续。

List mode

列表模式

/money-save list
and
/money-save list <project>
enumerate snapshots:
musicapi (5 snapshots):
  1. 2026-05-03 14:23  pricing locked at $29  (resolved, from money-strategy)
  2. 2026-04-22 09:11  ruled out enterprise pivot  (resolved, from money-diagnose)
  3. 2026-04-15 16:40  MVP scope frozen  (in-progress, from money-product)
  ...
Sort by filename timestamp, newest first.

/money-save list
和
/money-save list <project>
枚举快照:
musicapi (5 snapshots):
  1. 2026-05-03 14:23  pricing locked at $29  (resolved, from money-strategy)
  2. 2026-04-22 09:11  ruled out enterprise pivot  (resolved, from money-diagnose)
  3. 2026-04-15 16:40  MVP scope frozen  (in-progress, from money-product)
  ...
按文件名时间戳排序,最新的在前。

Edge cases

边界情况

  • No decisions yet → Refuse cleanly per Step 1. Do not invent content.
  • Same project, same second → Append 4-char random suffix.
  • iCloud-synced sessions directory → Do not rely on file
    mtime
    ; sort exclusively by the
    YYYYMMDD-HHMMSS
    prefix in the filename.
  • User runs
    /money-save
    from a freshly-cloned repo with no decisions
    → Same as "no decisions yet" — refuse.
  • User-facing language — match the user's chosen language (English or 中文). Map internal field names (slug, source_skill, next_skill) to user-friendly terms in conversation:
    slug → 项目/business
    ,
    source_skill → from
    ,
    next_skill → next
    .

  • 尚无决策 → 按第 1 步礼貌拒绝。不要虚构内容。
  • 同一项目、同一秒 → 追加 4 字符随机后缀。
  • iCloud 同步的 sessions 目录 → 不要依赖文件
    mtime
    ;仅按文件名中的
    YYYYMMDD-HHMMSS
    前缀排序。
  • 用户在刚克隆的仓库中运行
    /money-save
    且没有决策
    → 与“尚无决策”相同——拒绝。
  • 面向用户的语言 — 匹配用户选择的语言(英文或中文)。在对话中将内部字段名(slug、source_skill、next_skill)映射为用户友好的术语:
    slug → 项目/business
    ,
    source_skill → from
    ,
    next_skill → next
    。

Principles

原则

  • State, not narrative — Snapshots are checkpoints, not journals. Bullet > paragraph.
  • User's words, not yours — Quote the user's framing where possible. Do not paraphrase decisions into corporate-speak.
  • Append-only — Never overwrite an existing snapshot. Every save is a new file.
  • Cheap to write, expensive to lose — Err on the side of saving when there is genuine substance. But never save filler.

  • 状态而非叙述 — 快照是检查点,不是日记。要点列表优于段落。
  • 用用户的话,而不是你的话 — 尽可能引用用户的表述。不要将决策转译成“企业套话”。
  • 只追加 — 永远不要覆盖已有快照。每次保存都是一个新文件。
  • 写入成本低,丢失代价高 — 只要有真正实质内容,宁可保存。但绝不保存填充内容。

Value Quantification (Required After Each Successful Save)

价值量化(每次成功保存后必做)

After confirming the snapshot was written, append:
markdown
---
确认快照写入后,追加:
markdown
---

📊 What this checkpoint is worth

📊 What this checkpoint is worth

  • 💾 Captured — {N confirmed conclusions, M ruled-out directions, K open hypotheses}
  • ⏱ Saves you next time — ~15-30 minutes of re-onboarding and re-explaining context to the AI
  • ⚠️ Risk avoided — Re-deciding something you already decided — the most common solo-founder leak. The AI doesn't remember between sessions unless you save
  • 🔁 Resume with —
    /money-restore
    from this directory in any future Claude Code session

Use the actual counts from the snapshot. If only 1 conclusion was captured, the value is real but smaller — show it honestly. Never inflate.

If the user has saved ≥3 snapshots in this project, append a second line:

> 💡 You now have {N} snapshots in `{project}`. Run `/money-report` if you want a single deliverable merging them — useful for sharing with co-founders or for your own multi-month review.
  • 💾 Captured — {N confirmed conclusions, M ruled-out directions, K open hypotheses}
  • ⏱ Saves you next time — ~15-30 minutes of re-onboarding and re-explaining context to the AI
  • ⚠️ Risk avoided — Re-deciding something you already decided — the most common solo-founder leak. The AI doesn't remember between sessions unless you save
  • 🔁 Resume with —
    /money-restore
    from this directory in any future Claude Code session

使用快照中的实际计数。如果只捕获了 1 个结论,价值是真实但更小的——诚实展示。绝不夸大。

如果用户在此项目中已保存 ≥3 个快照,追加第二行:

> 💡 你现在在 `{project}` 中有 {N} 个快照。如果你想要一个合并它们的单一交付物,运行 `/money-report` —— 对与联合创始人分享或你自己的数月回顾很有用。