mcpField
M
money-restore

money-restore

github.com/iamzifeiエージェントワークフロー1.1k46 回インストール8 週間前に更新
リポジトリ

money-restore について

money-restore は、保存済みの事業状態スナップショットを読み込み、以前の作業を再開できるエージェントスキルです。診断は行わず、次のスキルも自動実行せずにコンテキストだけを復元します。

主な機能

  1. 01プロジェクトの最新スナップショットを読み込み
  2. 02番号またはプロジェクト slug で選択
  3. 03利用可能なスナップショットを一覧表示
  4. 04保存状態を解析して要約
  5. 05古いスナップショットや放棄済み状態を表示

活用シーン

  1. 01前回の結論を踏まえて作業を再開
  2. 02プロジェクト履歴から古い状態を確認
  3. 03別プロジェクトに切り替えて状態を復元

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/iamzifei/show-me-the-money --skill money-restore

インストール後、Claude Code で/money-restoreを入力して読み込まれたか確認します。

詳細

/money-restore — 中断したところから再開

あなたの役割は、~/.smtm/sessions/{project}/ から最新のビジネス状態スナップショットを読み込み、解析して、ユーザーが中断したところから再開できるように状態を提示することです。

診断は行いません。他のスキルに移ることもありません。記憶を復元するだけです。

復元後、次に使うスキルを提案します。ただし、実行するかどうかはユーザーに判断してもらいます。


トリガー

コマンド動作
/money-restore現在のプロジェクトの最新スナップショットを読み込みます
/money-restore <N>N 番目のスナップショットを読み込みます(/money-save list のインデックスを使用)
/money-restore list/money-save list と同じ — すべてのスナップショットを一覧表示します
/money-restore --slug <project>別のプロジェクトの履歴に切り替えます

自然言語での表現(以下のいずれか → /money-restore を実行):

  • 英語:「continue from last time」、「where did we leave off」、「pick up from before」、「resume the diagnosis」、「what did we conclude last time」
  • 中文:「接着上次」、「续上」、「之前的结论」、「上次诊断到哪了」、「上次说到哪」

プロジェクトの特定

/money-save と同じルールです:

  • デフォルト = basename($(pwd)) をサニタイズしたもの
  • 上書き = --slug <name>
  • フォールバック = default

会話では ビジネス または プロジェクト と呼んでください。


ワークフロー

ステップ 1 — スナップショットファイルを特定する

次の順に処理します:

  1. ユーザーが <N> を指定した場合 → 現在のプロジェクトのスナップショットを一覧表示し、ファイル名のタイムスタンプで古い順から新しい順に並べて、N 番目を返します。
  2. ユーザーが --slug X を指定した場合 → X をプロジェクト名として使用します。
  3. それ以外の場合 → デフォルトのプロジェクトを使用し、~/.smtm/sessions/{project}/ 内でファイル名のタイムスタンプが最も新しいファイルを探します。

必ず YYYYMMDD-HHMMSS のファイル名プレフィックスでソートしてください。ファイルの mtime ではソートしないでください。 iCloud、Dropbox、git を介してセッションが同期される場合、mtime は信頼できません。

ステップ 2 — データがない場合も適切に対応する

ケース A:プロジェクトディレクトリが空、または存在しない

~/.smtm/sessions/ 自体が存在するか、また、その中に他のプロジェクトがあるかを確認します。

スナップショットがある他のプロジェクトが存在する場合は、最近アクティブだった上位 3 件を一覧表示します:

No saved state for project `{project}`. You've been active in these other projects recently:

1. musicapi             (latest 2026-04-22)
2. kolfind              (latest 2026-04-15)
3. adwhiz               (latest 2026-03-30)

Run `/money-restore --slug <name>` to load a specific project's state.

~/.smtm/sessions/ 自体が存在しない場合:

No saved state yet. Run /money-discover, /money-strategy, or any diagnostic skill, then `/money-save` to lock in the conclusion. Next time you can `/money-restore` to continue.

ケース B:一覧表示モード

/money-save list のロジックに引き継ぎます。出力形式は同一です。

ステップ 3 — 読み込みと解析

スナップショットファイルを開き、YAML フロントマターと 6 つの Markdown セクション(Business state、Confirmed conclusions、Ruled out、Open hypotheses、Next move、Notes)を解析します。

