Skill ⑧:模板提取(template-extract)
从现有项目的成熟页面提取领域模板,沉淀到 .github/skills/core/page-codegen/templates/domains/,扩充团队 AI 模板库。
核心理念:模板贡献门槛极低 — 开发者只需说出一个页面目录路径,AI 完成 90% 的分析和写作。
触发关键词
提取模板 / 抽取模板 / 沉淀模板 / 模板贡献 / template-extract / 封装模板
执行流程
步骤 1:开发者指定目标
开发者提供一个目录路径:
"提取模板,目标页:src/views/produce/sjgl/mmwr-rolling-management/"步骤 2:AI 读取目标页 4 文件
✅ 读取 {target}/index.vue
✅ 读取 {target}/data.ts
✅ 读取 {target}/index.scss
✅ 读取 {target}/api.md(如存在)步骤 3:AI 自动识别交互模式
输出识别结论:
🔍 识别结果
- 页面包含:2 个 BaseTable / 1 个内联 BaseForm / 4 个操作按钮
- 交互模式:双清单联动 + 内联表单 + 条件按钮
- 与已有 TPL 对比:
✅ 接近 TPL-OPERATION-STATION(domains/produce/)
❌ 不符合 TPL-LIST / TPL-MASTER-DETAIL / TPL-RECORD-FORM
- 结论建议:本页面已有相似模板,可能是 TPL-OPERATION-STATION 的变体,
建议考虑增强现有模板而非新建。
(或:本页面是独立新模式,建议提取为 TPL-XXX)步骤 4:AI 问答确认(最多 4 个问题)
❓ 问题 1:领域归属?
选项:A. produce(生产) B. sale(销售) C. 其他(请说明)
❓ 问题 2:建议的模板命名?
AI 建议:TPL-{XXX-XXX}
如不满意请提出替代
❓ 问题 3:是否有需要脱敏/抽象的业务特定内容?
- 业务字段名(建议保留作为占位符 [字段名])
- 业务接口路径(建议改为 [服务缩写]/[资源名]/{action} 占位)
- 硬编码字典码(建议改为占位符或注释说明)
❓ 问题 4:是否合并到已有模板?(仅当识别为相似模板时才问)
选项:A. 增强现有模板(追加章节) B. 提取为独立新模板步骤 5:生成 TPL 文件
必须包含:
- 适用场景说明
- 识别规则(5 条以内)
- 完整 index.vue / data.ts / index.scss 代码(脱敏后)
- 注意事项
步骤 6:写入并注册
✅ 写入 templates/domains/{domain}/TPL-{NAME}.md
✅ 更新 templates/_index.md(追加注册条目)步骤 7:输出后续步骤
📦 模板提取完成
────────────────────────────────────────────────
✅ 已生成 templates/domains/{domain}/TPL-{NAME}.md
✅ 已更新 templates/_index.md 注册表
────────────────────────────────────────────────
📌 后续步骤:
1. 人工 review 模板内容(脱敏完整性 / 占位符正确性)
2. 提交:git cz → feat(template): 新增领域模板 TPL-{NAME}
3. PR 评审 → CHENY 合入
────────────────────────────────────────────────提取质量校验(AI 自检)
生成 TPL 文件后,AI 必须自检:
- [ ] 业务字段名已替换为
[字段名]/[资源名]占位符 - [ ] API 路径已替换为
/[服务缩写]/[资源名]/{action}格式 - [ ] 没有遗留具体的字典码 / 状态值(已注释说明用途)
- [ ] 代码符合 standards/02、13(结构 + 组件合规)
- [ ] 包含识别规则(让 AI 未来能匹配此模板)
边界情况
| 情况 | 处理 |
|---|---|
| 目标页代码不符合 standards/ 规范 | 拒绝提取,输出审计建议("目标页本身不合规,建议先整改") |
| 目标页过于业务特化,无法抽象 | 反问开发者:"此页面业务耦合较深,提取后通用性差,是否继续?" |
| 已有 TPL 高度重合 | 优先建议增强现有模板,不建议新建 |
| 开发者指定的命名不符合规范 | 给出建议命名,请开发者确认 |
与其他 Skill 的关系
| Skill | 关系 |
|---|---|
| convention-audit | 目标页必须先通过审计(合规)才可提取 |
| page-codegen | 提取后的模板会被 page-codegen 引用 |
| code-fix | 如目标页有偏差,建议先 code-fix 整改再提取 |
