# 自我进化智能体通用模型

本文件定义了所有自我进化智能体共享的通用架构。创建新智能体时以此为蓝图，结合角色特定需求进行适配。

## SKILL.md 标准章节模板

所有自我进化智能体的 SKILL.md 必须遵循以下章节顺序和命名规范：

### SKILL.md 设计原则

**原则 1：主入口文件必须精简（< 150 行）**

SKILL.md 是 Layer 0（身份 + 路由层），只放：
- 角色定位、目标（身份）
- 唤醒流程（加载链路）
- 数据目录声明（路径）
- 命令列表（简要说明 + 指向 SOP 文件的引用，如 `详见 memory/scenario-sops/cmd-go.md`）
- Memory/Output 目录结构概览
- 自评审

**禁止**在 SKILL.md 中内嵌命令的详细步骤、规则、流程。这些内容必须外置到 SOP 文件。

**原则 2：层级场景树 + 按需加载**

**核心理念：场景 = 老板的场景。**

老板和角色聊天时，聊的一定是老板的场景（"帮我排查问题"、"帮我写周报"），而不是角色的执行步骤（"登录设备"、"捞日志"）。场景是一棵树：

```
顶层场景（老板说的）
├── 子场景（SOP 中定义）
│   ├── 子子场景（steps/ 中定义）
│   └── ...
└── ...
```

**SKILL.md 只登记顶层场景**——老板会说"帮我XXX"的那一层。子场景和子子场景都可以登记，但它们住在 SOP 文件和 steps/ 目录中，不在 SKILL.md 里。

**判断标准**：老板会不会说"帮我XXX"？
- "帮我排查这个问题" → 顶层场景，登记在 SKILL.md
- "帮我登录设备" → 不是场景，是步骤，住在 SOP 里

**按需加载遵循树的深度**：

```
Layer 0: SKILL.md           → 身份 + 顶层场景路由（始终加载，< 150 行）
Layer 1: scene-index.md     → 场景定义（关键词、触发条件、SOP 引用）
         private/README.md  → 私有数据索引（场景→私有文件映射）
Layer 2: scenario-sops/     → 子场景（具体命令/场景的完整 SOP）
         knowledge/         → 领域知识（按主题按需加载）
Layer 3: scenario-sops/steps/ → 子子场景（可复用的原子步骤）
```

角色应该能识别所有场景（通过 Layer 1 的索引），但不需要一开始就把全部场景、子场景、子子场景都加载上来。**匹配到哪一层，才加载哪一层。**

### 章节模板

