---
name: memo-write
category: productivity
disable-model-invocation: true
description: |
  将用户当前对话中的上下文内容写入到 `.memo/` 目录下的 Markdown 文件。
  默认记录用户说的话，除非用户另有说明。
  文件名从内容中自动提取关键词，保持紧凑。
---

# memo-write

## 目标
将用户当前对话中的上下文内容（通常是用户说的话）保存到 `.memo/` 目录下的 Markdown 文件中，用于后续回顾或继续解决问题。

## 工作流

1. **提取内容**：默认记录用户当前说的话（或上下文中的关键信息）。
   - 如果用户明确说“记录 XX”，则记录 XX。
   - 如果用户只是要求“记下来”而没有指定内容，记录整个当前对话上下文。
2. **确定文件名**：
   - **用户明确指定文件名**（如“保存到 `battle-system.md`”）→ 直接使用。
   - **用户给出标题**（如“标题：战斗系统”）→ 用标题转文件名（`battle-system.md`）。
   - **否则从内容中提取关键词** → 自动选取最核心、最紧凑的 2-3 个词作为文件名，例如：
     - 内容涉及“角色属性平衡” → `char-balance.md`
     - 内容涉及“游戏关卡设计” → `level-design.md`
     - 内容涉及“AI 行为树” → `ai-behavior.md`
3. **组装内容**：
   - 不需要复杂的 YAML frontmatter。
   - 直接写入用户的内容，保持简洁。
   - 可选：在开头加一行简短的标题（`# 标题`）帮助阅读。
4. **写入文件**：保存到 `.memo/<filename>`。
5. **确认**：向用户汇报保存的文件名和路径。

## 命名规则
- 从内容中提取**最核心、最具辨识度**的关键词，**紧凑简洁**。
- 文件名只保留字母、数字、连字符 `-`、下划线 `_`，空格替换为 `-`。
- 优先用英文单词（如果内容是中文且可用英文概括，用英文；否则用拼音或中文转义）。
- 长度控制在 **20 字符以内**，避免冗长。
- 不添加日期前缀或后缀，文件名本身要能说明内容。

## 示例

### 示例 1：未指定标题，从内容提取关键词
用户：`我想把刚才说的战斗系统的角色属性方案记下来，包括 HP 和攻击力的平衡公式`
→ 文件名：`battle-char-balance.md` 或 `char-balance.md`
→ 内容：
```markdown
# 角色属性平衡方案

HP 和攻击力的平衡公式：...
```

### 示例 2：用户明确指定文件名
用户：`把这个存到 `ui-layout.md`，关于主界面布局的划分`
→ 文件名：`ui-layout.md`
→ 内容：用户说的主界面布局方案。

### 示例 3：用户给出标题
用户：`记一下，标题：游戏存档机制`
→ 文件名：`save-system.md` 或 `game-save.md`
→ 内容：用户说的存档机制相关内容。

## 注意事项
- `.memo/` 目录不存在时自动创建。
- 如果文件名已存在，先读取已有内容，让用户确认是追加还是覆盖，或换个文件名。
- 不添加日期戳，文件名本身要能说明内容，方便后续查找。
