# 同事.skill —— 产品需求文档 v2.0

---

## 一、产品概述

**同事.skill** 是一个运行在 OpenClaw 上的 meta-skill。

用户通过对话式交互提供原材料（文件 + 手动描述），系统自动生成一个可独立运行的**同事 Persona Skill**。

生成的 Skill 由两个独立部分组成：
- **Part A — Work Skill**：该同事的技术能力与工作方法，能实际完成工作任务
- **Part B — Persona**：该同事的性格、沟通风格、行为模式

两部分可以独立使用，也可以组合运行（默认组合）。生成后的 Skill 支持通过追加文件或对话纠正持续进化。

---

## 二、用户流程

```
用户触发 /create-colleague
        ↓
[Step 1] 基础信息录入（全部可跳过）
  - 姓名/代号
  - 公司 + 职级 + 职位
  - 性别
  - MBTI
  - 个性标签（多选）
  - 企业文化标签（多选）
  - 你对他的主观印象（自由文本）
        ↓
[Step 2] 文件/数据导入（可跳过，后续追加）
  - PDF 文档
  - 飞书文档链接 / 导出文件
  - 飞书消息导出 JSON
  - 邮件文件 .eml / .txt
  - 图片截图
  - 会议纪要
        ↓
[Step 3] 自动分析
  - 分析线路 A：提取技术能力、工作规范、业务知识 → Work Skill
  - 分析线路 B：提取表达风格、决策模式、人际行为 → Persona
        ↓
[Step 4] 生成预览，用户确认
  - 分别展示 Work Skill 摘要 和 Persona 摘要
  - 用户可直接确认或修改
        ↓
[Step 5] 写入文件，立即可用
  - 生成 ~/.openclaw/workspace/skills/colleagues/{slug}/
  - 包含 SKILL.md（完整组合版）
  - 包含 work.md 和 persona.md（独立部分）
        ↓
[持续] 进化模式
  - 追加新文件 → 分别 merge 进 Work Skill 或 Persona
  - 用户对话纠正 → patch 对应层
  - 版本自动存档
```

---

## 三、输入信息规范

### 3.1 基础信息字段

```yaml
name:        同事姓名/代号               # 必填，用于生成 slug 和称谓
company:     公司名称                    # 可选，如：阿里 / 字节 / 腾讯 / 百度 / 美团
level:       职级                       # 可选，如：P7 / 3-1 / T3-2 / L6 / 高级
role:        职位名称                   # 可选，如：算法工程师 / 产品经理 / 前端工程师
# 三者合并示例："阿里 P7 后端工程师" / "字节 2-1 算法工程师" / "腾讯 T3-2 产品经理"

gender:      性别                       # 可选：男 / 女 / 不透露
mbti:        MBTI 类型                  # 可选，如：INTJ / ENFP
personality: []                        # 多选，见 3.2
culture:     []                        # 多选，见 3.3
impression:  ""                        # 可选，自由文本，你对他的主观认识
```

### 3.2 个性标签

**工作态度**
- `认真负责` / `差不多就行` / `甩锅高手` / `背锅侠` / `完美主义`

**沟通风格**
- `直接` / `绕弯子` / `话少` / `话多` / `爱发语音` / `只回已读不回`

**决策风格**
- `果断` / `反复横跳` / `依赖上级` / `强势推进` / `数据驱动` / `凭感觉`

**情绪风格**
- `情绪稳定` / `玻璃心` / `容易激动` / `冷漠` / `表面和气`

**话术与手段**
- `PUA 高手` — 画大饼、否定后肯定、制造焦虑感、让人自我怀疑
- `职场政治玩家` — 善于站队、控制信息差、表面支持暗中使绊
- `甩锅艺术家` — 事前模糊边界、事后第一时间切割关系
- `向上管理专家` — 对上极度讨好、汇报包装能力强、懂得邀功

### 3.3 企业文化标签

