# Domain Memory

> Domain Memory — 领域记忆管理

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

---


# Domain Memory — 领域记忆管理

## 核心原则

1. **每次会话加载**：任何领域 skill 启动时，自动加载该领域最近 N 条记忆 + 匹配当前场景的高优先级规则。
2. **每次会话写入**：任务完成后，prompt 用户"有什么要记入记忆的吗？"。
3. **规则演变跟踪**：同一规则被多次触发 → 从 `confidence: medium` 升级为 `high`；被证伪 → 标记 `废弃` 并保留原因。
4. **跨域关联**：一条记忆可以关联多个规则，一个规则可以被多个领域引用。
5. **写记忆必同步 MEMORY.md**：写入新的记忆文件时，如果涉及规则修正（新增/强化/废弃），必须同步更新 `MEMORY.md` 中对应章节的规则条目。不允许只写 .md 文件不同步 MEMORY.md。

---

## 全局决策树

```
用户请求
├── "记一下" / "写入记忆"
│   └── 执行 写入工作流
├── "查一下记忆" / "上次的教训"
│   └── 执行 检索工作流
├── "这有什么前例"
│   └── 执行 场景匹配检索
├── 其他 skill 在入口/出口处自动调用
│   ├── 入口: 加载记忆
│   └── 出口: 提示写入
└── 其他请求
    └── 提示：请指定领域 (trading / amazon-ad / amazon-listing / amazon-selection / general)
```

---

## 领域目录映射

调用时通过 `domain` 参数确定目标路径：

| domain 值 | Obsidian 路径 | 目录 |
|-----------|---------------|------|
| `trading` | `交易体系/交易记忆/` | 自动创建 |
| `amazon-ad` | `工作/记忆管理/广告记忆/` | 自动创建 |
| `amazon-listing` | `工作/记忆管理/Listing记忆/` | 自动创建 |
| `amazon-selection` | `工作/记忆管理/选品记忆/` | 自动创建 |
| `general` | `通用/决策记忆/` | 自动创建 |

---

## 工作流一：写入记忆

### 触发条件
- 用户主动说"记一下"、"写入记忆"、"把这个记下来"
- 其他 skill 在任务完成时自动调用（见"集成方案"）

### 步骤

1. **确定领域**：
   - 从当前上下文推断（如果是从其他 skill 调用，domain 参数已传入）
   - 如果用户主动触发，询问："要记到哪个领域？交易/广告/Listing/选品/通用"

2. **引导用户结构化输入**（按顺序提问，不要一次性输出所有问题）：

   ```
   ┌─ 领域: trading ─────────────────────────────────────┐
   │ 1. 今天的预测/假设是什么？                          │
   │ 2. 实际结果怎么样？(✅/❌/⚠️)                       │
   │ 3. 偏差在哪里？根因是什么？                         │
   │ 4. 有什么规则需要新增/强化/废弃？                   │
   │ 5. 这条记忆的可靠程度？(high/medium/low)            │
   └─────────────────────────────────────────────────────┘
   ```

   ```
   ┌─ 领域: amazon-ad ───────────────────────────────────┐
   │ 1. 你做了什么策略调整？                              │
   │ 2. 实际效果怎么样？(ACOS/ROAS 变化)                 │
   │ 3. 偏差在哪里？                                      │
   │ 4. 有什么规则需要修正？                              │
   │ 5. 这条记忆的可靠程度？(high/medium/low)            │
   └─────────────────────────────────────────────────────┘
   ```

   ```
   ┌─ 领域: amazon-listing ──────────────────────────────┐
   │ 1. 你做了什么版本改动？                              │
   │ 2. 实际效果？(排名/转化率变化)                      │
   │ 3. 成功/失败归因？                                  │
   │ 4. 有什么规则需要修正？                              │
   └─────────────────────────────────────────────────────┘
   ```

   ```
   ┌─ 领域: amazon-selection ────────────────────────────┐
   │ 1. 你的判断/假设是什么？                            │
   │ 2. 实际验证结果？                                    │
   │ 3. 偏差在哪里？                                      │
   │ 4. 有什么规则需要修正？                              │
   └─────────────────────────────────────────────────────┘
   ```

3. **生成记忆文件**：
   - 文件名：`YYYY-MM-DD-<领域>-<简述>.md`（简述由用户提供，或从内容自动提取）
   - 写入对应 Obsidian 目录

4. **同步 MEMORY.md**（如涉及规则修正，**必须执行**）：
   - 检查用户输入的"规则修正"字段是否有内容
   - 如果有规则修正，按以下格式更新项目 MEMORY.md：
     ```
     ### 领域规则: {领域名称}
     - [新增] `{规则名}` — {简要说明}（来源: [[记忆文件链接]]）
     - [强化] `{规则名}` — {更新说明}（来源: [[记忆文件链接]]）
     - [废弃] `{规则名}` — {原因}（来源: [[记忆文件链接]]）
     ```
   - 将更新后的规则追加到 MEMORY.md 的 `Discovered durable knowledge` 章节
   - 如果规则已存在（同名规则已记录），用 `[强化]` 提升置信度，而非重复新增

5. **确认**：
   - 输出文件路径和内容摘要
   - 输出 MEMORY.md 规则更新摘要（如果有）
   - 询问 "是否要关联到其他领域的规则？"（可选）

---

## 工作流二：检索记忆

### 触发条件
- 用户主动说"查一下记忆"、"上次的教训"、"这有什么前例"
- 其他 skill 在入口处自动调用（自动拼接领域参数）

### 步骤

