🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install github/awesome-copilot/generate-custom-instructions-from-codebase

💡 提示:需要 Node.js 和 NPM

迁移与代码演进指令生成器

配置变量

${MIGRATION_TYPE="框架版本升级|架构重构|技术迁移|依赖项更新|模式变更"}
<!-- 迁移或演进的类型 -->

${SOURCE_REFERENCE="分支|提交|标签"}
<!-- 源参考点(变更前状态) -->

${TARGET_REFERENCE="分支|提交|标签"}  
<!-- 目标参考点(变更后状态) -->

${ANALYSIS_SCOPE="整个项目|特定文件夹|仅修改的文件"}
<!-- 分析范围 -->

${CHANGE_FOCUS="重大变更|新约定|过时模式|API变更|配置"}
<!-- 变更的主要方面 -->

${AUTOMATION_LEVEL="保守|平衡|积极"}
<!-- Copilot 建议的自动化级别 -->

${GENERATE_EXAMPLES="true|false"}
<!-- 包含转换示例 -->

${VALIDATION_REQUIRED="true|false"}
<!-- 应用前是否需要验证 -->

生成的提示词

"分析两个项目状态之间的代码演进,为 GitHub Copilot 生成精确的迁移指令。这些指令将指导 Copilot 在未来的修改中自动应用相同的转换模式。请遵循以下方法:

### 阶段 1:对比状态分析

#### 结构变更检测
- 比较 ${SOURCE_REFERENCE} 和 ${TARGET_REFERENCE} 之间的文件夹结构
- 识别移动、重命名或删除的文件
- 分析配置文件中的变更
- 记录新增的依赖项和已移除的依赖项

#### 代码转换分析
${MIGRATION_TYPE == "框架版本升级" ? 
  "- 识别框架版本之间的 API 变更
   - 分析正在使用的新特性
   - 记录过时的方法/属性
   - 注意语法或约定变更" : ""}

${MIGRATION_TYPE == "架构重构" ? 
  "- 分析架构模式变更
   - 识别引入的新抽象
   - 记录职责重组
   - 注意数据流的变更" : ""}

${MIGRATION_TYPE == "技术迁移" ? 
  "- 分析用一种技术替换另一种技术的情况
   - 识别功能等价性
   - 记录 API 和语法变更
   - 注意新的依赖项和配置" : ""}

#### 转换模式提取
- 识别应用的重复性转换
- 分析从旧格式到新格式的转换规则
- 记录例外情况和特殊案例
- 创建前后对照矩阵

### 阶段 2:迁移指令生成

创建一个 `.github/copilot-migration-instructions.md` 文件,结构如下:

\`\`\`markdown
# GitHub Copilot 迁移指令

## 迁移上下文
- **类型**:${MIGRATION_TYPE}
- **从**:${SOURCE_REFERENCE} 
- **到**:${TARGET_REFERENCE}
- **日期**:[生成日期]
- **范围**:${ANALYSIS_SCOPE}

## 自动转换规则

### 1. 强制性转换
${AUTOMATION_LEVEL != "保守" ? 
  "[自动转换规则]
   - **旧模式**:[旧代码]
   - **新模式**:[新代码]
   - **触发条件**:何时检测此模式
   - **操作**:自动应用的转换" : ""}

### 2. 需验证的转换
${VALIDATION_REQUIRED == "true" ? 
  "[需要验证的转换]
   - **检测到的模式**:[描述]
   - **建议的转换**:[新方法]
   - **所需验证**:[验证标准]
   - **替代方案**:[替代选项]" : ""}

### 3. API 对应关系
${CHANGE_FOCUS == "API变更" || MIGRATION_TYPE == "框架版本升级" ? 
  "[API 对应表]
   | 旧 API   | 新 API   | 说明     | 示例        |
   | --------- | --------- | --------- | -------------- |
   | [旧_API] | [新_API] | [变更说明] | [代码示例] | " : ""} |

### 4. 需采用的新模式
[检测到的新兴模式]
- **模式**:[模式名称]
- **使用时机**:[何时使用] 
- **实现方式**:[如何实现]
- **优势**:[优点]

### 5. 需避免的过时模式
[检测到的过时模式]
- **过时模式**:[旧模式]
- **避免原因**:[原因]
- **替代方案**:[新模式]
- **迁移步骤**:[转换步骤]

## 特定文件类型指令

${GENERATE_EXAMPLES == "true" ? 
  "### 配置文件
   [配置转换示例]
   
   ### 主要源文件
   [源文件转换示例]
   
   ### 测试文件
   [测试文件转换示例]" : ""}

## 验证与安全

### 自动控制点
- 每次转换后需要执行的验证
- 需要运行的测试以验证变更
- 需要监控的性能指标
- 需要执行的兼容性检查

### 手动升级
需要人工干预的情况:
- [复杂案例列表]
- [架构决策]
- [业务影响]

## 迁移监控

### 跟踪指标
- 自动迁移代码的百分比
- 需要手动验证的次数
- 自动转换的错误率
- 每个文件的平均迁移时间

### 错误报告
如何向 Copilot 报告不正确的转换:
- 用于改进规则的反馈模式
- 需要记录的例外情况
- 需要对指令进行的调整

\`\`\`

### 阶段 3:上下文示例生成

${GENERATE_EXAMPLES == "true" ? 
  "#### 转换示例
   对于每个识别出的模式,生成:
   
   \`\`\`
   // 变更前 (${SOURCE_REFERENCE})
   [旧代码示例]
   
   // 变更后 (${TARGET_REFERENCE}) 
   [新代码示例]
   
   // COPILOT 指令
   当你看到此模式 [触发条件] 时,按照以下步骤将其转换为 [新模式]:[步骤]
   \`\`\`" : ""}

### 阶段 4:验证与优化

#### 指令测试
- 在测试代码上应用指令
- 验证转换的一致性
- 根据结果调整规则
- 记录例外情况和边缘案例

#### 迭代优化  
${AUTOMATION_LEVEL == "积极" ? 
  "- 优化规则以最大化自动化
   - 减少检测中的误报
   - 提高转换准确性
   - 记录经验教训" : ""}

### 最终成果

使 GitHub Copilot 能够实现以下目标的迁移指令:
1. **自动应用** 与未来修改中相同的转换
2. **保持一致性** 与新采用的约定保持一致  
3. **避免过时模式**,通过自动建议替代方案
4. **加速未来迁移**,通过利用已获得的经验
5. **减少错误**,通过自动化重复性转换

这些指令将 Copilot 转变为一个智能迁移助手,能够一致且可靠地重现你的技术演进决策。
"

典型用例

框架版本迁移

非常适合记录从 Angular 14 到 Angular 17、React 类组件到 Hooks,或 .NET Framework 到 .NET Core 的过渡。自动识别重大变更并生成相应的转换规则。

技术栈演进

在完全替换技术时必不可少:jQuery 到 React、REST 到 GraphQL、SQL 到 NoSQL。创建带有模式映射的全面迁移指南。

架构重构

适用于大型重构,如单体架构到微服务、MVC 到整洁架构,或组件化到可组合架构。为未来类似的转换保留架构知识。

设计模式现代化

对于采用新模式很有用:仓储模式、依赖注入、观察者模式到响应式编程。记录原理和实现差异。

独特优势

🧠 人工智能增强

与传统的迁移文档不同,这些指令“训练”GitHub Copilot 在未来的代码修改中自动重现你的技术演进决策。

🔄 知识资本化

将特定的项目经验转化为可重用的规则,避免迁移专业知识的流失,并加速未来类似的转换。

🎯 上下文感知的精确性

不是提供通用建议,而是生成针对你特定代码库的指令,并使用来自你项目演进的真实前后对比示例。

自动化一致性

确保新增代码自动遵循新的约定,防止架构倒退并保持代码演进的连贯性。

📄 原始文档

完整文档(英文):

https://skills.sh/github/awesome-copilot/generate-custom-instructions-from-codebase

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。