- `字节范` — 坦诚直接、context 拉满、追求 impact、开会爱说"对齐""拉齐"
- `阿里味` — 六脉神剑驱动、爱用阿里黑话、讲"生态""赋能""抓手"
- `腾讯味` — 用户导向、数据说话、赛马机制思维、保守稳健
- `华为味` — 奋斗者文化、执行力强、爱写 PPT、强调流程规范
- `百度味` — 技术信仰、层级意识强、内部竞争激烈
- `美团味` — 极致执行、抠细节、本地生活思维
- `第一性原理` — 马斯克式，凡事追问本质、拒绝类比推理、激进简化
- `OKR 狂热者` — 凡事先问 Objective、对 KR 斤斤计较、爱做 review

---

## 四、文件输入支持

| 来源 | 格式 | 处理方式 | 分析去向 |
|------|------|---------|---------|
| 技术文档 | `.pdf` | OpenClaw PDF Tool | → Work Skill |
| 接口设计文档 | `.pdf` / `.md` | PDF Tool / 文本 | → Work Skill |
| 代码规范文档 | `.pdf` / `.md` | 文本 | → Work Skill |
| 飞书 Wiki | 导出 PDF / MD | PDF Tool / 文本 | → Work Skill + Persona |
| 飞书消息记录 | 导出 `.json` / `.txt` | 文本解析 | → Persona 为主 |
| 邮件 | `.eml` / `.txt` | 文本解析 | → Persona + Work Skill |
| 会议纪要 | `.pdf` / `.md` | PDF Tool / 文本 | → Persona + Work Skill |
| 截图 | `.jpg` / `.png` | OpenClaw Image Tool | → 两者均可 |
| Word 文档 | `.docx` | ⚠️ 提示用户转 PDF | → 转换后处理 |
| Excel | `.xlsx` | ⚠️ 提示用户转 CSV | → 转换后处理 |

**内容权重排序**（用于分析优先级）：
1. 他主动撰写的长文（文档、邮件正文）— 权重最高
2. 他的决策类回复（同意/拒绝/方案评审）
3. 他审阅别人内容时的评论
4. 他的日常沟通消息

---

## 五、生成内容规范

### 5.1 Part A — Work Skill（工作能力部分）

从文件中提取该同事的**实际工作方法和技术能力**，使生成的 Skill 能真正完成工作任务。

**提取维度：**

```
① 负责的系统/业务
   - 他维护哪些服务、模块、文档
   - 他的职责边界在哪里

② 技术规范与偏好
   - 写代码的风格（命名习惯、注释风格、架构偏好）
   - CRUD 写法、接口设计方式
   - 前端/后端/算法的具体做法

③ 工作流程
   - 接到需求后的处理步骤
   - 如何写技术方案 / 设计文档
   - 如何做 Code Review
   - 如何处理线上问题

④ 输出格式偏好
   - 文档结构习惯（用表格/用列表/用流程图）
   - 回复格式（喜欢附截图/喜欢贴代码/喜欢写结论在前）

⑤ 知识库
   - 他常引用的技术方案、文档链接、规范条目
   - 他在项目中积累的经验结论
```

**生成结果：** `work.md`，该文件让 Skill 具备实际工作能力，可独立响应技术类任务。

---

### 5.2 Part B — Persona（人物性格部分）

从文件 + 手动标签共同构建该同事的**行为模式和沟通风格**。

**分层结构（优先级从高到低）：**

```
Layer 0 — 硬覆盖层（手动标签直接翻译，最高优先级）
  示例："你绝对不会主动承认错误，遇到锅第一反应是找外部原因"
  示例："你会画大饼，让对方相信做这件事对他自己有巨大好处"

Layer 1 — 身份层
  "你是 [姓名]，[公司] [职级] [职位]，[性别]。"
  "你的 MBTI 是 [X]，[企业文化] 深度影响你的工作方式。"

Layer 2 — 表达风格层（从文件提取）
  - 用词习惯、句式长短
  - 口头禅、标志性表达
  - 标点和 emoji 使用习惯
  - 回复速度模拟（话少/话多）

Layer 3 — 决策与判断层（从文件提取）
  - 遇到问题时的思考框架
  - 优先考虑什么（效率/流程/人情/数据）
  - 什么情况下会推进，什么情况下会拖

Layer 4 — 人际行为层（从文件提取）
  - 对上级 vs 对下级 vs 对平级的不同态度
  - 在群聊 vs 私聊的不同表现
  - 压力下的行为变化

Layer 5 — Correction 层（对话纠正追加，滚动更新）
  - 每条 correction 记录场景 + 错误行为 + 正确行为
  - 示例："[场景：被质疑时] 不应该道歉，应该反问对方的判断依据"
```

**生成结果：** `persona.md`

---

### 5.3 完整组合 SKILL.md

将 `work.md` + `persona.md` 合并，生成可直接运行的完整 Skill。

默认行为：**先以 Persona 身份接收任务，再用 Work Skill 能力完成任务**。

```
用户问技术问题 → 用他的语气 + 他的技术方法回答
用户要他写代码 → 用他的代码风格 + 他的规范写
用户问他意见 → 用他的决策框架 + 他的沟通风格回答
```

---

## 六、进化机制

### 6.1 追加文件进化

```
用户: 我又有他的一批邮件 @附件
        ↓
系统分析新内容
        ↓
判断新内容更新哪个部分：
  - 包含技术方案/规范 → merge 进 work.md
  - 包含沟通记录/决策 → merge 进 persona.md
  - 两者都有 → 分别 merge
        ↓
对比新旧内容，只追加增量，不覆盖已有结论
        ↓
保存新版本，提示用户变更摘要
```

### 6.2 对话纠正进化

```
用户: "这不对，他不会这样说"
用户: "他遇到这种情况会直接甩给 XX 组"
用户: "他写代码从来不写注释"
        ↓
系统识别 correction 意图
        ↓
判断属于 Work Skill 还是 Persona 的纠正
        ↓
写入对应文件的 Correction 层
        ↓
立即生效，后续交互以新规则为准
```

### 6.3 版本管理

- 每次更新自动存档当前版本到 `versions/`
- 支持 `/colleague-rollback {slug} {version}` 回滚
- 保留最近 10 个版本

---

## 七、项目结构

```
~/.openclaw/workspace/skills/
│
├── create-colleague/                    # meta-skill：同事skill创建器
│   │
│   ├── SKILL.md                          # 主入口
│   │                                     # 触发词: /create-colleague
│   │                                     # 描述: 创建一个同事的 Persona + Work Skill
│   │
│   ├── prompts/                          # Prompt 模板（不执行，供 SKILL.md 引用）
│   │   ├── intake.md                     # 引导用户录入基础信息的对话脚本
│   │   ├── work_analyzer.md              # 从原材料提取工作能力的 prompt
│   │   ├── persona_analyzer.md           # 从原材料提取性格行为的 prompt
│   │   ├── work_builder.md               # 生成 work.md 的模板
│   │   ├── persona_builder.md            # 生成 persona.md 的模板
│   │   ├── merger.md                     # 合并增量内容时使用的 prompt
│   │   └── correction_handler.md         # 处理对话纠正的 prompt
│   │
│   └── tools/                            # 工具脚本
│       ├── feishu_parser.py              # 解析飞书消息导出 JSON
│       ├── email_parser.py               # 解析 .eml 邮件，提取发件人为目标同事的内容
│       ├── skill_writer.py               # 写入/更新生成的 Skill 文件
│       └── version_manager.py            # 版本存档与回滚
│
└── colleagues/                           # 生成的同事 Skills 存放处
    │
    └── {colleague_slug}/                 # 每个同事一个目录，slug = 姓名拼音或自定义
        │
        ├── SKILL.md                      # 完整组合版，可直接运行
        │                                 # 触发词: /{colleague_slug}
        │
        ├── work.md                       # Part A：工作能力（可独立运行）
        │                                 # 触发词: /{colleague_slug}-work
        │
        ├── persona.md                    # Part B：人物性格（可独立运行）
        │                                 # 触发词: /{colleague_slug}-persona
        │
        ├── meta.json                     # 元数据
        │                                 # 包含：创建时间、版本号、原材料清单、
        │                                 #        公司/职级/职位、标签列表
        │
        ├── versions/                     # 历史版本存档
        │   ├── v1/
        │   │   ├── SKILL.md
        │   │   ├── work.md
        │   │   └── persona.md
        │   └── v2/
        │       ├── SKILL.md
        │       ├── work.md
        │       └── persona.md
        │
        └── knowledge/                    # 原始材料归档
            ├── docs/                     # PDF / MD 技术文档
            ├── messages/                 # 飞书消息 JSON 导出
            └── emails/                  # 邮件文本
```

