# Knowledge Preserve

> 从当前对话中提取知识到用户指定的知识库。仅在用户显式要求保存知识、沉淀经验、更新 wiki、capture knowledge、preserve knowledge 时使用。

- Skill: `yaomeng1749/knowledge-preserve` (Agent Skill)
- Install (CLI): `npx skillmds@latest add yaomeng1749/knowledge-preserve`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yaomeng1749/knowledge-preserve/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Yaomeng1749 (https://skillmd.com/u/yaomeng1749)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/yaomeng1749/knowledge-preserve

---


# Knowledge Preserve

> 仅在用户显式要求保存知识时使用。不要在普通对话结束后自动写入知识库。

## 存储目标

优先使用用户在本轮提供的知识库路径。若用户没有提供路径，询问目标位置，不要假设固定目录。

可使用的通用约定：

| 用途 | 示例路径 |
|---|---|
| 团队/项目知识库 | `~/KnowledgeBase/Work` |
| 个人知识库 | `~/KnowledgeBase/Personal` |

## Usage

```
/knowledge-preserve              # 默认：完整原文存 raw + 自动消化到 wiki
/knowledge-preserve direct       # 有隐私：raw 只存摘要，但消化完整原文到 wiki
```

**第一步永远是确认输入人**。

如目标知识库内存在开发规范、踩坑记录、ADR 或模板文件，先读取这些项目内文档。

## 核心逻辑

**两种模式都会**：
1. 消化完整原文（不是摘要）
2. 自动执行 knowledge-compile（质量审核 + 矛盾检测 + 重复检测）
3. 写入 wiki

**区别只在 raw 里存什么**：
- 默认模式：raw 存完整原文（别人可查细节）
- direct 模式：raw 只存摘要日志（隐私不留痕）

## 路径1：默认模式（无隐私）

```
确认输入人 → 完整原文存 raw → 消化完整原文 → 审核+矛盾+重复 → 写 wiki
```

1. **确认输入人**
2. **逐段复制完整对话原文到 raw 文件**
   - ⚠️ **严禁总结、严禁摘要、严禁压缩！**
   - 把对话中的每一轮问答（用户说了什么、Agent 回了什么）原样复制
   - 包含：完整的讨论过程、代码片段、命令输出、决策讨论、报错信息
   - 只去掉无意义的系统提示和重复的工具调用输出
   - 如果对话很长，分段写入，每段用时间标记
   - **判断标准：别人看 raw 文件时，能完整还原当时讨论了什么，不需要回去找原始对话**
3. **存到 原始资料/**：
   - 路径：`<KNOWLEDGE_BASE>/原始资料/对话记录/{输入人}/{date}-{topic}.md`
   - 如果同一个会话窗口已有该文件（同日期同主题），**追加内容到末尾**，只更新结束时间戳
4. **自动执行编译**（等同于 knowledge-compile）：
   - 先列出从对话中提取的知识点列表，展示给用户
   - **等用户确认"可以写入"后才继续**（这步不能跳过！）
   - 质量审核：垃圾内容跳过
   - 矛盾检测：与 wiki 已有文章冲突 → **问用户**
   - 重复检测：>80% 重叠 → 自动合并到已有文章
5. **用户确认后写入 wiki 文章**
6. **更新索引和日志**
7. **标记源文件** `compiled: true`

### raw 文件格式

```yaml
---
type: conversation-extract
输入人: will
会话开始: 2026-04-12 14:30
会话结束: 2026-04-12 16:45
来源目录: __HOME__/projects/some-project
topics: [CouchDB配置, CORS问题, LiveSync]
compiled: true
tags: [conversation, will]
---

# 2026-04-12 CouchDB配置和LiveSync部署

## 14:30 — 开始配置 CouchDB
（完整对话原文...）

## 15:20 — 遇到 CORS 问题
（完整对话原文...）

## 16:30 — LiveSync 连接成功
（完整对话原文...）
```

### 同窗口持续更新规则

如果同一个 CC 会话窗口多次执行 `/knowledge-preserve`：
- **不创建新文件**，在已有文件**末尾追加**新内容
- **只更新 `会话结束` 时间戳**，`会话开始` 不变
- 每次追加的内容用时间标记分隔

## 路径2：direct 模式（有隐私）

```
确认输入人 → 消化完整原文 → 过滤隐私 → 审核+矛盾+重复 → 写 wiki → raw 存摘要
```

1. **确认输入人**
2. **分析完整对话原文**（消化的是完整内容，不是摘要，确保信息量充足）
3. **过滤隐私**：密码/token/API key/客户数据 从 wiki 文章中去除
4. **自动执行编译**：
   - 质量审核 → 矛盾检测 → 重复检测（同默认模式）
5. **写入 wiki 文章**（已脱敏）
6. **raw 存摘要日志**（不含原文）：
   ```
   原始资料/对话记录/{输入人}/{date}-{topic}-摘要.md
   ```
   只记录：时间戳、输入人、主题、写入了哪些 wiki 文章

## Rules

- **必须确认输入人** — 不能匿名
- **⚠️ 默认模式严禁摘要** — raw 文件必须是完整对话原文，逐段复制，不得总结/压缩/概括。判断标准：别人看 raw 能完整还原讨论内容
- **两种模式都消化完整原文** — wiki 的编译从完整原文消化，不是从摘要消化
- **两种模式都自动编译到 wiki** — 不需要手动跑 knowledge-compile
- **编译前必须审核** — 展示知识点列表，等用户说"可以"才写 wiki
- **同窗口追加更新** — 同一会话多次 preserve 追加到同一文件，只更新结束时间戳
- 矛盾不自动裁决，问用户
- Agent 操作记为对应人名