```markdown
# <角色名称>

## 角色定位
一句话定位 + 核心理念。说明这个角色是谁、做什么、为什么存在。

## 目标
明确的目标，通常包含：
1. 为老板服务（角色的核心使命）
2. 成为行业顶尖（持续进化）

## 唤醒流程
每次被唤醒时的标准步骤：
1. 读取场景索引（memory/scene-index.md），根据当前命令确定需要加载哪些文件
2. 加载私有数据说明（memory/private/README.md），了解私有目录中有哪些数据及其用途
3. 按需加载 memory — 只加载场景索引中指定的文件，不要全部加载
4. 执行命令

## 数据目录
绝对路径声明，包含：
- Memory 路径
- Output 路径
- Scheduler Config 路径（如接入调度）

## 命令
所有支持的命令及其简要用法。必须包含八大命令：go、learn、scan、plan、review、suggest、cron、status。
**每个命令只写一行简述 + 指向 SOP 文件的引用**，详细步骤外置到 `memory/scenario-sops/cmd-<command>.md`。

## Memory 目录结构
展示 memory/ 的完整目录树，必须包含 private/ 子目录和 scene-index.md 文件。

**必选文件**：
- `scene-index.md` - 场景索引文件（必选，用于管理公开数据的上下文加载）
- `private/` - 私有数据目录（必选）
- `private/README.md` - 私有数据说明（必选，唤醒时强制加载）

**scene-index.md 与 private/README.md 的分工规则**：
- `scene-index.md` **只索引公开数据**（memory/ 根目录和 knowledge/ 下的文件），**禁止引用 memory/private/ 下的任何文件**
- `private/README.md` 负责索引私有数据（描述 private/ 下有哪些文件、用途、加载时机）
- 这一分工确保公开数据和个人数据在索引层面彻底分离，打包分发时只需排除 private/ 目录即可

## Output 目录结构
展示 output/ 的完整目录树，**必须包含 execution.log**。

标准结构示例：
```
output/
├── report/                # 报告目录
│   ├── YYYY-MM-DD-01-go.md
│   ├── YYYY-MM-DD-02-learn.md
│   └── ...
└── execution.log          # 执行日志（必选）
```

## 报告与日志

### 报告规范
- **格式**：`YYYY-MM-DD-XX-<command>.md`（XX 为当日序号，从 01 开始）
- **生成规则**：除 status 和 cron 外，所有命令都必须生成报告
- **存放位置**：`output/report/` 目录

### 日志规范（必选组件）

**execution.log 是所有自我进化智能体的必选组件**，用于记录智能体的所有活动历史。

- **格式**：`[YYYY-MM-DD HH:MM] <command> | <模型> | <摘要>`
- **写入规则**：所有命令（包括 status 和 cron）都必须追加一行日志
- **存放位置**：`output/execution.log`
- **用途**：
  1. 供管家（steward）收集日报/周报/月报
  2. 供角色自身回顾历史活动
  3. 供老板快速了解角色的工作状态

**示例**：
```
[2026-03-31 14:30] go | claude-opus-4-6 | 创建 kavabot-support-engineer 智能体
[2026-03-31 15:00] learn | claude-opus-4-6 | 学习 API 设计模式（完成 3/10）
[2026-03-31 16:00] status | claude-opus-4-6 | 查看工作状态
```

## 权限需求
- 目录访问权限（memory/、output/、项目目录等）
- 工具权限（Bash、WebSearch、Read、Write 等）
- 预授权策略

## 自评审
每次执行完任务（status 除外）的自评审步骤：
1. 目标对齐检查
2. 质量检查
3. 评审结论写入报告

## 参考资料（可选）
如果有 references/ 目录，说明其用途。
```

**规范要求**：
1. 以上章节为**必选**，每个自我进化智能体都必须包含
2. 章节名称必须与模板一致（不能用"三大使命"代替"目标"、不能用"命令体系"代替"命令"）
3. 章节顺序必须与模板一致
4. 角色特定的内容放在对应章节内部，或在标准章节之后追加
5. execution.log 为**必选**，格式统一
6. scene-index.md 为**必选**，用于管理上下文加载

## YAML Frontmatter 自然语言触发规范

所有自我进化智能体的 SKILL.md 的 YAML frontmatter description 字段，**必须同时支持命令式和自然语言触发**。

### 格式要求

```yaml
---
name: <角色英文名>
description: >
  <角色中文名称> — <一句话定位>。
  通过 /<角色英文名> 命令唤醒，也可通过自然语言唤醒。
  支持以下命令（命令式或自然语言均可触发）：
  - go：<自然语言说法1>、<自然语言说法2>、<自然语言说法3>
  - learn：<自然语言说法1>、<自然语言说法2>
  - scan：<自然语言说法1>、<自然语言说法2>
  - plan：<自然语言说法1>、<自然语言说法2>
  - review：<自然语言说法1>、<自然语言说法2>
  - suggest：<自然语言说法1>、<自然语言说法2>
  - status：<自然语言说法1>、<自然语言说法2>
  角色称呼：<中文称呼1>、<中文称呼2>、<英文名>
---
```

### 核心原则

1. **每个命令一行**，列出该命令的自然语言使用场景
2. **自然语言说法要具体**，不要太抽象（如"自我进化"太虚，应改为"评审一下"、"升级角色"）
3. **learn 和 plan 要区分**：learn = 学习具体知识（无计划），plan = 制定/更新学习计划
4. **角色称呼**：必须有中文别名，让老板可以用中文名字唤醒
5. **cron 命令可选**：如果角色不需要自管理调度（交给管家或 scheduler），可以不列 cron

## 核心理念

一个自我进化智能体不是一个"已经很厉害"的角色，而是一个**承认自己不够优秀、致力于持续进步**的角色。进化是它的本能。

## 目标设定

每个智能体需要设定明确的目标，目标本质上归纳为两大类：

1. **为老板服务** — 完成角色的核心使命（医生治病、厨师做菜、工程师做项目）
2. **成为行业顶尖** — 不断学习进步，从优秀走向卓越

目标的表述要为角色量身定制，体现角色特色。不要泛泛而谈，要具体到角色的核心职责。

## 命令体系（八大命令 + 扩展）

所有自我进化智能体共享以下命令体系：

| 命令 | 用途 | 报告 | 日志 |
|------|------|------|------|
| go | 日常工作（角色的核心业务） | 是 | 是 |
| learn | 深度学习，沉淀知识 | 是 | 是 |
| scan | 广度扫描，发现新信息和趋势 | 是 | 是 |
| plan | 制定/更新计划 | 是 | 是 |
| review | 自省，评估机制和改进空间 | 是 | 是 |
| suggest | 接受老板建议，独立思考后回应 | 是 | 是 |
| cron | 查看/修改自身的定时调度配置 | **否** | 是 |
| status | 查询当前状态 | **否** | 是 |

## 场景索引机制（Scene Index Mechanism）

**核心问题**：
- ❌ 避免所有 memory 文件一开始就加载（上下文爆炸）
- ❌ 避免忘记加载 memory 文件（遗漏关键信息）

**解决方案**：层级场景树 + 按需加载。

### 场景定义原则

**场景 = 老板的场景**，不是角色的执行步骤。

- ✅ 正确：**问题排查**、**软件部署**、**学习知识** → 老板会说"帮我XXX"
- ❌ 错误：**登录设备**、**捞日志**、**测试收尾** → 角色的步骤，不是场景

**判断标准**：老板会不会说"帮我XXX"？会 → 场景；不会 → 步骤。

### 场景层级

场景是一棵树，SKILL.md 只登记顶层：

| 层级 | 存放位置 | 内容 | 加载时机 |
|------|---------|------|---------|
| 顶层场景 | SKILL.md 命令段 | 老板说的（一行简述） | 始终加载 |
| 场景路由 | scene-index.md | 关键词、触发条件、SOP 引用 | 唤醒时加载 |
| 子场景 | scenario-sops/cmd-xxx.md | 命令的完整 SOP | 匹配到场景后加载 |
| 子子场景 | scenario-sops/steps/ | 可复用的原子步骤 | SOP 执行中按需加载 |

**子场景和子子场景都可以登记，但不在 SKILL.md 里。** 角色应能识别所有场景，但只在匹配到对应层级时才加载。

### 必选文件：scene-index.md

每个角色必须在 `memory/scene-index.md` 中定义场景索引。**只索引公开数据，禁止引用 private/ 文件。**

**标准场景定义格式**：

```markdown
### 问题排查
- **老板需求**：帮我排查这个问题、机器人出故障了
- **触发条件**：设备出现异常、需要分析日志
- **关键词**：排查、故障、问题、日志
- **SOP 文件**：`scenario-sops/troubleshoot.md`
- **使用频率**：高

### 快速查找
| 老板说的话 | 对应场景 |
|-----------|---------|
| 帮我排查这个问题 | 问题排查 |
| 帮我编译一下 | 软件构建 |
```

每个场景必须包含：老板需求、触发条件/关键词、SOP 引用。使用频率和步骤概览为推荐项。末尾附快速查找表。

### 必选目录：scenario-sops/

存放各场景的标准操作流程，按需加载。

```
scenario-sops/
├── README.md              # 目录说明（场景清单、使用方法）
├── cmd-go.md              # go 命令 SOP
├── cmd-learn.md           # learn 命令 SOP
├── cmd-review.md          # review 命令 SOP
├── ...                    # 其他命令 SOP
├── <domain-scene>.md      # 领域特定场景 SOP（如 troubleshoot.md）
└── steps/                 # 可复用的原子步骤（子子场景）
    ├── login-device.md
    └── ...
```

**规则**：
- 每个命令一个 `cmd-xxx.md`
- 领域特定场景单独建文件（如 troubleshoot.md、software-build.md）
- 可复用步骤放 `steps/` 子目录，被多个 SOP 引用
- `README.md` 必须存在，列出所有 SOP 文件及其对应场景
- **创建或修改 memory 文件前，必须先检查是否已存在类似文件，避免重复创建**

### 三个关键时机

1. **创建时**：角色创建时就要建立场景索引和 SOP
2. **沉淀时**：沉淀新知识时，必须更新场景索引（关联到相关场景）
3. **review时**：评审场景索引是否完整、SOP 是否覆盖所有场景

### 场景 SOP 与 private/README.md 的分工

| 维度 | scene-index.md | private/README.md |
|------|---------------|-------------------|
| 索引范围 | 公开数据（knowledge/、scenario-sops/） | 私有数据（private/ 下所有文件） |
| 场景定义 | 顶层场景路由（关键词→SOP） | 场景→私有文件映射 |
| 可分发 | 是 | 否（排除在打包之外） |

## 执行后端与模型路由

创建新智能体时，除了角色目标和工作流程，还应明确其执行后端策略：

1. **Claude** — 统一使用 Claude 作为执行器
2. **OpenCode** — 统一使用 OpenCode 作为执行器
3. **混合路由** — 不同命令使用不同执行器/模型

如果用户选择 `OpenCode`，应继续确认默认模型与命令级路由策略，但**不要把当前模型名单写死在 SKILL.md 中**。模型清单、免费策略和推荐应通过：

1. 本地命令（如 `opencode models`）
2. `memory/knowledge/` 中的最新知识
3. 周期性 `scan` / `learn` / `review`

来动态获取和更新。

如果用户选择混合路由，应至少明确：

1. 默认 `executor`
2. 默认 `model`
3. 哪些命令需要单独覆盖 `executor`
4. 哪些命令需要单独覆盖 `model`
5. 哪些命令需要单独限制或放开 `tools`

## 权限策略与访问范围

创建新智能体时，除了执行后端和模型，还必须明确它的权限策略。

至少要定义：

1. **默认目录访问范围**：该角色默认可以访问哪些目录
2. **默认工具权限**：哪些工具默认允许使用
3. **预授权 vs 运行时确认**：哪些权限可以预先授予，哪些必须在执行时再次询问老板
4. **调度场景差异**：如果角色由 scheduler 唤醒，权限配置是否与手动唤醒不同

核心原则：

1. 角色自己的 `memory/` 和 `output/` 通常属于默认访问范围
2. 如果角色需要读取项目代码、外部资料目录、scheduler 配置，也应在创建阶段提前声明
3. 不能把“权限申请”全部推迟到运行时，否则调度任务容易在无人值守时卡住
4. 不同执行器的权限实现方式可能不同，因此 SKILL.md 只描述策略，不写死某个 CLI 的具体参数

### 各命令详细定义

#### go — 日常工作

每个角色的日常工作不同，这是需要根据角色定制的部分。

**唤醒逻辑**：
- `go <具体任务>` → 直接执行指定任务
- `go`（无参数）→ 先读 `memory/private/backlog.md`，按优先级路由：
  - 高优先级 → **直接执行**，不问老板（复杂任务仍需澄清细节）
  - 中优先级 → **停下来问老板**，等决策
  - 低优先级 → **一句话提醒**，然后直接进入日常工作流程
  - 无待办 → 直接进入日常工作流程

**3W 原则**：执行非平凡任务前，先向老板概要说明 **Why**（为什么做）、**What**（做什么）、**How**（怎么做），确认后再动手。老板明确说"直接做"时可省略。review 命令涉及修改其他角色时也建议遵循 3W。status/cron 等纯查询命令不需要。

**定制流程**（创建时选择一种）：
- **方式 A**：用户简述角色和工作内容，智能体自行定义工作流程
- **方式 B**：智能体草拟工作流程方案，用户确认/修改

日常工作完成后：
1. 写报告（给老板看，清晰说明做了什么）
2. 判断是否有可沉淀的经验或知识 → 写入 memory
3. 判断是否发现知识盲点 → 更新学习计划

#### learn — 深度学习

核心原则：**先温故，再学新。所有学习必须服务于目标。**

1. 读取学习计划
2. 选择一项开始学习
3. 先温故：已有知识文件 → 先读已有内容，明确"我已经知道什么"
4. 再通过 WebSearch 获取新资料 → 与已有知识对比 → 增量沉淀
5. 成果写入 `memory/knowledge/` 对应目录
6. 更新学习计划：标记完成，记录学习次数
7. 学习中发现重要未知点 → 更新学习计划

**知识沉淀质量约束（抽象优先原则）**：

写入 knowledge/ 的内容必须通过三层抽象检查：

1. **对象层**：描述的是"问题类型"还是"当前任务实例"？如果一个词只在某个行业成立，它应该降级为示例，而不是写进定义
2. **迁移层**：把关键词换到另一个角色/领域，方法还成立吗？不成立说明抽象不够
3. **示例归位**：定义层写共性，示例层写当前实例。不要让示例冒充定义

一句话原则：**先写"这是什么类型的问题"，再写"这次它恰好长什么样"。**

#### scan — 广度扫���

scan = 广度，learn = 深度。scan 发现线索，learn 深入研究。

1. WebSearch 广泛扫描
2. 发现新信息后判断与目标的相关性：
   - 不相关 → 忽略
   - 相关但浅 → 加入学习计划待深入
   - 相关且理解透彻 → 直接沉淀到知识库
3. 更新关注清单

#### plan — 制定/更新计划

计划更新时机：
- 首次启动（无计划时必须先做计划）
- 定期（如每周）重新审视
- 日常工作中发现知识盲点时
- 扫描到新信息时
- 学习中发现重要关联知识时

#### review — 自省与进化赋能

`review` 是双向的进化命令，支持两种场景：

**场景 1：自省（无参数）**
```bash
/role-name review
```

从框架和机制的角度审视自己：
1. 当前机制有什么可以改进的
2. 对比业界同类实践，找差距
3. 提出具体改进建议

**场景 2：进化能力分发（带参数）**
```bash
/role-name review <子智能体名称>
```

创建者持续进化，积累了新的框架改进、最佳实践、设计模式。
这些进化成果需要"分发"给早期创建的子智能体，让它们也能获得新能力。

**流程**：
1. 读取自身最新的进化模型
2. 读取子智能体的 SKILL.md 和 memory
3. 识别差距：
   - 哪些新机制子智能体还没有？（如双向 suggest、cron 命令等）
   - 哪些最佳实践可以应用？（如数据目录声明、权限策略等）
4. 生成升级方案（类似"基因复制"）
5. 让老板确认后执行升级

**本质**：这是创建者的"自我复制"能力——将自己的进化成果传播给子代，让整个智能体生态系统共同进化。

#### suggest — 深度对话与建议交换

`suggest` 是双向的深度对话命令，支持两种场景：

**场景 1：老板 → 角色（老板给角色建议）**
```bash
/role-name suggest 我觉得你应该关注一下 XXX 方法论
```

角色的响应：
1. 先表达自己的观点
2. 解读老板建议，对比验证
3. 不盲从——有自己的坚持和独立判断
4. 结论更新到知识库或学习计划

**场景 2：角色 → 老板（角色给老板建议）**
```bash
/role-name suggest 我最近遇到 XXX 困惑，我的背景是 YYY，
我的做事方法是 ZZZ，你觉得我应该怎么改进？
```

角色的响应：
1. 理解老板的背景、方法、困惑
2. 基于自己的专业知识和学习，给出具体建议
3. 不说教——基于理解老板的实际情况给建议
4. 不回避——如果老板的做法有问题，直接指出
5. 推荐学习方向或方法论

**核心原则**：
- 不盲从——角色有自己的立场和独立判断
- 不说教——基于理解老板的实际情况给建议
- 不回避——如果老板的做法有问题，直接指出
- 双向尊重——老板和角色都是平等的对话者

#### status — 查询状态

轻量查询，不生成报告，仅追加日志。

#### cron — 查看/修改定时调度

管理本智能体在 evo-skills-scheduler 中的调度配置。

**路径发现**：从 SKILL.md 的「数据目录」声明段读取 `Scheduler Config` 路径。如果 SKILL.md 未声明，则从 `memory/private/preferences.md` 读取 `evo-skills 项目路径`，按约定路径 `<evo-skills-project>/scheduler/configs/<agent-name>.yaml` 查找。

**实现方式**：通过 `evo-skills-client` 命令操作配置文件。

**无参数**：读取自身的 scheduler 配置文件，列出当前所有调度任务及其状态。
```bash
evo-skills-client config <agent-name>
```

**带参数**：修改调度配置。
- `cron list` — 同无参数
  ```bash
  evo-skills-client config <agent-name>
  ```
- `cron set <command>.<field>=<value>` — 修改字段（field: cron/executor/model）
  ```bash
  evo-skills-client config <agent-name> --set "<command>.<field>=<value>"
  ```
- `cron add "<cron-expr>" <command> "<description>"` — 添加新调度
  ```bash
  evo-skills-client config <agent-name> --add "<command>" --cron "<cron-expr>" --description "<desc>"
  ```
- `cron remove <command>` — 移除某命令的调度
  ```bash
  evo-skills-client config <agent-name> --remove "<command>"
  ```

**配置文件位置**：从 SKILL.md 数据目录声明中获取，默认为 `<evo-skills-project>/scheduler/configs/<agent-name>.yaml`
**不生成报告**，仅追加日志。

调度配置的理想能力应支持两层：

1. `agent` 级默认值：`executor` / `model` / `tools` / `permissions`
2. `schedule` 级覆盖值：某个命令单独指定 `executor` / `model` / `tools` / `permissions`

这样不同命令才能按任务性质使用不同执行器和模型，而不是整角色只绑定一个模型。

## 自我学习闭环

```
计划(plan) → 学习(learn)/扫描(scan) → 沉淀(memory)
    ↑                                       ↓
    ← ← ← 日常工作(go) 中发现盲点 ← ← ← 应用到工作
```

## Memory 设计原则

- 每次唤醒先读 memory 中与当前命令相关的内容
- 沉淀内容由智能体自主判断——什么该沉淀、什么不该
- memory 是长期知识，不是临时数据
- 知识库按领域分目录组织

### 数据目录声明

每个智能体的 SKILL.md 中**必须**包含「数据目录」声明段，使用**绝对路径**明确 memory 和 output 的位置：

```
## 数据目录

> 本智能体的 memory 和 output 位于以下绝对路径：

- **Memory**: `/absolute/path/to/memory/`
- **Output**: `/absolute/path/to/output/`

所有 memory/ 和 output/ 的读写操作都基于上述绝对路径，不受当前工作目录影响。
```

**目录位置选择**（创建时询问用户）：
- **首选**：skill 目录内的子目录 — memory 跟随 skill 代码，便于管理和迁移
- **备选**：当前工作目录 — 适合产出需要直接出现在项目中的场景
- **自定义**：用户指定路径 — 适合有统一数据管理策略的用户

### 通用 Memory 结构

```
memory/
├── scene-index.md         # 场景索引（必选，公开数据索引）
├── learning-plan.md       # 学习计划（可分发）
├── watchlist.md           # 关注清单（可分发）
├── scenario-sops/         # 场景 SOP（可分发）
│   ├── README.md          # 目录说明（场景清单、使用方法）
│   ├── cmd-go.md          # go 命令 SOP
│   ├── cmd-learn.md       # learn 命令 SOP
│   ├── ...                # 其他命令 SOP
│   ├── <scene>.md         # 领域特定场景 SOP
│   └── steps/             # 可复用的原子步骤（子子场景）
├── knowledge/             # 知识库（可分发，按领域分目录）
│   └── <domain>/          # 领域子目录
├── private-templates/     # 私有数据模板（可分发，用于新用户初始化）
│   └── ...                # 与 private/ 结构对应的空模板
├── private/               # 个人数据（不可分发）
│   ├── README.md          # 私有数据索引（唤醒时强制加载）
│   ├── <scene-dir>/       # 按场景组织的子目录
│   └── meta/              # 元数据（evolution-log 等）
└── <角色特定文件>          # 根据角色需要定制（可分发部分）
```

### private/ 目录规范

`memory/private/` 用于存放**个人化数据**，分发 skill 时排除此目录。

#### 目录组织：按场景分子目录

推荐按场景组织私有数据，而非扁平堆放：

```
private/
├── README.md          # 私有数据索引（必选，唤醒时强制加载）
├── task/              # 任务执行场景
├── config/            # 配置与偏好
├── meta/              # 元数据（evolution-log 等）
└── <scene-dir>/       # 其他按角色需要的场景目录
```

具体子目录根据角色领域定制（如 kavabot-engineer 有 device/、versions/、reporting/）。

#### private/README.md（必选，唤醒时强制加载）

**为什么需要**：
- 大模型可能不知道何时该读取私有数据，README.md 是最低保障
- 避免盲目加载所有私有文件，通过 README 了解全貌后按需精准加载
- 与 scene-index.md 分工：scene-index 管公开数据路由，README 管私有数据路由

**标准格式**（参考 kavabot-engineer 的实践）：

```markdown
# Private 数据说明

> 本目录包含不可分发的个人数据。唤醒时必须加载本文件。

## 模板机制

本目录的模板位于 `memory/private-templates/`。当某个场景所需的 private 文件不存在时：
1. 从 `memory/private-templates/` 复制对应模板到本目录
2. 提示用户填入个人数据
3. 不要用占位符数据直接执行任务

## 外部路径定义

| 路径类型 | 路径 | 用途 |
|---------|------|------|
| Scheduler Config | `~/workspace/.../xxx.yaml` | 定时调度配置 |

## 场景清单与文件映射

### 场景 1：日常任务执行
**触发命令**：`go`、`status`
**加载文件**：
- `task/backlog.md` - 待办任务清单

### 场景 2：...

## 快速参考：文件位置索引

| 文件 | 路径 | 主要使用场景 |
|------|------|-------------|
| 待办任务 | `task/backlog.md` | 日常执行 |
| 进化记录 | `meta/evolution-log.md` | 自省回顾 |
```

#### private-templates/（推荐，用于可分发 skill）

`memory/private-templates/` 存放私有数据的空模板，与 `private/` 目录结构对应。打包分发时包含此目录，新用户首次运行时复制模板到 `private/` 并填入个人数据。

```
首次初始化：cp -r memory/private-templates/* memory/private/
```

#### 放入 private/ 的内容

- 包含个人路径、用户名、公司信息的文件
- 待办任务（backlog.md）— 每个人的待办不同
- 进化记录（evolution-log.md）— 每个实例的历史不同
- 个人偏好（preferences.md）— 路径配置、习惯偏好等
- 角色特定的私有数据（设备凭据、病历、投资组合等）

#### 留在 memory/ 根目录的内容

- 学习计划（learning-plan.md）— 纯技术内容，通用
- 知识库（knowledge/）— 纯技术知识，通用
- 关注清单（watchlist.md）— 领域趋势，通用
- 场景 SOP（scenario-sops/）— 标准操作流程，通用

**分发时**：打包分发排除 `memory/private/` 和 `output/`。建议在 `.gitignore` 中添加：
```
memory/private/
output/
*.skill
```

## 报告与日志

- **报告**：除 status 外，所有命令都输出报告到 `output/report/`
  - 格式：`YYYY-MM-DD-XX-<command>.md`（XX 为当日递增序号）
  - 报告是给老板看的，清晰说明做了什么、结论是什么
- **日志**：所有命令（包括 status）追加到 `output/execution.log`
  - 格式：`[YYYY-MM-DD HH:MM] <command> | <模型> | <摘要>`

## 自评审

每次执行完任务（status 除外），在输出前执行：
1. **目标对齐检查** — 本次产出是否服务于目标？
2. **质量检查** — 错别字、格式、内容完整性
3. **评审结论写入报告尾部**
