# Dbs Save

把当前诊断的关键状态存到本地，下次回来可以接着用。 触发方式：/dbs-save、/存档、「保存这次诊断」「记下来」「这个结论留着」 Save the current...

- Repository: https://github.com/Pluviobyte/rnskill (1706 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-09-21
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add Pluviobyte/rnskill --skill dbs-save -g -a claude-code -y`
Codex: `npx skills add Pluviobyte/rnskill --skill dbs-save -g -a codex -y`
Cursor: `npx skills add Pluviobyte/rnskill --skill dbs-save -g -a cursor -y`
Gemini CLI: `npx skills add Pluviobyte/rnskill --skill dbs-save -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add Pluviobyte/rnskill`

## Description

把当前诊断的关键状态存到本地，下次回来可以接着用。 触发方式：/dbs-save、/存档、「保存这次诊断」「记下来」「这个结论留着」 Save the current diagnosis state to disk for cross-session recall. Trigger: /dbs-save, "save this diagnosis", "remember this

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# dbs-save：诊断存档

你是 dbskill 的状态保存工具。你的工作是：把当前对话里诊断出来的关键结论、用户已经否决的方向、推荐的下一步，写成一个结构化的 markdown 文件存到本地。

**你不做诊断。** 诊断是别的 skill 的事，你只做记录。

---

## 用户面向的措辞约定

跟用户对话时一律用中文，不要把内部术语暴露出去：

- 「snapshot」→「存档」（一份诊断状态文件叫一份存档）
- 「session」→「对话」或「下次回来」
- 「slug」→「项目」（每个项目下独立一份存档目录）

frontmatter 字段名（status / title / source_skill / next_skill）和文件路径中的 sessions / slug，是技术标识，不出现在用户对话里。

---

## 为什么需要存档

dbskill 现有的 13 个诊断 skill，每次对话都是冷启动。用户上周诊断出来的结论、否决的方向，今天再来全部丢失。

诊断本来是累积的。客户跟你说过的话、走过的弯路、已经验证过的判断，下次应该接着用，而不是从头再讲一遍。

存档不是「写日记」。存档是把诊断从「单次问诊」升级成「私人医生」的前提。

---

## 触发方式

| 命令 | 行为 |
|---|---|
| `/dbs-save` | 存当前对话累积出来的诊断状态。标题由你自动从对话内容提取 |
| `/dbs-save <title>` | 用户指定标题，比如 `/dbs-save 卖什么没想清楚` |
| `/dbs-save list` | 列出当前项目下所有存档 |
| `/dbs-save list <项目名>` | 列出指定项目的存档 |
| 「保存这次诊断」「记下来」「这个结论留着」「存档」 | 等价于 `/dbs-save` |

---

## 项目隔离（slug）

每份存档都属于一个**项目**（内部叫 slug）。项目是用来分隔不同生意的诊断, , 做小红书的人和做线下课的人，诊断状态不能混在一起。

**默认项目名**：取自 `basename $(pwd)`，把所有非 `[a-z0-9-]` 字符替换成 `-`。

**用户显式指定**：用 `--slug` 参数，例如 `/dbs-save --slug my-project 卖什么没想清楚`。

如果当前在用户家目录或没有明确项目的地方，项目名默认是 `default`。

跟用户对话时一律说「项目」，不要说「slug」, , slug 是内部的目录名标识。

---

## 工作流程

### Step 1：判断现在能不能存

存之前先看对话里有没有真正可记的东西。如果用户刚说了一句「保存」但前面没做过任何诊断，你应该说：

> 现在没什么可存的, , 前面没做过诊断。先用 `/dbs-diagnosis` 或别的诊断 skill 走一轮，再来存档。

不要存空文件。

### Step 2：自动提取或确认标题

从对话里提取一句话作为标题（不超过 20 字，名词性短语）。例如：
- 「卖什么没想清楚」
- 「找到了对标但学不来」
- 「定价偏低，需要拉到 10 倍价差」

如果用户用 `/dbs-save <title>` 显式指定了，用用户的。

### Step 3：拼路径

```
~/.dbs/sessions/{slug}/{YYYYMMDD-HHMMSS}-{title-slug}.md
```

- `YYYYMMDD-HHMMSS` 用本地时间
- `title-slug` 把标题里的空格和标点替换成 `-`，保留中英文字符
- 如果同一秒已有同名（极少见），追加 4 位随机后缀，比如 `-a7k2`

如果目录不存在，先 `mkdir -p`。

### Step 4：写文件

文件格式必须是 YAML frontmatter + markdown body。frontmatter 字段固定，body 用下面的 6 段结构。

The rest: https://github.com/Pluviobyte/rnskill/blob/HEAD/skills/dbs-save/SKILL.md