ファイルの形式が不完全な場合(フロントマターの不備、セクションの欠落 — ユーザーが手動で編集した可能性があります)、有効なフィールドだけを提示します。形式が不完全だからといって読み込みを拒否しないでください。

ステップ 4 — 状態を提示する

ユーザーが選択した言語で、簡潔な要約を出力します。ファイル全体をそのまま表示するのではなく、重要な点を抜き出して、必要に応じてユーザーが詳細を尋ねられるようにします。

形式:

## Picking up where you left off

**Project**: {project}
**When**: {timestamp formatted as `2026-05-03 14:23`}
**Title**: {title from frontmatter}
**Status**: {status — translate to user-friendly form: in-progress / resolved / abandoned → 进行中 / 已结论 / 已放弃 if Chinese}
**Last from**: {source_skill}

---

### Where you were

{Business state paragraph, verbatim from the snapshot}

### What you'd already decided
- {Each confirmed conclusion}

### What you'd ruled out
- {Each ruled-out direction}
- ({if empty, write "(nothing ruled out yet)")}

### Open hypotheses to test
- {Each open hypothesis}
- ({if empty, write "(none yet)")}

### Next move you'd planned
{Next move paragraph}

---

**Recommendation**: Continue with `{next_skill}` — that was the planned next step.

If you want to revise direction first, type a new `/money-*` command.
ステップ 5 — ユーザーの指示を待つ

状態を提示したら、そこで停止します。next_skill を自動で呼び出さないでください。

新しい会話でのユーザーの意図が変わっている可能性があります。ユーザーに確認や変更を促してください:

  • 「はい、<next_skill> で続けて」→ 呼び出します
  • 「やっぱり <other-skill> に切り替えたい」→ 代わりにそちらを呼び出します
  • 「記憶を呼び戻したいだけです。後で決めます」→ 問題ありません。それ以上は何もしません

例外的なケース

  • 現在のプロジェクトに複数のスナップショットがある — デフォルトでは最新のものを使用します。ユーザーが古いスナップショットを希望する場合は、/money-save list でインデックスを確認してから /money-restore <N> を使うよう案内します。
  • スナップショットのステータスが abandoned — 目立つように提示します。ユーザーがもう追求しないと決めた可能性があるため、注意を促してください。
  • スナップショットが 90 日以上前のもの — 次のメッセージを使って注意を促します:「⚠️ このスナップショットは {N days ago} のものです。内容に基づいて行動する前に、結論が現在も当てはまるか確認してください。」
  • 過去のスナップショット間で決定事項に矛盾がある — 最新のものだけを表示します。ユーザーが全履歴を統合したい場合は、/money-report を使用します。

原則

  • 復元し、置き換えない — 以前の状態を提示し、何がまだ有効かはユーザーに判断してもらいます。
  • 時間を考慮する — 古いスナップショットは古くなっている可能性があります。日付を目立つように表示します。
  • 勝手に次へ進まない — next_skill を自動的に呼び出してはいけません。ユーザーは新しい会話を開いたばかりで、新たな予定があるかもしれません。
  • ユーザーの言語に合わせる — スナップショットが中国語で保存されていても、ユーザーが現在英語を使っているなら英語で提示します。ただし、ニュアンスを保つため、元の言語の内容はそのまま引用します。

価値の定量化(復元に成功した後、必須)

以前の状態と次のステップの推奨を提示した後、以下を追加します。

---

### 📊 What this restore is worth

- 📦 **Restored** — {N conclusions, M ruled-out directions, K open hypotheses from {date}}
- ⏱ **Saved this session** — ~15-30 minutes of re-explaining context to the AI
- ⚠️ **Risk avoided** — Re-suggesting a direction you already ruled out (the AI has no memory across sessions without `/money-save` and `/money-restore`)
- ⏭ **Suggested next** — {next_skill from frontmatter, or "decide based on the state above"}

スナップショットが90日を超えて古い場合は、警告行を前に追加します。

⚠️ 古くなっています:このスナップショットは{N days}前のものです。これに基づいて行動する前に、結論が今も有効か確認してください。

スナップショットのステータスがabandonedの場合は、次を前に追加します。

⚠️ 放棄済み:このスナップショットは放棄済みとしてマークされています。確認のために復元することは問題ありませんが、ここに記載された結論は検証されたのではなく、却下されたものです。

コメント