yy-create-template-project

star 2

从用户提供的现有项目中提炼脱敏、可复用的模板项目,或优化完善已有模板项目。 当用户需要生成、整理、补齐或优化模板项目时触发,不用于直接创建业务项目、迁移成熟系统或复制含敏感数据的完整项目。

bulls-cows By bulls-cows schedule Updated 6/7/2026

name: yy-create-template-project description: > 从用户提供的现有项目中提炼脱敏、可复用的模板项目,或优化完善已有模板项目。 当用户需要生成、整理、补齐或优化模板项目时触发,不用于直接创建业务项目、迁移成熟系统或复制含敏感数据的完整项目。

yy-create-template-project

描述

根据用户给定的现有项目,分析其目录结构、配置、入口、测试、文档和运行约束,提炼出脱敏、自包含、可复用的模板项目。

也可以分析已有模板项目,补齐缺失的配置、说明、示例、测试和脱敏边界,使其更适合作为可复制的项目骨架。

使用场景

  • 用户提供一个已有项目,希望总结并生成可复用模板项目
  • 用户提供一个已有模板项目,希望优化结构、配置、说明、示例或验证流程
  • 用户需要从项目中抽离通用骨架、配置基线、示例源码和验证命令
  • 用户需要检查模板项目是否完整、脱敏、自包含且可复用
  • 用户需要补齐空白或轻量模板项目的 README、环境变量示例、测试样例或资源占位

不应触发:

  • 用户只是要创建一个普通业务项目
  • 用户只是要更新技能说明文字,不涉及模板项目本身
  • 用户要求迁移、重构或修复成熟项目本身
  • 用户要求完整复制包含真实业务数据、密钥、日志或运行产物的项目
  • 用户只需要单个代码片段、配置片段或项目结构建议

指令

步骤 1. 确认任务边界与最小输入

先确认本次任务是从现有项目提炼模板,而不是直接创建业务项目。

至少收集以下信息:

  • 源项目路径
  • 模板输出目录
  • 模板项目名称
  • 模板类型和技术栈边界
  • 本次是新建模板还是优化已有模板
  • 是否允许覆盖或补齐已有模板目录
  • 用户希望保留的验证命令
  • 明确需要排除的敏感数据、业务样例和私有资源

决策分支

  • 源项目路径、输出目录和模板名称都已明确:直接进入项目分析
  • 用户提供的是已有模板项目:把该模板作为源项目和输出对象,先分析缺口,再按授权范围优化完善
  • 只缺少少量必要信息:只追问缺失项,不重复确认已明确内容
  • 输出目录已有内容但覆盖策略不明:先确认新建、补齐或覆盖范围,不默认覆盖、删除或清空已有文件
  • 用户要求完整复制真实项目:说明本技能只生成脱敏模板,必须先收敛为可公开复用的骨架和示例

步骤 2. 分析源项目与约束来源

读取源项目的最小必要上下文,建立模板提炼依据。

优先分析以下内容:

  • 项目说明、代理规范和编辑器配置
  • 包管理、构建、测试、格式化和类型检查配置
  • 入口文件、路由或命令行入口
  • 源码分层、公共工具、类型定义和示例页面或示例流程
  • 测试目录、测试命令和最小可验证样例
  • 环境变量示例、资源目录和 README 使用说明
  • .gitignore 文件及其忽略规则完整性

决策分支

  • 存在项目规范文件:优先遵守源项目规范中与模板提炼直接相关的语言、路径、格式和验证要求
  • 存在多个入口或多个应用:只提炼与模板类型直接相关的入口,不把整个 monorepo 全量复制为模板
  • 源项目缺少 README 或测试:根据现有配置和入口生成最小模板说明或最小验证建议,并明确这是模板补齐内容
  • 发现真实密钥、私有路径或敏感样例:停止复制该内容,将其改写为占位符或排除,并在交付结果中说明处理方式
  • 源项目存在 .gitignore:检查是否覆盖依赖产物、构建产物、IDE 配置、环境变量、日志和缓存等标准忽略规则
  • 源项目缺少 .gitignore:根据技术栈在后续步骤中生成标准忽略规则

步骤 3. 归纳模板骨架与保留范围

把源项目内容分为保留、改写、删除和待确认四类,再决定模板项目的最小闭环。

推荐保留:

  • 通用配置文件、编辑器配置、格式化配置
  • .gitignore 文件(需脱敏私有路径)
  • 包管理配置、构建配置、类型检查配置和测试配置
  • 最小入口、示例页面、示例流水线或示例命令
  • 可复用工具、类型定义、状态结构和测试样例
  • README、环境变量示例和资源占位文件

