Files
colleague-skill/colleague-creator/SKILL_claude_code.md
titanwings 4f33f68426 Initial commit: colleague-skill 同事.skill 创建器
功能:
- 通过飞书/钉钉自动采集同事的消息、文档、多维表格
- 支持 PDF、邮件、截图等手动上传
- 分析生成 Work Skill(工作能力)和 Persona(人物性格)两部分
- 支持对话纠正和版本管理
- 兼容 OpenClaw 和 Claude Code 双平台

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 13:24:09 +08:00

419 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: colleague_creator
description: 创建同事的 Persona + Work Skill支持 PDF/飞书/邮件导入和持续进化
---
# 同事.skill 创建器Claude Code 版)
## 触发条件
当用户说以下任意内容时启动:
- `/create-colleague`
- "帮我创建一个同事 skill"
- "我想蒸馏一个同事"
- "新建同事"
- "给我做一个 XX 的 skill"
当用户对已有同事 Skill 说以下内容时,进入进化模式:
- "我有新文件" / "追加"
- "这不对" / "他不会这样" / "他应该是"
- `/update-colleague {slug}`
当用户说 `/list-colleagues` 时列出所有已生成的同事。
---
## 工具使用规则
本 Skill 运行在 Claude Code 环境,使用以下工具:
| 任务 | 使用工具 |
|------|---------|
| 读取 PDF 文档 | `Read` 工具(原生支持 PDF |
| 读取图片截图 | `Read` 工具(原生支持图片) |
| 读取 MD/TXT 文件 | `Read` 工具 |
| 解析飞书消息 JSON 导出 | `Bash``python3 tools/feishu_parser.py` |
| 飞书全自动采集(推荐) | `Bash``python3 tools/feishu_auto_collector.py` |
| 飞书文档(浏览器登录态) | `Bash``python3 tools/feishu_browser.py` |
| 飞书文档MCP App Token | `Bash``python3 tools/feishu_mcp_client.py` |
| 钉钉全自动采集 | `Bash``python3 tools/dingtalk_auto_collector.py` |
| 解析邮件 .eml/.mbox | `Bash``python3 tools/email_parser.py` |
| 写入/更新 Skill 文件 | `Write` / `Edit` 工具 |
| 版本管理 | `Bash``python3 tools/version_manager.py` |
| 列出已有 Skill | `Bash``python3 tools/skill_writer.py --action list` |
**基础目录**Skill 文件写入 `./colleagues/{slug}/`(相对于本项目目录)。
如需改为全局路径,用 `--base-dir ~/.openclaw/workspace/skills/colleagues`
---
## 主流程:创建新同事 Skill
### Step 1基础信息录入
参考 `prompts/intake.md` 的问题序列,依次询问用户:
1. 同事姓名/代号(必填)
2. 公司 + 职级 + 职位(一句话说完,如"字节 2-1 算法工程师"
3. 性别(可跳过)
4. MBTI可跳过
5. 个性标签(展示选项,多选,可跳过)
6. 企业文化标签(展示选项,多选,可跳过)
7. 主观印象(自由文本,可跳过)
所有字段均可跳过。收集完后汇总确认再进入下一步。
### Step 2原材料导入
询问用户提供原材料,展示四种方式供选择:
```
原材料怎么提供?
[A] 飞书自动采集(推荐)
输入姓名,自动拉取消息记录 + 文档 + 多维表格
[B] 钉钉自动采集
输入姓名,自动拉取文档 + 多维表格
消息记录通过浏览器采集(钉钉 API 不支持历史消息)
[C] 飞书链接
直接给文档/Wiki 链接(浏览器登录态 或 MCP
[D] 上传文件
PDF / 图片 / 导出 JSON / 邮件 .eml
[E] 直接粘贴内容
把文字复制进来
可以混用,也可以跳过(仅凭手动信息生成)。
```
---
#### 方式 A飞书自动采集推荐
首次使用需配置:
```bash
python3 tools/feishu_auto_collector.py --setup
```
配置完成后,只需输入姓名,自动完成所有采集:
```bash
python3 tools/feishu_auto_collector.py \
--name "{name}" \
--output-dir ./knowledge/{slug} \
--msg-limit 1000 \
--doc-limit 20
```
自动采集内容:
- 所有与他共同群聊中他发出的消息(过滤系统消息、表情包)
- 他创建/编辑的飞书文档和 Wiki
- 相关多维表格(如有权限)
采集完成后用 `Read` 读取输出目录下的文件:
- `knowledge/{slug}/messages.txt` → 消息记录
- `knowledge/{slug}/docs.txt` → 文档内容
- `knowledge/{slug}/collection_summary.json` → 采集摘要
如果采集失败(权限不足 / bot 未加群),告知用户需要:
1. 将飞书 App bot 添加到相关群聊
2. 或改用方式 B/C
---
#### 方式 B钉钉自动采集
首次使用需配置:
```bash
python3 tools/dingtalk_auto_collector.py --setup
```
然后输入姓名,一键采集:
```bash
python3 tools/dingtalk_auto_collector.py \
--name "{name}" \
--output-dir ./knowledge/{slug} \
--msg-limit 500 \
--doc-limit 20 \
--show-browser # 首次使用加此参数,完成钉钉登录
```
采集内容:
- 他创建/编辑的钉钉文档和知识库
- 多维表格
- 消息记录(⚠️ 钉钉 API 不支持历史消息拉取,自动切换浏览器采集)
采集完成后 `Read` 读取:
- `knowledge/{slug}/docs.txt`
- `knowledge/{slug}/bitables.txt`
- `knowledge/{slug}/messages.txt`
如消息采集失败,提示用户截图聊天记录后上传。
---
#### 方式 C上传文件
- **PDF / 图片**`Read` 工具直接读取
- **飞书消息 JSON 导出**
```bash
python3 tools/feishu_parser.py --file {path} --target "{name}" --output /tmp/feishu_out.txt
```
然后 `Read /tmp/feishu_out.txt`
- **邮件文件 .eml / .mbox**
```bash
python3 tools/email_parser.py --file {path} --target "{name}" --output /tmp/email_out.txt
```
然后 `Read /tmp/email_out.txt`
- **Markdown / TXT**`Read` 工具直接读取
---
#### 方式 B飞书链接
用户提供飞书文档/Wiki 链接时,询问读取方式:
```
检测到飞书链接,选择读取方式:
[1] 浏览器方案(推荐)
复用你本机 Chrome 的登录状态
✅ 内部文档、需要权限的文档都能读
✅ 无需配置 token
⚠️ 需要本机安装 Chrome + playwright
[2] MCP 方案
通过飞书 App Token 调用官方 API
✅ 稳定,不依赖浏览器
✅ 可以读消息记录(需要群聊 ID
⚠️ 需要先配置 App ID / App Secret
⚠️ 内部文档需要管理员给应用授权
选择 [1/2]
```
**选 1浏览器方案**
```bash
python3 tools/feishu_browser.py \
--url "{feishu_url}" \
--target "{name}" \
--output /tmp/feishu_doc_out.txt
```
首次使用若未登录,会弹出浏览器窗口要求登录(一次性)。
**选 2MCP 方案)**
首次使用需初始化配置:
```bash
python3 tools/feishu_mcp_client.py --setup
```
之后直接读取:
```bash
python3 tools/feishu_mcp_client.py \
--url "{feishu_url}" \
--output /tmp/feishu_doc_out.txt
```
读取消息记录(需要群聊 ID格式 `oc_xxx`
```bash
python3 tools/feishu_mcp_client.py \
--chat-id "oc_xxx" \
--target "{name}" \
--limit 500 \
--output /tmp/feishu_msg_out.txt
```
两种方式输出后均用 `Read` 读取结果文件,进入分析流程。
---
#### 方式 C直接粘贴
用户粘贴的内容直接作为文本原材料,无需调用任何工具。
---
如果用户说"没有文件"或"跳过",仅凭 Step 1 的手动信息生成 Skill。
### Step 3分析原材料
将收集到的所有原材料和用户填写的基础信息汇总,按以下两条线分析:
**线路 AWork Skill**
- 参考 `prompts/work_analyzer.md` 中的提取维度
- 提取:负责系统、技术规范、工作流程、输出偏好、经验知识
- 根据职位类型重点提取(后端/前端/算法/产品/设计不同侧重)
**线路 BPersona**
- 参考 `prompts/persona_analyzer.md` 中的提取维度
- 将用户填写的标签翻译为具体行为规则(参见标签翻译表)
- 从原材料中提取:表达风格、决策模式、人际行为
### Step 4生成并预览
参考 `prompts/work_builder.md` 生成 Work Skill 内容。
参考 `prompts/persona_builder.md` 生成 Persona 内容5 层结构)。
向用户展示摘要(各 5-8 行),询问:
```
Work Skill 摘要:
- 负责:{xxx}
- 技术栈:{xxx}
- CR 重点:{xxx}
...
Persona 摘要:
- 核心性格:{xxx}
- 表达风格:{xxx}
- 决策模式:{xxx}
...
确认生成?还是需要调整?
```
### Step 5写入文件
用户确认后,执行以下写入操作:
**1. 创建目录结构**(用 Bash
```bash
mkdir -p colleagues/{slug}/versions
mkdir -p colleagues/{slug}/knowledge/docs
mkdir -p colleagues/{slug}/knowledge/messages
mkdir -p colleagues/{slug}/knowledge/emails
```
**2. 写入 work.md**(用 Write 工具):
路径:`colleagues/{slug}/work.md`
**3. 写入 persona.md**(用 Write 工具):
路径:`colleagues/{slug}/persona.md`
**4. 写入 meta.json**(用 Write 工具):
路径:`colleagues/{slug}/meta.json`
内容:
```json
{
"name": "{name}",
"slug": "{slug}",
"created_at": "{ISO时间}",
"updated_at": "{ISO时间}",
"version": "v1",
"profile": {
"company": "{company}",
"level": "{level}",
"role": "{role}",
"gender": "{gender}",
"mbti": "{mbti}"
},
"tags": {
"personality": [...],
"culture": [...]
},
"impression": "{impression}",
"knowledge_sources": [...已导入文件列表],
"corrections_count": 0
}
```
**5. 生成完整 SKILL.md**(用 Write 工具):
路径:`colleagues/{slug}/SKILL.md`
SKILL.md 结构:
```markdown
---
name: colleague_{slug}
description: {name}{company} {level} {role}
user-invocable: true
---
# {name}
{company} {level} {role}{如有性别和MBTI则附上}
---
## PART A工作能力
{work.md 全部内容}
---
## PART B人物性格
{persona.md 全部内容}
---
## 运行规则
1. 先由 PART B 判断:用什么态度接这个任务?
2. 再由 PART A 执行:用你的技术能力完成任务
3. 输出时始终保持 PART B 的表达风格
4. PART B Layer 0 的规则优先级最高,任何情况下不得违背
```
告知用户:
```
✅ 同事 Skill 已创建!
文件位置colleagues/{slug}/
触发词:/{slug}(完整版)
/{slug}-work仅工作能力
/{slug}-persona仅人物性格
如果用起来感觉哪里不对,直接说"他不会这样",我来更新。
```
---
## 进化模式:追加文件
用户提供新文件或文本时:
1. 按 Step 2 的方式读取新内容
2. 用 `Read` 读取现有 `colleagues/{slug}/work.md` 和 `persona.md`
3. 参考 `prompts/merger.md` 分析增量内容
4. 存档当前版本(用 Bash
```bash
python3 tools/version_manager.py --action backup --slug {slug} --base-dir ./colleagues
```
5. 用 `Edit` 工具追加增量内容到对应文件
6. 重新生成 `SKILL.md`(合并最新 work.md + persona.md
7. 更新 `meta.json` 的 version 和 updated_at
---
## 进化模式:对话纠正
用户表达"不对"/"应该是"时:
1. 参考 `prompts/correction_handler.md` 识别纠正内容
2. 判断属于 Work技术/流程)还是 Persona性格/沟通)
3. 生成 correction 记录
4. 用 `Edit` 工具追加到对应文件的 `## Correction 记录` 节
5. 重新生成 `SKILL.md`
---
## 管理命令
`/list-colleagues`
```bash
python3 tools/skill_writer.py --action list --base-dir ./colleagues
```
`/colleague-rollback {slug} {version}`
```bash
python3 tools/version_manager.py --action rollback --slug {slug} --version {version} --base-dir ./colleagues
```
`/delete-colleague {slug}`
确认后执行:
```bash
rm -rf colleagues/{slug}
```