| name | repo-to-skill |
| description | 当用户要求"把仓库总结成skill"、"基于项目生成skill"、"从repo提取skill"、"将项目经验做成skill"时触发。自动读取.claude/repo下的指定项目,提炼源码和PROJECT_INDEX.md中的可复用模式,生成标准skill文件。 |
Repo to Skill — 仓库经验提炼为元 Skill
核心原则
先读仓库,再提模式,后生成 skill。
repo-to-skill 是"从项目仓库自动创建 skill 的元 skill",不是要被修改的 skill。
每次基于仓库创建新 skill 时,必须:
- 读取项目 — 从
.claude/repo/<项目名>/ 获取源码和索引
- 提炼模式 — 提取可复用的流程、模式、最佳实践
- 生成 skill — 按照 key_board 规范创建标准 skill 文件
- 独立目录 — 新 skill 必须在
.claude/skills/<新skill名称>/ 下
触发条件
当用户说以下内容时触发:
- "把 repo X 总结成 skill"
- "基于这个项目生成 skill"
- "从仓库提取 skill"
- "将项目经验做成 skill"
- "把仓库提炼成 skill"
工作流程(必须按序执行)
Step 1: 确认目标仓库
确定用户指定的仓库名称,检查其存在于 .claude/repo/<项目名>/:
Glob: .claude/repo/*/
如果不存在,停止并告知用户可用仓库列表。
Step 2: 扫描项目索引
读取目标项目的 PROJECT_INDEX.md(如有):
Read: .claude/repo/<项目名>/PROJECT_INDEX.md
Read: .claude/repo/<项目名>/PROJECT_INDEX.json(可选)
提取信息:
- 项目名称、核心模块
- 功能描述、架构概述
- 关键文件清单
Step 3: 深入关键源码
基于索引,选择最具代表性的源码文件深入读取:
Glob: .claude/repo/<项目名>/**/*.dart(或对应语言)
Read: 关键源码文件
Grep: 核心模式、API、配置项
提取可复用模式:
- 触发场景 — 什么情况下使用这个流程?
- 核心逻辑 — 关键步骤和决策点
- 输入输出 — 需要什么参数?产出什么结果?
- 最佳实践 — 项目中的约定和优化点
- 坑点警示 — 项目中踩过的坑和解决方案
Step 4: 提炼 Skill 结构
基于分析结果,回答三个问题:
- 这个 skill 要解决什么问题?(从仓库经验中提炼)
- 什么时候触发?(什么场景下调用)
- 输出格式是什么?(skill 的使用方式)
Step 5: 生成 SKILL.md
创建独立目录和文件:
mkdir -p .claude/skills/<skill名称>/
编写 SKILL.md,必须包含 YAML frontmatter:
---
name: <skill名称>
description: <触发描述 — 什么时候触发这个skill,不是内容总结>
---
内容结构必须包含:
- 核心原则 — skill 的使用哲学
- 触发条件 — 明确的触发语句列表
- 工作流程 — 分步骤的操作指南
- 寻找/使用指令 — 具体的工具调用示例
- 适用场景 — ✅ 适合 / ❌ 不适合的场景
- 错误案例 — 至少一个错误案例表格
- 成功标准 — 检查清单
Step 6: 调用 /sc:reflect
生成后调用 /sc:reflect 验证:
- 是否遗漏了关键模式?
- 触发条件是否准确?
- 是否有潜在的误触发场景?
- skill 是否可执行、可验证?
分析指令示例
扫描仓库结构:
Glob: .claude/repo/<repo>/**/*
读取项目索引:
Read: .claude/repo/<repo>/PROJECT_INDEX.md
搜索核心模式:
Grep: class | interface | mixin | enum
Grep: TODO | FIXME | HACK
Glob: **/*.md
适用场景
✅ 从参考项目中提取可复用流程
✅ 将项目经验沉淀为团队共享 skill
✅ 基于优秀开源项目创建领域 skill
✅ 复用项目中的调试/部署/开发流程
❌ 仓库不存在或无法读取
❌ 项目过于简单,无提炼价值
❌ 用户已直接给出完整的 skill 内容
❌ 生成后未验证触发准确性
错误案例
| 错误操作 | 实际后果 | 正确做法 |
|---|
| 不读 PROJECT_INDEX.md 直接读源码 | 在海量文件中迷失,提炼偏题 | 先读索引建立全局视角 |
| 把项目描述直接复制为 skill 内容 | 生成的是项目介绍,不是可执行 skill | 提炼"怎么做"而非"是什么" |
| description 写成项目总结 | skill 无法被正确触发识别 | description 必须是触发条件描述 |
| 遗漏错误案例和坑点 | skill 缺少防护,用户重复踩坑 | 必须包含从项目中提炼的错误案例 |
| 生成的 skill 在 key_board 目录内 | 破坏元模板职责,skill 无法独立触发 | 新 skill 必须在独立目录 .claude/skills/<name>/ |
| 跳过 /sc:reflect 验证 | 触发条件不准确,skill 难以使用 | 生成后必须反思验证 |
我的犯错记录
| 错误操作 | 实际后果 | 正确做法 |
|---|
| 将项目 README 直接转化为 skill | 生成的是文档而非可执行流程 | 提炼可操作的步骤和决策点 |
| 忽略项目中的错误处理逻辑 | skill 只讲 happy path,缺少健壮性 | 包含错误案例和异常处理 |
常见坑点类型:
- 提炼偏差 — 把项目介绍当成 skill 流程
- 触发模糊 — description 不清晰导致无法识别
- 目录错误 — 在错误位置创建 skill 文件
- 验证缺失 — 生成后不验证可执行性
- 模式遗漏 — 只读了索引没深入源码,错过关键模式
成功标准检查清单
辅助SKILL
/using-superpowers
/skill-creator
调用 skill-creator(可选)
生成 skill 后,可选调用 skill-creator 进行: