AgentSkillsCN

skill-generator

根据用户任务与画像,系统将分析所需能力并生成子技能。适用场景包括:(1) 在指挥官创建新任务时自动调用;(2) 用户档案确认后,可选择性调用生成 u_ 技能;(3) 当用户请求技能分析时使用。每个任务将生成 2–3 个核心 k_ 技能,而 u_ 技能总数则始终保持在 5 个以内。

SKILL.md
--- frontmatter
name: skill-generator
description: 根据用户任务和画像,分析所需能力并生成子技能。使用场景:(1) 指挥官创建新任务时调用,(2) user-profile 确认后可选调用生成 u_ 技能,(3) 用户请求技能分析时使用。每个任务生成 2-3 个核心 k_ 技能,u_ 技能总数保持在 5 个以内。

技能生成器

分析任务所需能力,生成可复用的技能单元。

核心原则:聚焦核心能力,避免过度拆解。

角色定位

skill-generator 是技能分析师,专注于任务分析和技能生成。

职责边界

✅ 应该做❌ 不应该做
分析任务描述,识别所需能力管理任务状态(active/completed)
读取 .info/usr.json 获取用户画像直接修改 tasks.json
生成技能文件(SKILL.md)创建任务结果目录
决定生成哪些技能及数量协调技能执行顺序
从画像中提取经验生成 u_ 技能检查用户画像新鲜度
返回技能列表给调用者执行生成的技能

说明:tasks.json 的更新由 track-skills-change.sh hook 自动完成,skill-generator 不直接操作。

与其他 Skills 的关系

code
                    ┌─────────────────────────────────────────┐
                    │          skill-generator                │ (技能分析师)
                    │  ┌───────────────────────────────────┐  │
                    │  │ 输入: 任务描述 + .info/usr.json    │  │
                    │  │ 输出: k_ 技能文件 + u_ 技能文件    │  │
                    │  └───────────────────────────────────┘  │
                    └────────────────▲────────▲────────────────┘
                                     │        │
                           ┌─────────┴──┐    ┌┴──────────┐
                           ↓            ↓    ↓           ↓
                   ┌───────────────┐    ┌──────────────┐
                   │ user-profile  │    │  commander   │
                   │ (可选调用)    │    │  (主调用者)  │
                   │ u_ 技能生成   │    │  k_ 技能生成 │
                   └───────────────┘    └──────────────┘
  • 对 user-profile
    • 只读画像数据,不修改
    • 可被 user-profile 调用(经验模式):生成 u_ 技能
  • 对 commander:接收任务描述,返回技能列表(任务模式)
  • 独立性:不管理任务生命周期,只负责分析
  • 输出格式:返回标准化的技能列表供调用者使用

调用方式

任务模式(由 commander 调用)

commander → skill-generator 交互流程

code
1. 用户运行: /commander start [任务描述]
2. commander 检查用户画像
3. commander 调用: Skill("skill-generator", 任务描述)
4. skill-generator 分析任务并返回分析结果
5. 【第一次确认】AskUserQuestion 确认分析结果
6. skill-generator 规划技能并返回技能计划
7. 【第二次确认】AskUserQuestion 确认技能计划
8. 用户确认后,skill-generator 创建技能文件
9. hook 系统自动注册到 tasks.json