必须改写:

  • 项目名称、包名、命令名、模块名和示例输出名
  • 真实业务字段、客户名称、设备名称、内部系统名称和业务路径
  • 真实环境变量值、真实文件路径、真实接口地址和真实账号信息
  • 不可泛化的业务流程说明,改写为中性示例流程
  • .gitignore 中的私有路径、业务特定忽略规则

必须删除:

  • 依赖安装产物、缓存、构建产物、测试覆盖率产物和日志
  • .env、私钥、证书、令牌、账号、Cookie 和真实配置
  • 真实业务数据、运行样例、二进制产物、大体积媒体和临时文件
  • 与模板类型无关的成熟业务模块、历史迁移文件和私有集成代码

必须补齐(当源项目缺失时):

  • .gitignore 文件:根据技术栈生成标准忽略规则,覆盖依赖产物、构建产物、IDE 配置、环境变量、日志和缓存

待确认:

  • 锁文件是否保留
  • 大型静态资源是否替换为占位文件
  • 复杂测试是否降级为最小样例测试
  • 是否把多应用结构压缩为单一模板入口

步骤 4. 确认方案与计划

在写入、覆盖、删除或生成模板文件前,必须先确认方案方向与实施计划。

决策分支

  • 用户明确要求直接执行,且源项目路径、输出目录、模板名称、生成模式、覆盖范围和脱敏边界都已明确:展示方案方向或计划后,可在同一轮继续后续步骤,无需额外等待确认
  • 信息仍不完整,或用户未授权直接执行:先确认方案与计划,收到用户确认后才可继续写入、覆盖、删除或生成模板文件
  • 当前环境可用 yy-mode-plan 且需要用户确认:优先使用该技能创建方案方向和计划,并等待用户确认
  • 当前环境不可用 yy-mode-plan,或当前分支无需等待确认:使用以下本地最小确认流程
    • 方向不明确时:先展示方案方向,等用户确认方向正确后,再展示计划
    • 方向明确时:直接展示计划
    • 展示计划后,如当前分支需要确认,则必须等用户确认才可继续后续步骤
    • 展示方案方向时,至少包含以下内容:
      • 目标:一句话说明将要完成的模板提炼或优化内容
      • 方法:高层策略,说明如何抽取、脱敏、补齐或对齐模板
      • 涉及范围:将要创建或修改的模板目录、关键文件、辅助资源或文档
      • 待确认点:仍需用户决策的关键选择,如覆盖范围、锁文件、资源占位或验证命令
    • 方案方向结尾在需要确认时,必须明确提示用户确认方向是否正确,或提出调整意见

计划中至少说明源项目路径、模板输出目录、模板名称、生成模式、保留范围、改写范围、删除或排除范围、待确认项、验证方式和影响范围。

步骤 5. 生成脱敏模板项目

在用户授权的输出目录中生成模板项目,并保持目录结构自包含。

决策分支

  • 输出目录不存在或为空目录:按新建模板模式生成完整骨架
  • 输出目录已有模板且用户要求补齐:只新增缺失文件,或只修改与本次模板目标直接相关的文件
  • 输出目录已有模板且用户明确授权覆盖:先列出将被覆盖的关键文件,再按授权范围写入
  • 输出目录已有未知业务文件:暂停写入,要求用户确认处理范围

生成时遵守以下规则:

  • 使用源项目的稳定结构作为基础,不重写为另一套无关技术栈
  • 保持配置、入口、源码、测试、文档和资源占位之间的闭环
  • 将真实业务实现替换为中性示例,不保留私有业务依赖
  • 保留最小可运行或最小可验证路径
  • 如果用户明确要求输出到指定目录,只需保证该目录中的模板项目自包含、脱敏且可复用

.gitignore 生成规则

  • 源项目有完整 .gitignore:保留并脱敏,移除私有路径和业务特定规则
  • 源项目有不完整的 .gitignore:补齐缺失的标准忽略规则
  • 源项目没有 .gitignore:根据技术栈生成,标准忽略规则应包含:
    • 依赖产物(node_modules、vendor、.venv 等)
    • 构建产物(dist、build、out、.next 等)
    • 环境变量(.env、.env.local、.env.*.local)
    • IDE/编辑器配置(.idea、.vscode、*.swp 等)
    • 日志和缓存(*.log、.cache、.tmp 等)
    • 操作系统文件(.DS_Store、Thumbs.db 等)
    • 测试覆盖率产物(coverage、.nyc_output 等)

步骤 6. 补齐 lint 支持与命令

在模板项目生成或优化完成后,检测当前环境是否可用 yy-enable-lint 技能,并在可用时触发该技能补齐 lint 相关配置和命令。

