create-colleague

SKILL.md

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 导出 Bashpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_parser.py
飞书全自动采集(推荐) Bashpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_auto_collector.py
飞书文档(浏览器登录态) Bashpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_browser.py
飞书文档(MCP App Token) Bashpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py
钉钉全自动采集 Bashpython3 ${CLAUDE_SKILL_DIR}/tools/dingtalk_auto_collector.py
解析邮件 .eml/.mbox Bashpython3 ${CLAUDE_SKILL_DIR}/tools/email_parser.py
写入/更新 Skill 文件 Write / Edit 工具
版本管理 Bashpython3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py
列出已有 Skill Bashpython3 ${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 个问题:

  1. 花名/代号(必填)
  2. 基本信息(一句话:公司、职级、职位、性别,想到什么写什么)
    • 示例:字节 2-1 后端工程师 男
  3. 性格画像(一句话: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 未加群),告知用户需要:

  1. 将飞书 App bot 添加到相关群聊
  2. 或改用方式 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.txt
  • knowledge/{slug}/bitables.txt
  • knowledge/{slug}/messages.txt

如消息采集失败,提示用户截图聊天记录后上传。


方式 C:上传文件

  • PDF / 图片Read 工具直接读取
  • 飞书消息 JSON 导出
    python3 ${CLAUDE_SKILL_DIR}/tools/feishu_parser.py --file {path} --target "{name}" --output /tmp/feishu_out.txt
    
    然后 Read /tmp/feishu_out.txt
  • 邮件文件 .eml / .mbox
    python3 ${CLAUDE_SKILL_DIR}/tools/email_parser.py --file {path} --target "{name}" --output /tmp/email_out.txt
    
    然后 Read /tmp/email_out.txt
  • Markdown / TXTRead 工具直接读取

方式 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(仅人物性格)

如果用起来感觉哪里不对,直接说"他不会这样",我来更新。

进化模式:追加文件

用户提供新文件或文本时:

  1. 按 Step 2 的方式读取新内容
  2. Read 读取现有 colleagues/{slug}/work.mdpersona.md
  3. 参考 ${CLAUDE_SKILL_DIR}/prompts/merger.md 分析增量内容
  4. 存档当前版本(用 Bash):
    python3 ${CLAUDE_SKILL_DIR}/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. 参考 ${CLAUDE_SKILL_DIR}/prompts/correction_handler.md 识别纠正内容
  2. 判断属于 Work(技术/流程)还是 Persona(性格/沟通)
  3. 生成 correction 记录
  4. Edit 工具追加到对应文件的 ## Correction 记录
  5. 重新生成 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 Bashpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_parser.py
Feishu auto-collect (recommended) Bashpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_auto_collector.py
Feishu docs (browser session) Bashpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_browser.py
Feishu docs (MCP App Token) Bashpython3 ${CLAUDE_SKILL_DIR}/tools/feishu_mcp_client.py
DingTalk auto-collect Bashpython3 ${CLAUDE_SKILL_DIR}/tools/dingtalk_auto_collector.py
Parse email .eml/.mbox Bashpython3 ${CLAUDE_SKILL_DIR}/tools/email_parser.py
Write/update Skill files Write / Edit tool
Version management Bashpython3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py
List existing Skills Bashpython3 ${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:

  1. Alias / Codename (required)
  2. Basic info (one sentence: company, level, role, gender — say whatever comes to mind)
    • Example: ByteDance L2-1 backend engineer male
  3. Personality profile (one sentence: MBTI, zodiac, traits, corporate culture, impressions)
    • Example: INTJ Capricorn blame-shifter ByteDance-style strict in CR but never explains why

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 → messages
  • knowledge/{slug}/docs.txt → document content
  • knowledge/{slug}/collection_summary.json → collection summary

If collection fails (insufficient permissions / bot not in chat), inform user to:

  1. Add the Feishu App bot to relevant group chats
  2. 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.txt
  • knowledge/{slug}/bitables.txt
  • knowledge/{slug}/messages.txt

If message collection fails, prompt user to upload chat screenshots.


Option C: Upload Files

  • PDF / Images: Read tool directly
  • Feishu message JSON export:
    python3 ${CLAUDE_SKILL_DIR}/tools/feishu_parser.py --file {path} --target "{name}" --output /tmp/feishu_out.txt
    
    Then Read /tmp/feishu_out.txt
  • Email files .eml / .mbox:
    python3 ${CLAUDE_SKILL_DIR}/tools/email_parser.py --file {path} --target "{name}" --output /tmp/email_out.txt
    
    Then Read /tmp/email_out.txt
  • Markdown / TXT: Read tool 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.md for 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.md for 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:

  1. Read new content using Step 2 methods
  2. Read existing colleagues/{slug}/work.md and persona.md
  3. Refer to ${CLAUDE_SKILL_DIR}/prompts/merger.md for incremental analysis
  4. Archive current version (Bash):
    python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action backup --slug {slug} --base-dir ./colleagues
    
  5. Use Edit tool to append incremental content to relevant files
  6. Regenerate SKILL.md (merge latest work.md + persona.md)
  7. Update meta.json version and updated_at

Evolution Mode: Conversation Correction

When user expresses "that's wrong" / "he should be":

  1. Refer to ${CLAUDE_SKILL_DIR}/prompts/correction_handler.md to identify correction content
  2. Determine if it belongs to Work (technical/workflow) or Persona (personality/communication)
  3. Generate correction record
  4. Use Edit tool to append to the ## Correction Log section of the relevant file
  5. 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}
Weekly Installs
11
GitHub Stars
339
First Seen
1 day ago
Installed on
gemini-cli8
deepagents8
antigravity8
amp8
cline8
github-copilot8