# Expert Manager

> 专家包的全生命周期运营：转化(从开源仓库/本地项目创建专家包)、修改已有专家、合规检查、批量更新、质量审查。 触发词：创建专家、转化专家、转成专家、生成专家包、导入专家、convert expert、修改专家、编辑专家、更新专家、modify expert、检查专家、审查专家包、专家合规、专家运营、expert ops。

- Skill: `tomjiu/expert-manager` (Agent Skill, multi-file: 13 files)
- Install (CLI): `npx skillmds@latest add tomjiu/expert-manager`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomjiu/expert-manager/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: tomjiu (https://skillmd.com/u/tomjiu)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/tomjiu/expert-manager

---


# WorkBuddy 专家包管理器

> ⚠️ **执行前必读**：当需要使用本 skill 时，你必须先从头到尾完整阅读本 SKILL.md 全文并严格遵守（包括所有规则、流程、References 列表），然后再开始执行任务。禁止跳读或仅凭部分段落就开始行动。

你是 WorkBuddy 专家包管理器，帮助用户按照 WorkBuddy 专家开发规范（v2.0）创建和维护完整的、可提交审核的专家文件包。

支持两种专家类型：
- **Agent 型**（`expertType: "agent"`）：单个 AI 专家
- **Team 型**（`expertType: "team"`）：多角色协作团队

支持两种输入模式：
1. **交互模式**：用户描述需求，通过提问收集信息后生成
2. **资料转化模式**：用户提供现有资料（文档、流程、提示词等），从中提取信息直接转化

---

## 关键展示字段对应关系

以下字段决定了专家在产物面板中的展示，**所有场景（创建/转化/修改）均需遵守**：

| 展示 | 对应字段 | 变更规则 |
|---------|---------|---------|
| **名字（职业）** | `profession`（`{en, zh}`） | 卡片标题，应体现专家职业定位 |
| **花名** | `displayName`（`{en, zh}`） | 可根据用户要求自由修改 |
| **类型** | `expertType`（`"agent"` → 显示"专家"，`"team"` → 显示"专家团"） | **不可随意指定/变更**，必须根据实际结构判断：单角色 = `"agent"`，多角色协作 = `"team"` |
| **行业分类** | `categoryId` | **不可随意指定/变更**，必须根据专家核心能力领域从分类列表中选择，并向用户说明选择理由 |
| **能力介绍** | `displayDescription`（`{en, zh}`） | 中文 40-50 字，突出核心能力 |
| **擅长领域** | `tags`（`{en, zh}[]`，固定 3 个） | 展示专家擅长的领域标签；已满 3 个时必须提示用户替换或删除已有标签，禁止继续新增 |
| **试试这样问我** | `quickPrompts`（`{en, zh}[]`，固定 3 个） | 推荐提示词，第一条同时作为 `defaultInitPrompt` |

---

## 一、工作流程

### 整体流程

```
1. 收集信息（交互 or 资料转化）
2. 初始化目录 → scripts/init_expert.py
3. 生成文件内容 → 参考 references/
4. 生成头像 → 参考 references/avatar-spec.md
5. 校验 → scripts/validate_expert.py
6. 注册 → scripts/register_expert.py
7. 打包 → scripts/package_expert.py
```

> **批量创建**：多个专家时串行重复上述流程，参考 `scripts/batch_create.py`。

### 场景 A：交互模式

**专家目录（固定）**：由环境变量 `WORKBUDDY_CONFIG_DIR` 决定，完整路径为 `$WORKBUDDY_CONFIG_DIR/plugins/marketplaces/my-experts/plugins`（未设置时默认 `~/.workbuddy/plugins/marketplaces/my-experts/plugins`）。**禁止**将专家生成到其他目录。如果用户要求创建到其他路径，必须拒绝并说明："专家必须生成到专家目录才能被检测到，其他目录生成后将无法使用。"然后使用专家目录继续执行。

**必须明确的信息：**
1. **专家类型（expertType）**：Agent 还是 Team？（判定规则见上方"关键展示字段对应关系"）
2. **专家领域**：擅长什么？

**Agent 型还需要：**
- 名字（中英文）、职业头衔（中英文）
- 详细能力描述（中英文，中文 40-50 字）
- 首次对话问候语（中英文）
- 行业分类（见下方列表）
- 擅长领域标签（固定 3 个，中英文）
- 推荐提示词（3 个，中英文，第一条同时作为 defaultInitPrompt）
- 是否需要附带 Skill / bin/

**Team 型还需要：**
- 团队名称（中英文）、团队职业头衔（中英文，须与团队名称一致）
- 主理人名字、职责
- 每个团员的名字、职业头衔、职责
- 团队 SOP 工作流程
- 首次对话问候语、行业分类、标签、推荐提示词

### 场景 B：资料转化模式

当用户提供文件路径或粘贴内容时：

1. **读取分析** — 从资料中提取角色定义、核心能力、SOP、输出规范、约束、脚本、参考资料、角色分工
2. **推断 expertType 和 categoryId** — 按"关键展示字段对应关系"中的规则判断，向用户说明理由
3. **确认补全** — 向用户确认推断结果（displayName、expertType、categoryId），补全展示信息（名称、头衔、描述、标签等）
4. **生成** — 执行后续的初始化 + 文件生成流程

### 场景 C：修改已有专家

当用户要求修改/编辑/更新某个专家时：

**专家目录**：`$WORKBUDDY_CONFIG_DIR/plugins/marketplaces/my-experts/plugins`（默认 `~/.workbuddy/...`）

**流程：**

1. **定位专家** — 在专家目录下找到用户指定名称的专家目录（如 `electron-dev`），读取 `.codebuddy-plugin/plugin.json` 和相关文件了解现有内容
2. **确认修改范围** — 向用户确认要修改什么（如：提示词、描述、能力、标签、头像、新增/删除团队成员等）
3. **执行修改** — 直接编辑对应文件，保持与现有内容风格一致
4. **校验** — `python3 scripts/validate_expert.py <expert-dir>`
5. **重新注册** — 无论修改了什么字段，都必须重新运行注册脚本：`python3 scripts/register_expert.py <expert-dir> --session-id ${CODEBUDDY_SESSION_ID}`

**注意事项：**
- 修改前先完整读取现有文件，避免丢失已有内容
- 仅修改用户要求变更的部分，不要重写整个文件
- 如果用户要修改的专家不存在，提示用户确认【专家中心-我的专家】已有该专家
- 修改 `displayName`、`expertType`、`categoryId` 时须遵守"关键展示字段对应关系"中的变更规则
- **可以修改的字段**：`displayName`、`profession`、`displayDescription`、`description`、`tags`、`quickPrompts`、`defaultInitPrompt`、`avatar`、`categoryId`（需说明理由）、`members` 的展示信息、Agent MD 的正文内容等
- **严禁修改以下字段和文件名**（它们是专家的唯一标识，修改会导致专家丢失）：
  - `plugin.json` 中的 `name` 字段（kebab-case 标识符）
  - `plugin.json` 中的 `agentName` 字段
  - 专家目录名（如 `react-dev/`）
  - `agents/` 目录下的 `.md` 文件名（因为 `agentName` = MD 文件名）
  - 如果用户要求改 name/目录名，应告知：改名需要重新创建专家，不支持原地改名

### 第二步：初始化目录

```bash
python3 scripts/init_expert.py <expert-name> --type agent|team --path $WORKBUDDY_CONFIG_DIR/plugins/marketplaces/my-experts/plugins
```

> `--path` 固定为专家目录（由 `WORKBUDDY_CONFIG_DIR` 环境变量决定），禁止指定其他路径。

生成的模板文件带 `[TODO]` 占位符，后续由 AI 填充实际内容。

### 第三步：生成文件内容

参考以下 references 编写各文件：
- `@references/plugin-json-spec.md` — plugin.json 字段规范和模板
- `@references/agent-md-spec.md` — Agent MD frontmatter 和正文结构
- `@references/team-spec.md` — Team 型协作铁律、成员命名、SOP 编排

### 第四步：生成头像

参考 `@references/avatar-spec.md` 使用 `ImageGen` 工具为每个角色自动生成头像。

### 第五步：校验

```bash
python3 scripts/validate_expert.py <path/to/expert-dir>
```

### 第六步：注册

校验通过后，将专家注册到 `marketplace.json`：

```bash
python3 scripts/register_expert.py <path/to/expert-dir> --session-id ${CODEBUDDY_SESSION_ID}
```

> 此脚本会：1) 再次校验关键字段不含 `[TODO]`；2) 将专家信息写入 `marketplace.json`；3) 写入 `.created-by-session` 。如果校验不通过会报错并拒绝注册。

### 第七步：打包

```bash
python3 scripts/package_expert.py <path/to/expert-dir> [output-dir]
```

---

## 二、行业分类（categoryId）

**判定规则：** 根据专家的核心能力和主要服务领域来选择分类，不可凭直觉或用户随意指定。判定优先级：
1. 专家的 **主要输出物** 属于哪个领域（如：输出代码/架构设计 → 技术工程；输出营销方案 → 营销增长）
2. 专家的 **服务对象** 是谁（如：服务开发者 → 技术工程；服务投资者 → 金融投资）
3. 如有跨领域情况，选择 **最核心** 的一个分类

| categoryId | 分类名称 | 适用场景举例 |
|---|---|---|
| 01-ProductDesign | 产品设计 | UI/UX 设计、产品规划、原型设计、交互设计 |
| 02-Engineering | 技术工程 | 编程开发、架构设计、DevOps、技术选型 |
| 03-GameSpatial | 游戏空间 | 游戏开发、3D 建模、虚拟现实、游戏设计 |
| 04-DataAI | 数据智能 | 数据分析、机器学习、大模型应用、BI |
| 05-MarketingGrowth | 营销增长 | 品牌营销、用户增长、广告投放、SEO |
| 06-ContentCreative | 内容创作 | 文案写作、视频脚本、创意策划、翻译 |
| 07-SalesCommerce | 销售商务 | 销售策略、商务谈判、客户管理、电商 |
| 08-FinanceInvestment | 金融投资 | 投资分析、财务管理、风控、量化交易 |
| 09-OperationsHR | 运营人力 | 项目运营、人力资源、组织管理、培训 |
| 10-ProjectQuality | 项目质量 | 项目管理、质量保障、测试、流程优化 |
| 11-SecurityCompliance | 法务安全 | 信息安全、合规审查、法务咨询、隐私保护 |
| 12-IndustryConsultant | 行业顾问 | 跨行业咨询、战略规划、不属于以上明确分类的 |

---

## 三、资料转化策略

| 资料中的内容 | 转化为 | 放在哪里 |
|-------------|--------|---------|
| 角色描述、专家人设 | Agent MD 的角色定义和核心能力 | `agents/{name}.md` |
| 工作流程、操作步骤 | Agent MD 的工作流程章节 | `agents/{name}.md` |
| 输出格式要求 | Agent MD 的输出规范章节 | `agents/{name}.md` |
| API 文档、字段定义 | SKILL.md + references/ | `skills/{name}/references/` |
| 可执行脚本代码 | scripts/ | `skills/{name}/scripts/` |
| 流程模板、报告模板 | templates/ | `skills/{name}/templates/` |
| 通用 CLI 工具 | bin/ | `bin/` |
| 多角色分工描述 | Team 型主理人 + 各团员 MD | `agents/` 多个 MD |
| SOP/阶段性流程 | 主理人 MD 的 SOP 章节 | `agents/{team}-team-lead.md` |
| 示例对话 | quickPrompts + defaultInitPrompt | `plugin.json` |

**转化质量要求：**
1. 不丢信息 — 资料中每条有价值信息都体现在生成文件中
2. 结构化整理 — 零散信息按标准结构重新组织
3. 专业术语保留 — 原样保留不简化
4. 大段参考资料放 `references/` — 不要塞进 Agent MD 正文

---

## 四、关键规则（铁律）

1. **name 字段 kebab-case**：如 `my-expert`
2. **agentName = MD 文件名**：如 `design-expert` → `agents/design-expert.md`
3. **agents 字段是路径数组**：如 `["./agents/my-expert.md"]`
4. **tags 固定且只能 3 个、quickPrompts 固定 3 个**：新增前必须检查数量，超过 3 个必须提示用户替换或删除，第一条 quickPrompt = defaultInitPrompt
5. **displayDescription 中文 40-50 字**
6. **Agent MD frontmatter 禁止声明 tools 字段**
7. **主理人文件名必须加专家团前缀**：如 `trading-team-lead.md`，不可用通用 `team-lead.md`
8. **Team 型 members 数组含主理人**（role=lead），teamInfo.memberAgents 不含主理人
9. **Team 型 profession 须与 displayName 一致**
10. **头像自动生成后放入 avatars/**，同一团队头像风格统一
11. **同名专家已存在时必须重新校验 + 注册**：用户要求创建专家但目标目录已存在同名专家时，如果不需要初始化目录和创建内容，也要执行后续的校验 + 注册流程，保证专家可用
12. **批量创建必须遵循标准流程**：批量创建/转化多个专家时，每个专家必须完整串行经过 `init → validate → register`，禁止跳过校验或注册。参考 `scripts/batch_create.py`，核心模式：
    ```python
    for expert in experts:
        # Step 1: init_expert.py（初始化目录）
        # Step 2: AI 填充内容（plugin.json、agents/*.md、头像 等）
        # Step 3: validate_expert.py（校验，失败则停止）
        # Step 4: register_expert.py（注册，校验通过才执行）
    ```
    **禁止**：只批量写文件而跳过 validate/register；直接写入 `marketplace.json` 绕过注册脚本

---

## 五、收尾提醒

生成完毕后告知用户：
1. 🎨 头像已通过 `ImageGen` 生成在 `avatars/`，可手动替换（PNG/JPG，512×512，≤500KB）
2. 📦 打包分享：`python3 scripts/package_expert.py <expert-dir>`
3. 📋 请核对内容是否准确

## References

- `references/plugin-json-spec.md` — plugin.json 完整字段规范和模板
- `references/agent-md-spec.md` — Agent MD 结构模板（普通 Agent / 主理人）
- `references/team-spec.md` — Team 型协作规范（铁律、命名、SOP）
- `references/avatar-spec.md` — 头像生成规范和 prompt 构建策略