决策分支

  • 当前环境可用 yy-enable-lint:在模板项目目录触发 yy-enable-lint,要求其按模板项目的技术栈补齐可通过 npm run lint 执行的 lint 支持,并保持模板项目自包含
  • 当前环境不可用 yy-enable-lint:不阻塞模板生成,按源项目现有配置和模板最小闭环保留或补充 lint 建议命令
  • 用户明确要求不补齐 lint 支持:跳过 yy-enable-lint,仅在交付结果中说明未补齐原因
  • yy-enable-lint 执行失败:只修复与模板项目 lint 配置直接相关的问题;若失败原因来自外部环境、依赖安装或源项目原有问题,记录失败原因和建议命令,不扩大处理范围

触发 yy-enable-lint 时必须说明这是模板项目,避免引入真实业务规则、私有路径或非模板必要依赖。

步骤 7. 补充模板说明与使用约定

为模板项目补充或更新 README,使后续使用者能在最少上下文下理解模板。

决策分支

  • 当前环境已安装 yy-create-readme:优先调用该技能在模板项目目录生成或更新 README.md,并在调用时补充说明这是模板项目,需要覆盖下文列出的最小要点
  • 当前环境未安装 yy-create-readme:使用本地最小回退规则手动生成或更新 README.md,不阻塞模板生成
  • 用户明确要求不使用 yy-create-readme:直接使用本地最小回退规则

本地最小回退规则下,README 至少说明:

  • 模板定位
  • 技术栈和运行环境
  • 关键目录职责
  • 安装、运行、测试、构建或打包命令
  • 环境变量示例和资源占位说明
  • 可定制项说明

无论使用哪种方式,如果模板输出到现有仓库的子目录,还应在 README 中说明该目录是模板项目,不是当前仓库的业务项目。

步骤 8. 验证模板质量

先执行静态验收,再根据用户授权决定是否运行命令。

静态验收必须检查:

  • 模板目录不包含安装产物、缓存、构建产物、日志和真实运行数据
  • 模板目录不包含 .env、密钥、令牌、证书、真实账号和真实接口地址
  • 项目名称、包名、命令名和 README 已替换为模板名称
  • 入口、配置、测试和 README 指向同一套运行方式
  • 如已触发 yy-enable-lint,lint 相关命令、README 和包管理配置指向同一套执行方式
  • 环境变量只保留示例名和占位值
  • 路径使用相对路径,避免保留源项目的私有绝对路径
  • .gitignore 存在且覆盖标准忽略规则,不包含私有路径或业务特定规则

决策分支

  • 用户明确授权安装或验证:在模板项目目录执行用户指定或 README 中声明的验证命令
  • 用户未授权执行耗时命令:不主动安装依赖、构建、测试或联网,只在交付结果中给出建议命令
  • 验证失败:只修复与本次模板生成直接相关的问题,不处理源项目原有无关问题
  • 无法完全验证:明确说明未验证项、原因和建议用户执行的命令

步骤 9. 输出结果

输出以下内容:

  1. 生成结果:说明源项目、模板名称、输出目录和生成模式
  2. 修改原因和影响范围:说明为什么这样提炼,以及影响到哪些目录或文件
  3. 目录结构:列出模板项目的关键目录和文件
  4. 脱敏与过滤摘要:说明已排除、改写、占位或待确认的内容
  5. 模板使用说明:说明模板项目的结构、运行方式、验证方式和可定制边界
  6. lint 补齐状态:说明是否检测并触发 yy-enable-lint,以及补齐或跳过原因
  7. 验证状态:说明已执行的检查和命令;如未执行,说明建议命令
  8. 用户影响:说明该模板生成后,后续技能或脚手架会如何复用它

安全边界

  • 不修改源项目,除非用户明确要求并授权具体文件
  • 不默认覆盖、删除或清空已有模板目录
  • 未完成步骤 4 的确认流程前,不写入、覆盖、删除或生成模板文件,除非用户明确要求直接执行且边界已充分明确
  • 不复制真实 .env、密钥、令牌、证书、Cookie、账号或私有配置
  • 不复制真实业务数据、日志、运行产物、缓存、依赖安装产物或大体积二进制资源
  • 不默认执行安装、构建、测试、打包、部署、发布、网络请求或外部程序调用
  • 不手动修改技能市场配置文件或其他派生索引文件
  • 不把源项目的私有业务术语、客户信息、设备信息、接口地址或内部系统路径保留到模板中

相关资源

无内置辅助资源。执行时以用户提供的源项目、已有模板项目和目标输出目录为依据。

Install via CLI
npx skills add https://github.com/bulls-cows/skills --skill yy-create-template-project
Repository Details
star Stars 2
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator