306 lines
16 KiB
Markdown
306 lines
16 KiB
Markdown
# Skill 迁移计划
|
||
|
||
## 1. 目标
|
||
|
||
将两个本地来源中的通用能力整理为 CraftKit Skill。迁移结果必须适用于 Codex 插件市场,并与来源项目的品牌、内部框架、业务知识和运行环境解耦。
|
||
|
||
迁移不追求来源 Skill 与目标 Skill 一一对应。重复能力应合并;公司专属实现不得迁移,但应优先将其解决的通用问题重建为中性平替,确无独立价值或无法安全替代时才排除。目标数量以职责清晰和实际复用价值为准。
|
||
|
||
## 2. 迁移路径
|
||
|
||
```text
|
||
来源发现
|
||
→ 风险分类
|
||
→ 重复能力合并
|
||
→ 中性能力规格
|
||
→ 独立实现
|
||
→ 行为验证
|
||
→ 敏感内容扫描
|
||
→ Codex 与插件校验
|
||
→ 更新迁移状态
|
||
```
|
||
|
||
禁止采用“完整复制来源目录后批量替换名称”的方式。中性能力规格形成后,目标实现应基于该规格、当前 Codex 能力和公开资料完成。
|
||
|
||
## 3. 状态模型
|
||
|
||
| 状态 | 含义 | 进入条件 |
|
||
| --- | --- | --- |
|
||
| `pending` | 待评估 | 已发现来源 Skill |
|
||
| `specified` | 已完成中性规格 | 已明确目标、边界、依赖和排除内容 |
|
||
| `rewriting` | 独立实现中 | 已创建目标 Skill |
|
||
| `review` | 待复核 | 功能完成,但版权、依赖或行为仍需确认 |
|
||
| `migrated` | 已迁移 | 全部门禁通过 |
|
||
| `excluded` | 不迁移 | 公司专属或没有独立价值 |
|
||
| `superseded` | 已合并 | 能力已由另一个目标 Skill 覆盖 |
|
||
|
||
## 4. 迁移批次
|
||
|
||
迁移分为“特殊样本”和“同质批量”两个阶段。前者用于覆盖迁移机制的不同风险类型,后者在规则稳定后提高吞吐量。批次数量不固定:特殊样本原则上逐个迁移,批量阶段每批建议 6~12 个同质 Skill。
|
||
|
||
### 第 0 批:迁移基础设施
|
||
|
||
第 0 批属于仓库内部维护工具,不发布为市场 Skill:
|
||
|
||
1. `migration/scripts/scan_sources.py`:只读发现来源 Skill、辅助资源和文件哈希。
|
||
2. `AGENTS.md` 迁移工作流:完成分类、目标设计和用户确认。
|
||
3. `migration/scripts/check_skill.py`:检查结构、引用、占位符、敏感内容和凭据风险。
|
||
4. `migration/scripts/update_lock.py`:预览或更新来源指纹和迁移状态。
|
||
|
||
完成门槛:能够对全部来源 Skill 生成稳定清单,并在不复制来源内容的情况下更新状态。
|
||
|
||
### 第 1 阶段:特殊样本
|
||
|
||
特殊样本不追求模块连续性,而是覆盖不同迁移机制:
|
||
|
||
1. `doc/format-md`:纯指令型样本,已完成。
|
||
2. `doc/docx-to-md`:多来源合并、脚本、依赖和生成物样本,已完成。
|
||
3. `git/commit-msg`:只读 Git 状态分析样本,已完成。
|
||
4. `git/branch`:修改仓库状态和二次授权边界样本,已完成。
|
||
5. `knowledge/handoff`:模板化文档与项目上下文样本,已完成。
|
||
6. `skill/guidance`:大型参考资料、索引和渐进式加载样本,已完成;只检索项目资料和基于公开一级资料独立重建的中性公共基线。
|
||
7. `knowledge/init`:成熟项目与空项目双模式初始化、参考项目提炼和共享/本地信息边界样本,已完成。
|
||
8. `skill/migrate`:不迁移。来源能力用于把 Claude Code Skill 转换为 Codex Skill;CraftKit 自始按 Codex 规范开发,不存在平台转换需求。来源扫描、目标检查和状态追踪继续由 `migration/scripts/` 作为仓库维护设施承担。
|
||
|
||
完成门槛:适用样本均通过对应验证,不适用样本记录排除依据,并形成可复用的命名、目录、独立实现、测试、扫描和状态同步规则。出现未覆盖的新结构或权限类型时,应补充样本,不直接扩批。当前特殊样本阶段已完成,可以进入同质批量迁移。
|
||
|
||
### 第 2 阶段:同质批量迁移
|
||
|
||
特殊样本完成后,按同一插件、相近能力和相同风险类型组织批量迁移:
|
||
|
||
- 每批建议 6~12 个 Skill,高度同质时可以整组处理。
|
||
- 不把只读能力与有副作用能力、纯指令与复杂脚本、普通迁移与公开资料重建强行合为一批。
|
||
- 每批仍需迁移前确认和提交前确认,并统一更新 README、迁移计划和来源状态。
|
||
- 任一验收门禁失败时暂停该批,不继续扩大范围。
|
||
|
||
### 文档转换批次
|
||
|
||
所属插件:`doc`
|
||
|
||
1. `docx-to-md`
|
||
2. `md-to-docx`(已完成)
|
||
3. `xlsx-to-md`(已完成)
|
||
4. `archive`(已完成,以可配置规则平替固定目录、业务文件名、专有章节拆分和内部系统校验)
|
||
|
||
重点验证图片、表格、合并单元格、编码、覆盖策略和路径安全。脚本及测试数据必须独立创建。
|
||
|
||
### Git 工作流批次
|
||
|
||
所属插件:`git`
|
||
|
||
1. `branch`(已完成)
|
||
2. `identity`(已完成,只管理 Git 提交用户名和邮箱)
|
||
3. `export`(已完成,环境配置默认排除,规范明确要求并再次确认后才可导出)
|
||
4. `integrate`(已完成,按项目规范通过隔离 worktree 评估、准备和发布预集成分支)
|
||
|
||
`commit-msg` 将作为只读 Git 特殊样本先行完成。涉及提交、合并和远端操作的 Skill 必须保留明确授权边界,并保护脏工作区。
|
||
|
||
### 知识管理批次
|
||
|
||
所属插件:`knowledge`
|
||
|
||
1. `trace`(已完成)
|
||
2. `distill`(已完成)
|
||
3. `lessons`(已完成,合并初始化、维护、审计和提升)
|
||
4. `worklog`(已完成)
|
||
5. `init`(已完成)
|
||
|
||
来源中与经验初始化、提升和回扫相关的多个能力统一合并为 `maintain-lessons`,通过模式区分具体工作。
|
||
|
||
### 开发主流程批次
|
||
|
||
所属插件:`dev`
|
||
|
||
```text
|
||
plan-change
|
||
├─ design-backend → implement-backend → test-backend
|
||
└─ design-frontend → implement-frontend → test-ui
|
||
↓
|
||
review-code
|
||
```
|
||
|
||
建议顺序:
|
||
|
||
1. `plan-change`(已完成)
|
||
2. `design-backend`(已完成)
|
||
3. `design-frontend`(已完成)
|
||
4. `prepare-api`(已完成)
|
||
5. `implement-backend`(已完成)
|
||
6. `implement-frontend`(已完成)
|
||
7. `review-code`(已完成)
|
||
8. `test-backend`(已完成)
|
||
9. `test-ui`(已完成)
|
||
10. `analyze-bugs`(已完成)
|
||
|
||
多个来源中的代码检查、代码审查能力合并为 `review-code`,通过工作区、提交和分支三种模式覆盖。
|
||
|
||
### 项目规范与前端辅助批次
|
||
|
||
1. `dev/component`(已完成,基于项目证据完成组件选型与契约查证)
|
||
2. `dev/style`(已完成,基于项目视觉基线设计样式)
|
||
3. `dev/form`(已完成,设计表单结构、响应布局和可访问性)
|
||
4. `skill/guidance`(特殊样本已完成)
|
||
5. `skill/guidance-edit`(已完成,建立、检查和维护项目规范索引)
|
||
|
||
这里只实现读取和维护“当前项目自身规范”的机制,不随 CraftKit 提供任何来源项目规范。
|
||
原前端导航能力由上述 Skill 的精确触发描述和 Codex 自动发现替代,不再维护独立路由 Skill。混合任务按 `style` → `component` → `form` → 前端设计或实现的依赖顺序处理。
|
||
|
||
### 基于公开资料重建批次
|
||
|
||
以下能力不从来源文本改写,而是根据官方资料重新设计:
|
||
|
||
1. `dev/design-api`(已完成)
|
||
2. `dev/design-db`(已完成)
|
||
3. `dev/review-java`(已完成)
|
||
4. `dev/review-frontend`(已完成)
|
||
5. `dev/design-frontend-data`(已完成)
|
||
6. `dev/review-mybatis`(已完成)
|
||
7. `dev/design-workflow`(已完成)
|
||
|
||
中性规格必须记录所采用的公开标准、官方文档和许可证信息。
|
||
|
||
### 平替或排除结果
|
||
|
||
- 公司框架知识与专属规范由 `skill/guidance`、项目源码和 `.craftkit/standards/` 平替。
|
||
- 内部组件契约、审批规则和消息格式不迁移,目标 Skill 只读取项目证据和用户输入。
|
||
- 升级、估算与发布已重建为通用能力,不携带内部版本矩阵和仓库流程。
|
||
- 浏览器代理配置由 Codex 浏览器或计算机操作能力平替。
|
||
- Skill 路由依靠精确触发描述和 Codex 自动发现,不增加独立路由器。
|
||
- 非 Codex 平台转换能力保持排除。
|
||
|
||
### 剩余迁移波次
|
||
|
||
截至 2026-08-26,原有 29 个 `pending` 来源已在一个连续波次内全部处理完成。所有来源均已闭合为 `migrated`、`superseded` 或 `excluded`;本波次完成验证后统一等待本地提交确认。
|
||
|
||
#### 阶段 1:公开基线与专项设计
|
||
|
||
| 来源能力 | 目标 Skill | 处理方式 |
|
||
| --- | --- | --- |
|
||
| API 约定 | `dev/design-api` | 基于 HTTP、OpenAPI 等官方资料独立重建 |
|
||
| 数据库约定 | `dev/design-db` | 基于目标数据库官方资料和项目证据独立重建 |
|
||
| Java 约定 | `dev/review-java` | 基于 Java 与所用框架对应版本官方资料独立重建 |
|
||
| 前端约定 | `dev/review-frontend` | 基于当前框架版本官方资料独立重建 |
|
||
| 前端数据约定 | `dev/design-frontend-data` | 建立请求、状态与视图模型的通用设计边界 |
|
||
| MyBatis 约定 | `dev/review-mybatis` | 基于 MyBatis 官方资料独立重建 |
|
||
| 工作流约定 | `dev/design-workflow` | 以项目工作流契约和用户输入平替内部审批规则 |
|
||
|
||
公开资料只采用一级官方来源,记录适用版本、重建日期和许可证或引用边界;不得改写来源规范正文。
|
||
|
||
#### 阶段 2:代码实现
|
||
|
||
| 来源 Skill | 目标 Skill | 状态关系 |
|
||
| --- | --- | --- |
|
||
| `back-code`、同类后端编码来源 | `dev/implement-backend` | 两个来源合并,一个迁移、一个 `superseded` |
|
||
| `front-code`、同类前端编码来源 | `dev/implement-frontend` | 两个来源合并,一个迁移、一个 `superseded` |
|
||
|
||
实现 Skill 直接修改业务源码,必须保护脏工作区、使用项目真实版本与规范、执行风险相称的验证,且不自动提交或推送。
|
||
|
||
#### 阶段 3:审查、测试与问题分析
|
||
|
||
| 来源能力 | 目标 Skill | 处理方式 |
|
||
| --- | --- | --- |
|
||
| 两套代码检查与一套代码审查 | `dev/review-code` | 合并为工作区、提交和分支审查模式 |
|
||
| 后端单元测试 | `dev/test-backend` | 按当前测试框架和项目模式生成或修改测试 |
|
||
| UI 测试 | `dev/test-ui` | 按用户可观察行为设计并执行浏览器测试 |
|
||
| Bug 列表分析 | `dev/analyze-bugs` | 解析通用结构化问题清单并形成证据化报告 |
|
||
|
||
本阶段不得把静态检查、单元测试、浏览器测试和真实环境验收混为同一结论。
|
||
|
||
#### 阶段 4:交付、升级与估算
|
||
|
||
| 来源能力 | 目标 Skill 或处理结果 | 处理方式 |
|
||
| --- | --- | --- |
|
||
| 后端升级、前端升级 | `dev/upgrade` | 合并为基于源版本、目标版本和官方迁移资料的通用升级流程 |
|
||
| 版本发布 | `git/release` | 只准备版本、变更摘要、标签和发布检查;远端动作单独授权 |
|
||
| 工作量评估 | `dev/estimate` | 基于范围、依赖、风险和假设输出区间估算 |
|
||
| 框架约定 | `skill/guidance` | `superseded`,内部规则由项目 `.craftkit/standards/` 提供 |
|
||
| 框架知识查询 | `skill/guidance` | `superseded`,改为检索项目证据和公开官方资料 |
|
||
|
||
#### 阶段 5:写作与平台工具收尾
|
||
|
||
| 来源能力 | 目标 Skill 或处理结果 | 处理方式 |
|
||
| --- | --- | --- |
|
||
| 领导汇报 | `doc/report` | 中性化为面向不同受众的事实型工作汇报 |
|
||
| 消息模板 | `doc/message` | 中性化为项目消息与通知草稿 |
|
||
| 技术内容转需求 | `doc/requirements` | 将技术输入转换为可确认的需求说明 |
|
||
| 能力创建器 | 官方 `skill-creator` | `superseded`,不重复发布同类 CraftKit Skill |
|
||
| 浏览器代理配置 | Codex 浏览器或计算机操作能力 | `superseded`,不迁移宿主专属代理配置 |
|
||
| Skill 转 Cursor | 无 | `excluded`,CraftKit 只面向 Codex |
|
||
|
||
#### 波次总门禁
|
||
|
||
1. 29 个来源全部更新为 `migrated`、`superseded` 或 `excluded`,不得遗留 `pending`。
|
||
2. 所有目标 Skill 通过结构、引用、敏感内容和真实请求边界测试。
|
||
3. 公开基线记录官方来源、适用版本和重建边界。
|
||
4. 有脚本的 Skill 完成隔离行为测试;有外部工具的 Skill 明确权限和未验证边界。
|
||
5. README、插件版本、迁移计划和来源锁同步一致。
|
||
6. 全量测试、JSON 校验和 `git diff --check` 通过。
|
||
7. 波次完成后只展示提交方案,不创建提交;用户统一确认后按逻辑范围创建本地提交。
|
||
|
||
## 5. 合并原则
|
||
|
||
来源数量不等于目标数量。优先执行以下合并:
|
||
|
||
| 来源能力类型 | 目标 Skill |
|
||
| --- | --- |
|
||
| 代码检查、提交审查、分支审查 | `review-code` |
|
||
| 多套开发计划 | `plan-change` |
|
||
| 多套后端设计 | `design-backend` |
|
||
| 多套前端设计 | `design-frontend` |
|
||
| 多套后端实现 | `implement-backend` |
|
||
| 多套前端实现 | `implement-frontend` |
|
||
| 多套 Word 转 Markdown | `docx-to-md` |
|
||
| 经验初始化、提升、回扫 | `maintain-lessons` |
|
||
| 规范检索和索引维护 | `guidance`、`guidance-edit` |
|
||
|
||
目标 Skill 总量不设硬指标,预期控制在约 30 个,避免细碎能力和重复触发。
|
||
|
||
## 6. 单个 Skill 的迁移步骤
|
||
|
||
1. 记录来源相对路径、提交和 SHA-256。
|
||
2. 判断该能力是迁移、合并、重建还是排除。
|
||
3. 只提炼目标、输入、输出、关键边界和真实用例,形成中性规格。
|
||
4. 确定目标插件和简短 Skill 名称。
|
||
5. 基于中性规格和公开资料独立实现。
|
||
6. 对脚本执行单元或行为测试,对文档型 Skill 执行真实请求测试。
|
||
7. 扫描敏感内容、来源残留、无效工具名和宿主绑定表达。
|
||
8. 运行 Skill 与插件校验。
|
||
9. 将状态更新为 `migrated`,记录目标路径、目标版本和复核日期。
|
||
10. 展示迁移结果、验证证据、待提交文件和建议提交信息,等待用户再次确认。
|
||
11. 用户确认后精确暂存本批文件并创建本地提交;推送和发布仍需独立授权。
|
||
|
||
## 7. 每批验收门禁
|
||
|
||
- Skill 名称简洁,目录名与 frontmatter 一致。
|
||
- `description` 能准确触发,不是大而全的能力描述。
|
||
- 不存在来源正文、脚本、模板、示例或独特结构的直接复制。
|
||
- 公司标识、内部域名、包名、路径和人员信息扫描为零。
|
||
- 所有引用文件存在,脚本和生成物经过实际验证。
|
||
- Skill 校验和所属插件校验通过。
|
||
- 至少一个真实请求用例通过。
|
||
- `source-lock.json` 已更新。
|
||
|
||
任一门禁未通过时,不进入下一批的大规模迁移。
|
||
|
||
## 8. 当前执行顺序
|
||
|
||
- [x] 扩展 `source-lock.json` 的 Skill 级记录结构。
|
||
- [x] 实现来源只读扫描脚本。
|
||
- [x] 在 `AGENTS.md` 中固化分类、设计和确认流程。
|
||
- [x] 实现 Skill 与敏感内容检查脚本。
|
||
- [x] 实现迁移台账预览和更新脚本。
|
||
- [x] 迁移并验证首个样板 `doc/format-md`。
|
||
- [x] 迁移并验证脚本型特殊样本 `doc/docx-to-md`。
|
||
- [x] 迁移并验证只读 Git 特殊样本 `git/commit-msg`。
|
||
- [x] 迁移并验证有副作用 Git 特殊样本 `git/branch`。
|
||
- [x] 迁移并验证模板化交接特殊样本 `knowledge/handoff`。
|
||
- [x] 完成其余特殊样本并总结批量迁移规则。
|
||
- [ ] 按插件和风险类型继续推进同质批量迁移。
|
||
- [x] 完成首个同质批量:`md-to-docx`、`xlsx-to-md`、`archive`。
|
||
- [x] 完成 Git 本地操作批次:`identity`、`export`。
|
||
- [x] 完成 Git 高风险隔离集成样本:`integrate`。
|
||
- [x] 完成知识管理批次:`trace`、`distill`、`lessons`、`worklog`。
|
||
- [x] 完成前端辅助批次:`component`、`style`、`form`,并以精确触发替代独立路由。
|
||
- [x] 完成项目规范维护能力:`guidance-edit`。
|
||
- [x] 完成开发分析与设计批次:`plan-change`、`design-backend`、`design-frontend`、`prepare-api`。
|