1. **确定检索范围**：
   - 用户指定领域 → 只搜该领域
   - 未指定 → 跨域搜索（所有域）
   - 通过其他 skill 调用 → domain 参数已传入

2. **确定检索参数**（从用户请求中提取，缺失则询问）：

   | 参数 | 说明 | 默认值 |
   |------|------|--------|
   | `tags` | 标签过滤 | 无 |
   | `last_n` | 最近 N 条 | 5 |
   | `days` | 最近 N 天 | 30 |
   | `rules` | 匹配的规则 | 无 |
   | `confidence` | 最低可靠度 | low |

3. **执行检索**（按优先级）：

   ```
   模式 A：简单检索（文件 < 50 条时）
     1. 读取对应目录下所有 .md 文件
     2. 按文件名排序（YYYY-MM-DD 自然排序）
     3. 用 grep 过滤 tags/rules
     4. 取最近 last_n 条
   
   模式 B：FTS5 检索（文件 ≥ 50 条时，可选）
     1. 调用 scripts/query_memory.py（如果存在）
     2. 参数：--domain --tags --last --days --rules
     3. 返回结构化结果
   ```

4. **输出格式**：

   ```markdown
   ## 记忆检索结果
   
   ### 领域：{domain} | 最近 {N} 条
   
   #### 1. YYYY-MM-DD: {简述}
   - **标签**: {tags}
   - **核心**: {预测/假设} → {实际结果} ✅/❌
   - **规则**: {规则修正}
   - **关联文件**: [[文件链接]]
   
   #### 2. ...
   ```

5. **高亮冲突**：如果同一条规则在不同时间有相反修正，用 ⚠️ 标记并提示用户。

---

## 工作流三：场景匹配检索

当用户说"这有什么前例"时：

1. **提取当前场景的关键要素**：
   - Trading: 当前市场状态、量能、关注板块
   - Amazon: 当前 ASIN、ACOS 范围、广告类型

2. **构造检索查询**：
   - 用 tags + 关键数值范围匹配
   - 例：`tags: [量能, 萎缩] + days: 60`

3. **返回最相似的 3 条记忆**，并说明它们的相关性。

---

## 集成方案（如何让现有 skill 自动调用）

### 在其他 skill 中集成

在每个需要记忆的 skill 的 SKILL.md 中，在以下位置插入调用：

#### 入口处（skill 启动时自动加载相关记忆）

在技能工作流的"前置动作"或"步骤 1"之前插入：

```markdown
## 记忆加载步骤（自动执行，用户无感知）

1. 调用 domain-memory 的检索工作流，参数：
   - domain: {当前领域}
   - last_n: 5
   - tags: 从当前上下文提取（如当前市场状态、广告类型等）
2. 将检索结果作为上下文注入后续分析
3. 在分析中注明"参考了 X 条历史记忆"
```

#### 出口处（skill 完成时提示写入）

在技能工作流的最后一步插入：

```markdown
## 记忆写入步骤（可选，询问用户）

1. 输出本次任务的关键发现摘要
2. 询问用户："今天的分析有什么要记入{领域}记忆的吗？"
3. 如果用户同意，调用 domain-memory 的写入工作流
```

---

## 示例交互

### 用户："复盘"
（trading-每日复盘 启动，自动调用记忆加载）

```
[系统] 加载了 5 条交易记忆：
- 07-25: 科创芯片左侧猜底教训 → 规则修正：量能不足不参与
- 07-24: 缩量反弹判断正确 → 规则强化：量能<2.5万亿持仓不动
- 07-22: 板块轮动判断失误 → 规则新增：领涨板块需连续3日确认
- 07-18: 证券板块跟踪 → 无规则修正
- 07-15: 量能萎缩判断准确 → 规则已验证

[系统] 当前活跃规则（来自 MEMORY.md + 记忆）：
1. 量能<2.5万亿不参与反弹 ✅ 已验证多次
2. 右侧交易优先，等量能确认 ✅ 刚修正
3. 领涨板块需连续3日确认 ⚠️ 仅 1 次经验
```

### 用户："记一下今天的选品发现"
（domain-memory 写入工作流启动）

```
[系统] 今天做了选品分析，要记入选品记忆吗？
1. 你的判断/假设是什么？
> 用户: "cargador inalámbrico 搜索量 8500，PPC $0.03，判断可以入场"
2. 实际验证结果？
> 用户: "前5名月销320单，PPC低但转化率也不高，SPR 26"
3. 偏差在哪里？
> 用户: "只看了核心词，没考虑关联词聚合流量"
4. 有什么规则需要修正？
> 用户: "选品要按关键词组聚合搜索量，不是单个词"
5. 可靠程度？(high/medium/low)
> 用户: "medium"

[系统] ✅ 已写入 工作/记忆管理/选品记忆/2026-07-28-选品记忆-cargador-inalambrico.md
[系统] 规则已更新至 MEMORY.md
```

---

## 参考文件

| 文件 | 用途 |
|------|------|
| `references/memory-template.md` | 完整记忆模板（含所有领域） |
| `scripts/query_memory.py` | (可选) FTS5 检索脚本，当文件 ≥ 50 条时使用 |

---

## 创建 Obsidian 目录（首次使用时执行）

```bash
vault="{VAULT_PATH}"
dirs=(
    "$vault/交易体系/交易记忆"
    "$vault/工作/记忆管理/广告记忆"
    "$vault/工作/记忆管理/Listing记忆"
    "$vault/工作/记忆管理/选品记忆"
    "$vault/通用/决策记忆"
)
for d in "${dirs[@]}"; do [ -d "$d" ] || mkdir -p "$d"; done
```
