create-colleague
Language / 语言: This skill supports both English and Chinese. Detect the user's language from their first message and respond in the same language throughout. Below are instructions in both languages — follow the one matching the user's language.
本 Skill 支持中英文。根据用户第一条消息的语言,全程使用同一语言回复。下方提供了两种语言的指令,按用户语言选择对应版本执行。
同事.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 ${CLAUDE_SKILL_DIR}/tools/feishu_parser.py |
| 飞书全自动采集(推荐) | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/feishu_auto_collector.py |
| 飞书文档(浏览器登录态) | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/feishu_browser.py |
| 飞书文档(MCP App Token) | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py |
| 钉钉全自动采集 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/dingtalk_auto_collector.py |
| 解析邮件 .eml/.mbox | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/email_parser.py |
| 写入/更新 Skill 文件 | Write / Edit 工具 |
| 版本管理 | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py |
| 列出已有 Skill | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list |
基础目录:Skill 文件写入 ./colleagues/{slug}/(相对于本项目目录)。
如需改为全局路径,用 --base-dir ~/.openclaw/workspace/skills/colleagues。
主流程:创建新同事 Skill
Step 1:基础信息录入(3 个问题)
参考 ${CLAUDE_SKILL_DIR}/prompts/intake.md 的问题序列,只问 3 个问题:
- 花名/代号(必填)
- 基本信息(一句话:公司、职级、职位、性别,想到什么写什么)
- 示例:
字节 2-1 后端工程师 男
- 示例:
- 性格画像(一句话:MBTI、星座、个性标签、企业文化、印象)
- 示例:
INTJ 摩羯座 甩锅高手 字节范 CR很严格但从来不解释原因
- 示例:
除姓名外均可跳过。收集完后汇总确认再进入下一步。
Step 2:原材料导入
询问用户提供原材料,展示四种方式供选择:
原材料怎么提供?
[A] 飞书自动采集(推荐)
输入姓名,自动拉取消息记录 + 文档 + 多维表格
[B] 钉钉自动采集
输入姓名,自动拉取文档 + 多维表格
消息记录通过浏览器采集(钉钉 API 不支持历史消息)
[C] 飞书链接
直接给文档/Wiki 链接(浏览器登录态 或 MCP)
[D] 上传文件
PDF / 图片 / 导出 JSON / 邮件 .eml
[E] 直接粘贴内容
把文字复制进来
可以混用,也可以跳过(仅凭手动信息生成)。
方式 A:飞书自动采集(推荐)
首次使用需配置:
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_auto_collector.py --setup
配置完成后,只需输入姓名,自动完成所有采集:
python3 ${CLAUDE_SKILL_DIR}/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 未加群),告知用户需要:
- 将飞书 App bot 添加到相关群聊
- 或改用方式 B/C
方式 B:钉钉自动采集
首次使用需配置:
python3 ${CLAUDE_SKILL_DIR}/tools/dingtalk_auto_collector.py --setup
然后输入姓名,一键采集:
python3 ${CLAUDE_SKILL_DIR}/tools/dingtalk_auto_collector.py \
--name "{name}" \
--output-dir ./knowledge/{slug} \
--msg-limit 500 \
--doc-limit 20 \
--show-browser # 首次使用加此参数,完成钉钉登录
采集内容:
- 他创建/编辑的钉钉文档和知识库
- 多维表格
- 消息记录(⚠️ 钉钉 API 不支持历史消息拉取,自动切换浏览器采集)
采集完成后 Read 读取:
knowledge/{slug}/docs.txtknowledge/{slug}/bitables.txtknowledge/{slug}/messages.txt
如消息采集失败,提示用户截图聊天记录后上传。
方式 C:上传文件
- PDF / 图片:
Read工具直接读取 - 飞书消息 JSON 导出:
然后python3 ${CLAUDE_SKILL_DIR}/tools/feishu_parser.py --file {path} --target "{name}" --output /tmp/feishu_out.txtRead /tmp/feishu_out.txt - 邮件文件 .eml / .mbox:
然后python3 ${CLAUDE_SKILL_DIR}/tools/email_parser.py --file {path} --target "{name}" --output /tmp/email_out.txtRead /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(浏览器方案):
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_browser.py \
--url "{feishu_url}" \
--target "{name}" \
--output /tmp/feishu_doc_out.txt
首次使用若未登录,会弹出浏览器窗口要求登录(一次性)。
选 2(MCP 方案):
首次使用需初始化配置:
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py --setup
之后直接读取:
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py \
--url "{feishu_url}" \
--output /tmp/feishu_doc_out.txt
读取消息记录(需要群聊 ID,格式 oc_xxx):
python3 ${CLAUDE_SKILL_DIR}/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:分析原材料
将收集到的所有原材料和用户填写的基础信息汇总,按以下两条线分析:
线路 A(Work Skill):
- 参考
${CLAUDE_SKILL_DIR}/prompts/work_analyzer.md中的提取维度 - 提取:负责系统、技术规范、工作流程、输出偏好、经验知识
- 根据职位类型重点提取(后端/前端/算法/产品/设计不同侧重)
线路 B(Persona):
- 参考
${CLAUDE_SKILL_DIR}/prompts/persona_analyzer.md中的提取维度 - 将用户填写的标签翻译为具体行为规则(参见标签翻译表)
- 从原材料中提取:表达风格、决策模式、人际行为
Step 4:生成并预览
参考 ${CLAUDE_SKILL_DIR}/prompts/work_builder.md 生成 Work Skill 内容。
参考 ${CLAUDE_SKILL_DIR}/prompts/persona_builder.md 生成 Persona 内容(5 层结构)。
向用户展示摘要(各 5-8 行),询问:
Work Skill 摘要:
- 负责:{xxx}
- 技术栈:{xxx}
- CR 重点:{xxx}
...
Persona 摘要:
- 核心性格:{xxx}
- 表达风格:{xxx}
- 决策模式:{xxx}
...
确认生成?还是需要调整?
Step 5:写入文件
用户确认后,执行以下写入操作:
1. 创建目录结构(用 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
内容:
{
"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 结构:
---
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(仅人物性格)
如果用起来感觉哪里不对,直接说"他不会这样",我来更新。
进化模式:追加文件
用户提供新文件或文本时:
- 按 Step 2 的方式读取新内容
- 用
Read读取现有colleagues/{slug}/work.md和persona.md - 参考
${CLAUDE_SKILL_DIR}/prompts/merger.md分析增量内容 - 存档当前版本(用 Bash):
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action backup --slug {slug} --base-dir ./colleagues - 用
Edit工具追加增量内容到对应文件 - 重新生成
SKILL.md(合并最新 work.md + persona.md) - 更新
meta.json的 version 和 updated_at
进化模式:对话纠正
用户表达"不对"/"应该是"时:
- 参考
${CLAUDE_SKILL_DIR}/prompts/correction_handler.md识别纠正内容 - 判断属于 Work(技术/流程)还是 Persona(性格/沟通)
- 生成 correction 记录
- 用
Edit工具追加到对应文件的## Correction 记录节 - 重新生成
SKILL.md
管理命令
/list-colleagues:
python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list --base-dir ./colleagues
/colleague-rollback {slug} {version}:
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action rollback --slug {slug} --version {version} --base-dir ./colleagues
/delete-colleague {slug}:
确认后执行:
rm -rf colleagues/{slug}
English Version
Colleague.skill Creator (Claude Code Edition)
Trigger Conditions
Activate when the user says any of the following:
/create-colleague- "Help me create a colleague skill"
- "I want to distill a colleague"
- "New colleague"
- "Make a skill for XX"
Enter evolution mode when the user says:
- "I have new files" / "append"
- "That's wrong" / "He wouldn't do that" / "He should be"
/update-colleague {slug}
List all generated colleagues when the user says /list-colleagues.
Tool Usage Rules
This Skill runs in the Claude Code environment with the following tools:
| Task | Tool |
|---|---|
| Read PDF documents | Read tool (native PDF support) |
| Read image screenshots | Read tool (native image support) |
| Read MD/TXT files | Read tool |
| Parse Feishu message JSON export | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/feishu_parser.py |
| Feishu auto-collect (recommended) | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/feishu_auto_collector.py |
| Feishu docs (browser session) | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/feishu_browser.py |
| Feishu docs (MCP App Token) | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py |
| DingTalk auto-collect | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/dingtalk_auto_collector.py |
| Parse email .eml/.mbox | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/email_parser.py |
| Write/update Skill files | Write / Edit tool |
| Version management | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py |
| List existing Skills | Bash → python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list |
Base directory: Skill files are written to ./colleagues/{slug}/ (relative to the project directory).
For a global path, use --base-dir ~/.openclaw/workspace/skills/colleagues.
Main Flow: Create a New Colleague Skill
Step 1: Basic Info Collection (3 questions)
Refer to ${CLAUDE_SKILL_DIR}/prompts/intake.md for the question sequence. Only ask 3 questions:
- Alias / Codename (required)
- Basic info (one sentence: company, level, role, gender — say whatever comes to mind)
- Example:
ByteDance L2-1 backend engineer male
- Example:
- Personality profile (one sentence: MBTI, zodiac, traits, corporate culture, impressions)
- Example:
INTJ Capricorn blame-shifter ByteDance-style strict in CR but never explains why
- Example:
Everything except the alias can be skipped. Summarize and confirm before moving to the next step.
Step 2: Source Material Import
Ask the user how they'd like to provide materials:
How would you like to provide source materials?
[A] Feishu Auto-Collect (recommended)
Enter name, auto-pull messages + docs + spreadsheets
[B] DingTalk Auto-Collect
Enter name, auto-pull docs + spreadsheets
Messages collected via browser (DingTalk API doesn't support message history)
[C] Feishu Link
Provide doc/Wiki link (browser session or MCP)
[D] Upload Files
PDF / images / exported JSON / email .eml
[E] Paste Text
Copy-paste text directly
Can mix and match, or skip entirely (generate from manual info only).
Option A: Feishu Auto-Collect (Recommended)
First-time setup:
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_auto_collector.py --setup
After setup, just enter the name:
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_auto_collector.py \
--name "{name}" \
--output-dir ./knowledge/{slug} \
--msg-limit 1000 \
--doc-limit 20
Auto-collected content:
- All messages sent by them in shared group chats (system messages and stickers filtered)
- Feishu docs and Wikis they created/edited
- Related spreadsheets (if accessible)
After collection, Read the output files:
knowledge/{slug}/messages.txt→ messagesknowledge/{slug}/docs.txt→ document contentknowledge/{slug}/collection_summary.json→ collection summary
If collection fails (insufficient permissions / bot not in chat), inform user to:
- Add the Feishu App bot to relevant group chats
- Or switch to Option B/C
Option B: DingTalk Auto-Collect
First-time setup:
python3 ${CLAUDE_SKILL_DIR}/tools/dingtalk_auto_collector.py --setup
Then enter the name:
python3 ${CLAUDE_SKILL_DIR}/tools/dingtalk_auto_collector.py \
--name "{name}" \
--output-dir ./knowledge/{slug} \
--msg-limit 500 \
--doc-limit 20 \
--show-browser # add this flag on first use to complete DingTalk login
Collected content:
- DingTalk docs and knowledge bases they created/edited
- Spreadsheets
- Messages (⚠️ DingTalk API doesn't support message history — auto-switches to browser scraping)
After collection, Read:
knowledge/{slug}/docs.txtknowledge/{slug}/bitables.txtknowledge/{slug}/messages.txt
If message collection fails, prompt user to upload chat screenshots.
Option C: Upload Files
- PDF / Images:
Readtool directly - Feishu message JSON export:
Thenpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_parser.py --file {path} --target "{name}" --output /tmp/feishu_out.txtRead /tmp/feishu_out.txt - Email files .eml / .mbox:
Thenpython3 ${CLAUDE_SKILL_DIR}/tools/email_parser.py --file {path} --target "{name}" --output /tmp/email_out.txtRead /tmp/email_out.txt - Markdown / TXT:
Readtool directly
Option D: Feishu Link
When the user provides a Feishu doc/Wiki link, ask which method to use:
Feishu link detected. Choose read method:
[1] Browser Method (recommended)
Reuses your local Chrome login session
✅ Works with internal docs requiring permissions
✅ No token configuration needed
⚠️ Requires Chrome + playwright installed locally
[2] MCP Method
Uses Feishu App Token via official API
✅ Stable, no browser dependency
✅ Can read messages (needs chat ID)
⚠️ Requires App ID / App Secret setup
⚠️ Internal docs need admin authorization for the app
Choose [1/2]:
Option 1 (Browser):
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_browser.py \
--url "{feishu_url}" \
--target "{name}" \
--output /tmp/feishu_doc_out.txt
First use will open a browser window for login (one-time).
Option 2 (MCP):
First-time setup:
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py --setup
Then read directly:
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py \
--url "{feishu_url}" \
--output /tmp/feishu_doc_out.txt
Read messages (needs chat ID, format oc_xxx):
python3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py \
--chat-id "oc_xxx" \
--target "{name}" \
--limit 500 \
--output /tmp/feishu_msg_out.txt
Both methods output to files, then use Read to load results into analysis.
Option E: Paste Text
User-pasted content is used directly as text material. No tools needed.
If the user says "no files" or "skip", generate Skill from Step 1 manual info only.
Step 3: Analyze Source Material
Combine all collected materials and user-provided info, analyze along two tracks:
Track A (Work Skill):
- Refer to
${CLAUDE_SKILL_DIR}/prompts/work_analyzer.mdfor extraction dimensions - Extract: responsible systems, technical standards, workflow, output preferences, experience
- Emphasize different aspects by role type (backend/frontend/ML/product/design)
Track B (Persona):
- Refer to
${CLAUDE_SKILL_DIR}/prompts/persona_analyzer.mdfor extraction dimensions - Translate user-provided tags into concrete behavior rules (see tag translation table)
- Extract from materials: communication style, decision patterns, interpersonal behavior
Step 4: Generate and Preview
Use ${CLAUDE_SKILL_DIR}/prompts/work_builder.md to generate Work Skill content.
Use ${CLAUDE_SKILL_DIR}/prompts/persona_builder.md to generate Persona content (5-layer structure).
Show the user a summary (5-8 lines each), ask:
Work Skill Summary:
- Responsible for: {xxx}
- Tech stack: {xxx}
- CR focus: {xxx}
...
Persona Summary:
- Core personality: {xxx}
- Communication style: {xxx}
- Decision pattern: {xxx}
...
Confirm generation? Or need adjustments?
Step 5: Write Files
After user confirmation, execute the following:
1. Create directory structure (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. Write work.md (Write tool):
Path: colleagues/{slug}/work.md
3. Write persona.md (Write tool):
Path: colleagues/{slug}/persona.md
4. Write meta.json (Write tool):
Path: colleagues/{slug}/meta.json
Content:
{
"name": "{name}",
"slug": "{slug}",
"created_at": "{ISO_timestamp}",
"updated_at": "{ISO_timestamp}",
"version": "v1",
"profile": {
"company": "{company}",
"level": "{level}",
"role": "{role}",
"gender": "{gender}",
"mbti": "{mbti}"
},
"tags": {
"personality": [...],
"culture": [...]
},
"impression": "{impression}",
"knowledge_sources": [...imported file list],
"corrections_count": 0
}
5. Generate full SKILL.md (Write tool):
Path: colleagues/{slug}/SKILL.md
SKILL.md structure:
---
name: colleague-{slug}
description: {name}, {company} {level} {role}
user-invocable: true
---
# {name}
{company} {level} {role}{append gender and MBTI if available}
---
## PART A: Work Capabilities
{full work.md content}
---
## PART B: Persona
{full persona.md content}
---
## Execution Rules
1. PART B decides first: what attitude to take on this task?
2. PART A executes: use your technical skills to complete the task
3. Always maintain PART B's communication style in output
4. PART B Layer 0 rules have the highest priority and must never be violated
Inform user:
✅ Colleague Skill created!
Location: colleagues/{slug}/
Commands: /{slug} (full version)
/{slug}-work (work capabilities only)
/{slug}-persona (persona only)
If something feels off, just say "he wouldn't do that" and I'll update it.
Evolution Mode: Append Files
When user provides new files or text:
- Read new content using Step 2 methods
Readexistingcolleagues/{slug}/work.mdandpersona.md- Refer to
${CLAUDE_SKILL_DIR}/prompts/merger.mdfor incremental analysis - Archive current version (Bash):
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action backup --slug {slug} --base-dir ./colleagues - Use
Edittool to append incremental content to relevant files - Regenerate
SKILL.md(merge latest work.md + persona.md) - Update
meta.jsonversion and updated_at
Evolution Mode: Conversation Correction
When user expresses "that's wrong" / "he should be":
- Refer to
${CLAUDE_SKILL_DIR}/prompts/correction_handler.mdto identify correction content - Determine if it belongs to Work (technical/workflow) or Persona (personality/communication)
- Generate correction record
- Use
Edittool to append to the## Correction Logsection of the relevant file - Regenerate
SKILL.md
Management Commands
/list-colleagues:
python3 ${CLAUDE_SKILL_DIR}/tools/skill_writer.py --action list --base-dir ./colleagues
/colleague-rollback {slug} {version}:
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action rollback --slug {slug} --version {version} --base-dir ./colleagues
/delete-colleague {slug}:
After confirmation:
rm -rf colleagues/{slug}