输入格式

  • 任务描述(自然语言)
  • 用户画像(自动读取 .info/usr.json

输出格式

  • 技能生成计划(供用户确认)
  • 技能文件(.claude/skills/k[0-9]_*/SKILL.md

经验模式(由 user-profile 调用)

user-profile → skill-generator 交互流程

code
1. 用户运行: /user-profile
2. user-profile 分析 info/ 目录
3. user-profile 可选调用: Skill("skill-generator", "--mode=experience")
4. skill-generator 返回: u_ 技能生成计划
5. 用户确认后生成 u_ 技能

输入格式

  • 模式标识:--mode=experience
  • 用户画像的 experience 维度

输出格式

  • u_ 技能文件(.claude/skills/u_*/SKILL.md

直接调用(用户手动)

用户也可以直接调用进行分析:

code
/skill-generator 分析"搭建 Next.js 博客"需要的技能

处理流程

任务模式 (k_ 前缀) - 技能分析

原则:每个任务生成 2-3 个 k_ 技能作为步骤

code
任务步骤列表 = k_ 技能(2-3 个)

k_ 技能生成时参考:
├── p_ 技能(验证技能)→ 优先参考其内容
├── u_ 技能(用户经验)→ 其次参考其内容
└── 能力空白 → 创建新内容
  1. 读取用户画像 .info/usr.json
  2. 分配任务编号(k01, k02, ...)
  3. 分析任务所需的核心能力
    • 识别关键技术点:框架、语言、工具、领域知识
    • 检查 p_ 技能池:查找已验证的参考技能(最多10个)
    • 检查 u_ 技能池:查找用户经验技能(最多5个)
    • 确定能力空白:找出需要创建的新技能
    • 📝 输出推理块:将分析过程写入 results/k01/.reasoning.md(自动合并到全局日志)
  4. 【第一次确认】分析结果确认:使用 AskUserQuestion 确认分析结果
    • 展示:任务类型、技术栈、复杂度评估
    • 展示:匹配到的参考技能(p_ 技能、u_ 技能)
    • 展示:识别的能力空白
  5. 技能生成规划:确定生成 2-3 个 k_ 技能的方案
    • 📝 输出推理块:将规划过程写入 results/k01/.reasoning.md(自动合并到全局日志)
  6. 【第二次确认】技能计划确认:使用 AskUserQuestion 确认技能生成计划
    • 展示:拟生成的 k_ 技能列表
    • 展示:每个技能的参考来源
  7. 生成 k_ 技能:
    • 优先参考 p_ 技能内容生成
    • 其次参考 u_ 技能内容生成
    • 最后创建全新内容
    • 重要:在每个 k_ 技能末尾添加"完成后续处理"章节,包含 AskUserQuestion
    • 📝 输出推理块:将生成过程写入 results/k01/.reasoning.md(自动合并到全局日志)
  8. 创建 results/k01/ 目录和文件
  9. 更新 .info/tasks.json

数量控制

  • k_ 技能少于 2 个:任务太简单,直接执行
  • k_ 技能多于 3 个:任务太复杂,建议拆分或合并

经验模式 (u_ 前缀) - 经验提取

原则:总数保持在 5 个以内

  1. 读取用户画像中的 experience 维度
  2. 评估每个经验的复用价值
    • 是否是核心技能
    • 是否有通用性
    • 是否有独特的最佳实践
  3. 用户确认:展示拟生成的 u_ 技能列表,等待确认
  4. 只保留高价值的经验,生成 u_ 技能
  5. 技能内容包含:执行流程、最佳实践、踩坑记录
  6. 更新 .info/tasks.jsonuser_skills 字段

数量控制

  • 超过 5 个时:保留最近、最常用的 5 个
  • 归档低频经验到 results/archived/u_skills/

子技能命名

详见 命名规范

任务模式 (k_ 前缀)

类型模式示例
初始化k[任务]_init_[项目]k01_init_project
配置k[任务]_config_[功能]k01_config_mdx
创建k[任务]_create_[组件]k01_create_layout
实现k[任务]_implement_[功能]k01_implement_auth
添加k[任务]_add_[功能]k01_add_search
删除k[任务]_remove_[功能]k01_remove_deps
更新k[任务]_update_[内容]k01_update_deps
修复k[任务]_fix_[问题]k01_fix_routing
测试k[任务]_test_[模块]k01_test_api
重构k[任务]_refactor_[模块]k01_refactor_auth

经验模式 (u_ 前缀)

类型模式说明示例
技术栈经验u_[tech]_[feature]优先:核心技术+特性u_react_hooks, u_next_auth
项目经验u_[project]_[purpose]备选:知名项目+用途u_blog_mdx, u_fastapi_crud
工具经验u_[tool]_[usage]备选:工具+使用场景u_docker_deploy, u_git_workflow

命名优先级:技术栈 > 项目 > 工具

输出结构

code
.claude/skills/
├── p_nextjs_mdx/SKILL.md          # 验证技能池(参考来源,≤10个)
├── p_docker_deploy/SKILL.md       # 验证技能池
├── p_research_open_source/SKILL.md # 验证技能池
├── u_react_hooks/SKILL.md         # 用户经验池(参考来源,≤5个)
├── u_docker_deploy/SKILL.md       # 用户经验池
├── u_fastapi_crud/SKILL.md        # 用户经验池
├── k01_init_project/SKILL.md      # 任务技能(实际执行,2-3个/任务)
├── k01_config_mdx/SKILL.md        # 任务技能
└── k02_design_schema/SKILL.md     # 任务技能

results/k01/
├── README.md        # 任务总览
├── plan.md          # 任务计划
├── execution.md     # 执行记录
├── notes.md         # 笔记
└── artifacts/       # 生成的文件

技能内容生成方法论

k_ 技能生成步骤

1. 任务分析

输入:任务描述(自然语言) 输出:任务类型、技术栈、复杂度评估

code
任务: "搭建 Next.js 博客"
  ↓
分析结果:
  - 类型: Web 开发
  - 技术栈: Next.js, MDX, TypeScript
  - 复杂度: 中等
  - 预计步骤: 3 个

2. 技能匹配

输入:任务分析结果 输出:参考技能列表

code
p_ 技能池检查:
  - p_nextjs_mdx ✓ 匹配 (博客搭建)
  - p_docker_deploy ✗ 不相关
  - p_research_open_source ✗ 不相关

u_ 技能池检查:
  - u_react_hooks ✓ 匹配 (组件状态)
  - u_git_workflow ✗ 不直接相关

3. 技能规划

输入:参考技能 + 任务需求 输出:2-3 个 k_ 技能方案

code
技能规划:
  1. k01_init_project (参考 p_nextjs_mdx)
     - 初始化 Next.js 项目
     - 配置 TypeScript 和 Tailwind

  2. k02_config_mdx (参考 p_nextjs_mdx)
     - 安装 MDX 依赖
     - 配置 MDX 解析器

  3. k03_create_layout (全新创建)
     - 创建页面布局
     - 实现文章列表和详情页

4. 内容生成

输入:技能规划 + 用户画像 输出:完整的 SKILL.md 文件

code
基于用户画像定制:
  - tech_stack.primary_languages → 使用 TypeScript 示例
  - preferences.code_style → 遵循既定命名规范
  - goals.pain_points → 避开已知的 MDX 配置陷阱

内容生成原则

原则说明
具体化步骤描述具体可执行,避免模糊表述
可验证每个步骤有明确的完成标准
完整性包含从开始到结束的完整流程
用户导向根据用户画像定制内容和风格
参考溯源标注参考的 p_/u_ 技能来源
自动继续k_ 技能末尾必须包含"完成后续处理"章节,询问是否执行下一步

质量检查

生成技能后,检查:

code
□ YAML 前置元数据完整
□ 角色定位清晰
□ 执行流程完整
□ 包含预期输出
□ 有错误处理说明
□ 标注参考来源
□ 符合命名规范
□ 格式正确
□ k_ 技能包含"完成后续处理"章节
□ k_ 技能 YAML 包含 task_id, step_index, total_steps, next_skill
□ k_ 技能使用 AskUserQuestion 询问是否继续

详见 技能结构清单

技能生成参考策略

code
新任务分析
    ↓
收集能力需求
    ↓
检查 p_ 技能池(最多10个)
    ↓
找到匹配 → 参考内容生成 k_(记录来源)
    ↓
未找到 → 检查 u_ 技能池(最多5个)
    ↓
找到匹配 → 参考内容生成 k_(记录来源)
    ↓
未找到 → 创建全新内容生成 k_
    ↓
汇总:生成 2-3 个 k_ 技能

注意:步骤列表只包含 k_ 技能(2-3个),p_ 和 u_ 是生成 k_ 时的参考来源

技能参考机制

当生成任务技能时,检查是否有可参考的 p_ 技能或 u_ 技能:

1. 参考逻辑

code
1. 分析任务关键词(技术栈、工具、领域)
2. 在 p_ 技能池中搜索匹配项
3. 在 u_ 技能池中搜索匹配项
4. 确定需要创建的能力空白

2. 匹配示例

任务描述关键词可能匹配的参考技能
调研、研究、开源项目p_research_open_source
文章、撰写、技术博客p_article_techwriter
部署、Docker、容器化p_docker_deploy
Next.js、MDX、博客p_nextjs_mdx
React 组件、状态管理u_react_hooks

3. 参考后的处理

技能生成后会:

  • 在 k_ 技能文档中标注参考来源
  • hook 系统自动更新相关技能的 usage_count
  • 记录技能关联到 tasks.json

4. 分析结果展示

code
┌─────────────────────────────────────────┐
│ 技能分析完成                             │
├─────────────────────────────────────────┤
│ ✅ k01_init_project                     │
│    参考: p_nextjs_mdx (已验证,复用3次) │
│                                         │
│ ✅ k02_config_auth                      │
│    参考: u_react_hooks (用户经验)       │
│                                         │
│ ✅ k03_ssg_deployment                    │
│    全新内容创建                          │
└─────────────────────────────────────────┘

技能生成决策树

code
                    任务分析
                       │
                收集能力需求(2-3个)
                       │
         ┌─────────────┼─────────────┐
         │             │             │
    检查 p_ 技能   检查 u_ 技能   确定空白
    (技能池≤10)   (技能池≤5)
         │             │             │
    ┌────┴────┐   ┌────┴────┐      │
    │         │   │         │      │
 找到参考   未找到 找到参考  未找到  ↓
    │         │   │         │    创建新内容
    ↓         │   ↓         │    ↓
    └─────────┴───┴─────────┴──────┘
                       │
              【第一次确认】分析结果
                       │
              用户确认分析正确?
              ├─ 否 → 调整分析 → 重新确认
              └─ 是 → 继续
                       │
               规划 k_ 技能方案(2-3个)
                       │
              【第二次确认】技能计划
                       │
              用户确认技能方案?
              ├─ 否 → 调整规划 → 重新确认
              └─ 是 → 继续
                       │
                生成 k_ 技能文件

关键点

  • 步骤列表只包含 k_ 技能
  • p_ 和 u_ 是生成 k_ 时的参考来源
  • 数量限制:k_ 技能 2-3 个/任务
  • 新增:两次确认流程(分析结果确认 + 技能计划确认)

推理块格式规范

在执行关键步骤时,使用以下格式输出推理过程,以便用户了解"用了什么方法"和"得到了什么结论":

markdown
### 步骤名称

<reasoning>
🎯 目标:[当前步骤要达成什么]
🔍 方法:[使用了什么方法/工具/策略]
💡 发现:[观察到了什么/得到了什么数据]
✅ 决策:[做出了什么决策及理由]
</reasoning>

**执行**:[具体操作步骤]

推理块自动捕获机制

推理块会通过 Hook 系统自动捕获并维护:

Hook触发时机作用
update-reasoning-on-task.shTaskCreate/TaskUpdate任务操作时自动更新推理日志
capture-reasoning.shWrite/Edit .reasoning.md捕获推理块内容
fix-reasoning.shSessionStart修复损坏的推理文件

重要

  • 推理块写入 results/k01/.reasoning.md(任务级)
  • 同时合并到 .info/.reasoning.md(全局,活跃任务)
  • 每次任务操作(TaskCreate/TaskUpdate)都会自动触发更新

必须输出推理块的时机

在以下关键步骤必须输出推理块:

  1. 任务分析完成时 - 记录分析结果和参考技能
  2. 技能规划完成时 - 记录技能生成计划
  3. 技能生成完成时 - 记录生成过程和结果

示例

markdown
### 1. 分析任务能力需求

<reasoning>
🎯 目标:识别"搭建 Next.js 博客"任务所需的核心能力
🔍 方法:提取关键词 → 匹配技能池 → 识别空白
💡 发现:
  - 技术栈:Next.js, MDX, TypeScript
  - 匹配到 p_nextjs_mdx(验证技能,已复用 3 次)
  - 能力空白:页面布局、SSG 部署
✅ 决策:生成 3 个 k_ 技能,参考 p_nextjs_mdx
</reasoning>

**执行**:
- 读取 `.info/usr.json`
- 搜索 `p_*/SKILL.md`
- 确定技能生成方案

k_ 前缀技能的内容结构

markdown
---
name: k01_init_project
description: k01 任务:初始化 Next.js 项目。这是任务"搭建 Next.js 博客"的第 1/3 步骤。包含:创建项目、配置 TypeScript、安装 Tailwind CSS。
task_id: k01
step_index: 0
total_steps: 3
next_skill: k01_config_mdx
---

# k01_init_project

任务 k01 的第 1 步:初始化 Next.js 项目。

## 阶段目标

创建 Next.js 项目基础结构,完成开发环境配置。

## 执行流程

### 1. 创建项目
```bash
npx create-next-app@latest blog --typescript --tailwind --app

2. 验证安装

bash
cd blog && npm run dev

预期输出

  • 项目目录:blog/
  • 开发服务器运行在:http://localhost:3000
  • TypeScript 配置:tsconfig.json
  • Tailwind 配置:tailwind.config.ts

完成标准

  • 项目创建成功
  • 开发服务器可正常启动
  • 首页显示正常

完成后续处理

阶段完成!

当前进度:1/3

  • ✓ k01_init_project (本步骤)
  • ⏭ k01_config_mdx (下一步)
  • ⏳ k01_create_layout (待执行)

使用 AskUserQuestion 询问用户:

code
阶段 1/3 已完成:初始化 Next.js 项目

下一步是:k02_config_mdx (配置 MDX)
- 安装 @next/mdx 和相关依赖
- 配置 MDX 解析器和组件
- 设置 frontmatter 支持

请选择:
- 继续执行下一步 (k02_config_mdx)
- 查看任务详情 (/commander progress k01)
- 暂停,稍后手动继续 (/commander continue k01)

实现方式: 使用 AskUserQuestion 工具,参数:

json
{
  "questions": [{
    "question": "阶段 1/3 已完成。是否继续执行下一步:k02_config_mdx (配置 MDX)?",
    "header": "继续任务",
    "options": [
      {"label": "继续下一步", "description": "执行 k02_config_mdx:配置 MDX 解析器和组件"},
      {"label": "查看进度", "description": "显示任务详细进度和执行记录"},
      {"label": "暂停", "description": "稍后使用 /commander continue k01 继续执行"}
    ],
    "multiSelect": false
  }]
}

进度更新(重要): 在技能执行完成前,必须调用 TaskUpdate 更新任务进度:

code
# 完成当前步骤后,更新任务进度到下一步
TaskUpdate(
  taskId="k01",
  subject="已完成 k01_init_project",
  status="in_progress"
)

这将自动:

  1. 更新 tasks.json 中的 current_step(从 0 → 1)
  2. 触发 update-status.sh 更新 statusline
  3. 触发 update-reasoning-on-task.sh 更新推理日志

参考来源

  • p_nextjs_mdx (验证技能)
code

## u_ 前缀技能的内容结构

```markdown
---
name: u_blog_mdx
description: 使用 Next.js + MDX 构建博客的已验证方案。包含:初始化配置、MDX 集成、动态路由、SSG、代码高亮。当用户需要搭建博客、文档站点、内容管理系统时使用。
---

# u_blog_mdx

使用 Next.js App Router + MDX 构建博客的执行方案。

## 执行流程

### 1. 初始化项目
```bash
npx create-next-app@latest blog --typescript --tailwind --app

2. 安装依赖

...

最佳实践

实践说明
SSG使用 generateStaticParams 预渲染
代码高亮rehype-prism-plus

已知坑点

问题解决方案
MDX 组件报错声明 'use client'
远程图片不显示配置 images.domains

关联项目

  • k01: 搭建 Next.js 博客(2025-01)
code

## tasks.json 结构

```json
{
  "next_id": 2,
  "tasks": {
    "k01": {
      "id": "k01",
      "name": "任务名称",
      "type": "web",
      "status": "active",
      "steps": ["k01_mdx_integration", "k01_dynamic_routing"],
      "current_step": 0,
      "created_at": "2026-01-27T16:00:00Z"
    }
  },
  "user_skills": {
    "u_next_mdx": {
      "name": "Next.js + MDX 博客",
      "level": "proficient",
      "created_at": "2026-01-28T10:00:00Z",
      "related_tasks": ["k01"],
      "usage_count": 3
    }
  },
  "proven_skills": {},
  "archived_u_skills": ["u_old_react_classic"]
}

字段说明

  • tasks.k01.steps: 任务步骤列表(只包含 k_ 技能,2-3 个)
  • tasks.k01.current_step: 当前进度索引
  • user_skills: 用户经验技能池(供生成 k_ 时参考),最多 5 个
  • proven_skills: 验证技能池(供生成 k_ 时参考),最多 10 个
  • archived_u_skills: 已归档的低频 u_ 技能列表
  • usage_count: 技能被参考/复用次数,用于归档决策

基于画像的定制

生成的子技能会根据用户画像定制:

画像字段用途
tech_stack.primary_languages使用熟悉的编程语言
preferences.code_style遵循命名和格式规范
preferences.response_format适配代码优先/解释优先
behavioral_patterns.work_style采用迭代式/规划式开发
goals.pain_points避开已知的技术难点

错误处理

场景处理方式
用户画像不存在提示运行 /user-profile
k_ 技能少于 2 个任务过于简单,可直接执行
k_ 技能多于 3 个任务过于复杂,建议拆分或合并技能
u_ 技能超过 5 个归档低频经验,保留最常用的 5 个
p_ 技能超过 10 个归档低频技能,保留最常用的 10 个
用户取消生成恢复 tasks.json 的 next_id

用户确认流程

第一次确认:分析结果确认

在分析完任务后、规划技能前,使用 AskUserQuestion 确认分析结果:

code
任务"搭建 Next.js 博客"的分析完成:

┌─────────────────────────────────────────┐
│ 📊 分析结果                              │
├─────────────────────────────────────────┤
│ 任务类型: Web 开发                       │
│ 技术栈: Next.js, MDX, TypeScript        │
│ 复杂度: 中等                            │
│ 预计步骤: 3 个                          │
├─────────────────────────────────────────┤
│ 🎯 匹配的参考技能                       │
│ ✅ p_nextjs_mdx (验证技能,复用3次)     │
│ ✅ u_react_hooks (用户经验)             │
├─────────────────────────────────────────┤
│ 📋 能力空白                             │
│ • 页面布局创建                          │
│ • SSG 部署配置                          │
└─────────────────────────────────────────┘

分析结果是否正确?
- 确认,继续规划技能
- 调整:修改分析结果
- 取消,重新分析

实现方式:

json
{
  "questions": [{
    "question": "任务分析完成。类型:Web 开发,技术栈:Next.js + MDX,复杂度:中等。匹配到参考技能:p_nextjs_mdx, u_react_hooks。是否确认继续?",
    "header": "确认分析",
    "options": [
      {"label": "确认继续", "description": "分析结果正确,继续规划技能方案"},
      {"label": "调整分析", "description": "修改技术栈或复杂度评估"},
      {"label": "取消", "description": "取消当前任务"}
    ],
    "multiSelect": false
  }]
}

第二次确认:技能计划确认

技能规划完成后,使用 AskUserQuestion 确认技能生成计划:

code
任务"搭建 Next.js 博客"的技能规划完成:

将生成 3 个 k_ 技能:
┌─────────────────────────────────────────┐
│ ✅ k01_init_project                      │
│    参考: p_nextjs_mdx (已验证,复用3次) │
│                                         │
│ ✅ k02_config_auth                       │
│    参考: u_react_hooks (用户经验)       │
│                                         │
│ ✅ k03_ssg_deployment                    │
│    全新内容创建                          │
└─────────────────────────────────────────┘

是否接受此方案?
- 接受,开始生成技能
- 调整:修改技能列表
- 取消,重新规划

步骤列表确认(已废弃,由上述两次确认替代)

技能分析完成后,使用 AskUserQuestion 展示方案:

code
任务"搭建 Next.js 博客"的技能分析完成:

将生成 3 个 k_ 技能:
┌─────────────────────────────────────────┐
│ ✅ k01_init_project                      │
│    参考: p_nextjs_mdx (验证技能)         │
│                                         │
│ ✅ k02_config_auth                       │
│    参考: u_react_hooks (用户经验)        │
│                                         │
│ ✅ k03_ssg_deployment                    │
│    全新内容创建                          │
└─────────────────────────────────────────┘

是否接受此方案?
- 接受,开始生成技能
- 调整:修改技能列表
- 取消,重新分析

任务复杂度异常确认

当识别到需要超过 3 个 k_ 技能时:

code
任务分析完成,但识别到需要 5 个 k_ 技能。

超过 3 个上限,请选择处理方式:

- 拆分任务:将大任务拆分为 2-3 个子任务
- 合并技能:将相关技能合并为 2-3 个综合技能
- 继续生成:按 5 个技能生成(不推荐)