generate-custom-instructions-from-codebase 是做什么的?
GitHub Copilot 的迁移与代码演进指令生成器。通过分析两个项目版本(分支、提交或发行版)之间的差异,生成精确的指令,使 Copilot 在技术迁移、大型重构或框架版本升级中保持一致性。
概述
该技能自动为 GitHub Copilot 生成自定义指令,以应对重大的代码库变更。输入两个 Git 提交、分支或标签,即可获得一份可直接用作 .github/copilot-instructions.md 的文档,指导 Copilot 理解并应用新旧代码库之间的模式差异。
使用方法
- 提供对比信息:指定两个 Git 引用(例如
HEAD与main,或v1.0与v2.0)。 - 技能进行分析:对比两者的差异,提取变更的 API、配置、依赖关系、代码范例等关键元素。
- 生成指令:输出结构化的 Markdown 文档,包含:
- 迁移上下文说明
- 新 API 与废弃 API 的映射
- 替换代码范例
- 配置与依赖变更
- 编码风格或约定更新
- 应用指令:将生成的文档保存到项目仓库的
.github/copilot-instructions.md中,GitHub Copilot 将自动加载并遵循这些指令。
示例场景
- 框架升级:从 React 16 升级到 React 18,生成指令确保 Copilot 使用
createRoot而非render。 - API 重构:将数据库访问层从回调改为
async/await,让 Copilot 自动采用新模式。 - 依赖替换:库如 lodash 迁移到原生 ES 方法,更新所有相关代码建议。
- 编码规范变更:团队决定从 CommonJS 转为 ES Modules,保持所有新生成代码的一致性。
支持平台
- GitHub Copilot(通过
.github/copilot-instructions.md) - 任何基于 Git 的项目
工作原理
技能内部执行 git diff 分析,自动识别以下变更类型:
- 导入/导出语句:检测模块语法变化。
- 函数/方法签名:注意参数、返回类型或名称的变更。
- 配置模式:如
webpack.config.js到vite.config.ts的迁移。 - 测试框架:从 Jest 到 Vitest 的迁移。
- 类型系统变更:TypeScript 配置或类型定义的变化。
然后,它将差异转化为可读的规则和示例,打包为 Copilot 可消费的 Markdown。