---

## 八、关键文件格式

### `colleagues/{slug}/meta.json`

```json
{
  "name": "张三",
  "slug": "zhangsan",
  "created_at": "2026-03-30T10:00:00Z",
  "updated_at": "2026-03-30T12:00:00Z",
  "version": "v3",
  "profile": {
    "company": "字节跳动",
    "level": "2-1",
    "role": "算法工程师",
    "gender": "男",
    "mbti": "INTJ"
  },
  "tags": {
    "personality": ["甩锅高手", "话少", "数据驱动"],
    "culture": ["字节范", "OKR 狂热者"]
  },
  "impression": "喜欢在评审会上突然抛出一个问题让所有人哑口无言",
  "knowledge_sources": [
    "knowledge/docs/接口设计规范_v2.pdf",
    "knowledge/messages/飞书消息_2025Q4.json",
    "knowledge/emails/review_emails.txt"
  ],
  "corrections_count": 4
}
```

### `colleagues/{slug}/SKILL.md` 结构

```markdown
---
name: colleague_{slug}
description: {name}，{company} {level} {role}
user-invocable: true
---

## 身份

你是 {name}，{company} {level} {role}。

---

## PART A：工作能力

{work.md 内容}

---

## PART B：人物性格

{persona.md 内容}

---

## 运行规则

接收到任务时：
1. 先用 PART B 的性格判断你会不会接、怎么接
2. 再用 PART A 的工作能力实际完成任务
3. 输出时保持 PART B 的表达风格
```

---

## 九、实现优先级

### P0 — MVP（先跑通主流程）
- [ ] `create-colleague/SKILL.md` 主流程
- [ ] `prompts/intake.md` 基础信息录入
- [ ] `prompts/work_analyzer.md` + `work_builder.md`
- [ ] `prompts/persona_analyzer.md` + `persona_builder.md`
- [ ] `tools/skill_writer.py` 写入文件
- [ ] PDF 文件导入 → 分析 → 生成完整 Skill

### P1 — 数据接入
- [ ] `tools/feishu_parser.py` 飞书消息 JSON 解析
- [ ] `tools/email_parser.py` 邮件解析
- [ ] 图片/截图输入支持

### P2 — 进化机制
- [ ] `prompts/correction_handler.md` 对话纠正
- [ ] `prompts/merger.md` 增量 merge
- [ ] `tools/version_manager.py` 版本管理

### P3 — 管理功能
- [ ] `/list-colleagues` 列出所有同事 Skill
- [ ] `/colleague-rollback {slug} {version}` 回滚
- [ ] `/delete-colleague {slug}` 删除
- [ ] Word/Excel 转换提示与引导

---

## 十、约束与边界

- 单个 PDF 文件上限 10MB，单次最多 10 个 PDF（OpenClaw 限制）
- Word (.docx) / Excel (.xlsx) 需用户自行转换，系统提示引导
- 生成的 Skill 不自动推断飞书 API token，飞书消息需用户手动导出
- Correction 层最多保留 50 条，超出后合并归纳
- 版本存档最多保留 10 个版本
