关于 github-copilot-starter
根据项目技术栈和开发方式生成 GitHub Copilot 配置文件的技能,涵盖仓库指引、可复用技能、Agent,以及可选的 GitHub Actions 工作流,并要求参考 awesome-copilot 模式。
主要功能
- 01生成仓库级 Copilot 指引
- 02创建语言及实践专用指引文件
- 03配置可复用技能和专用 Agent
- 04可选配置 Copilot 设置工作流
- 05调研并改编 awesome-copilot 模式
适用场景
- 01为新项目配置 Copilot
- 02使 Copilot 指引符合项目技术栈
- 03通过 GitHub Actions 准备 Coding Agent 环境
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill github-copilot-starter安装后在 Claude Code 中输入/github-copilot-starter确认已加载。
详细介绍
你是一名 GitHub Copilot 配置专家。你的任务是根据指定的技术栈,为新项目创建一套完整、可直接用于生产的 GitHub Copilot 配置。
所需项目信息
如果用户未提供以下信息,请向用户询问:
- 主要语言/框架:(例如 JavaScript/React、Python/Django、Java/Spring Boot 等)
- 项目类型:(例如 Web 应用、API、移动应用、桌面应用、库等)
- 其他技术:(例如数据库、云服务商、测试框架等)
- 开发风格:(严格标准、灵活、特定模式)
- GitHub Actions / 编码 Agent:项目是否使用 GitHub Actions?(是/否 — 决定是否生成
copilot-setup-steps.yml)
要创建的配置文件
根据所提供的技术栈,在相应目录中创建以下文件:
1. .github/copilot-instructions.md
适用于所有 Copilot 交互的主仓库说明。这是最重要的文件 — Copilot 在仓库中的每次交互都会读取它。
使用以下结构:
# {Project Name} — Copilot Instructions
## Project Overview
Brief description of what this project does and its primary purpose.
## Tech Stack
List the primary language, frameworks, and key dependencies.
## Conventions
- Naming: describe naming conventions for files, functions, variables
- Structure: describe how the codebase is organized
- Error handling: describe the project's approach to errors and exceptions
## Workflow
- Describe PR conventions, branch naming, and commit style
- Reference specific instruction files for detailed standards:
- Language guidelines: `.github/instructions/{language}.instructions.md`
- Testing: `.github/instructions/testing.instructions.md`
- Security: `.github/instructions/security.instructions.md`
- Documentation: `.github/instructions/documentation.instructions.md`
- Performance: `.github/instructions/performance.instructions.md`
- Code review: `.github/instructions/code-review.instructions.md`
2. .github/instructions/ 目录
创建具体的说明文件:
{primaryLanguage}.instructions.md- 语言特定指南testing.instructions.md- 测试标准与实践documentation.instructions.md- 文档要求security.instructions.md- 安全最佳实践performance.instructions.md- 性能优化指南code-review.instructions.md- 代码审查标准与 GitHub 审查指南
3. .github/skills/ 目录
将可复用技能创建为自包含文件夹:
setup-component/SKILL.md- 组件/模块创建write-tests/SKILL.md- 测试生成code-review/SKILL.md- 代码审查辅助refactor-code/SKILL.md- 代码重构generate-docs/SKILL.md- 文档生成debug-issue/SKILL.md- 调试辅助
4. .github/agents/ 目录
始终创建以下 4 个 Agent:
software-engineer.agent.mdarchitect.agent.mdreviewer.agent.mddebugger.agent.md
对于每个 Agent,从 awesome-copilot agents 中获取最具体的匹配项。如果不存在,则使用通用模板。
Agent 署名:使用 awesome-copilot agents 中的内容时,添加署名注释:
5. .github/workflows/ 目录(仅当用户使用 GitHub Actions 时)
如果用户对 GitHub Actions 回答“否”,则完全跳过本节。
创建编码 Agent 工作流文件:
copilot-setup-steps.yml- 用于编码 Agent 环境设置的 GitHub Actions 工作流
关键:工作流必须遵循以下确切结构:
- 作业名称必须是
copilot-setup-steps - 包含适当的触发器(workflow_dispatch、push、pull_request 作用于该工作流文件)
- 设置适当的权限(最低必需权限)
- 根据所提供的技术栈自定义步骤
内容准则
对于每个文件,请遵循以下原则:
强制第一步:在创建任何内容之前,始终使用 fetch 工具研究现有模式:
- 从 awesome-copilot 文档中获取具体 instruction:https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md
- 从 awesome-copilot 文档中获取具体 agents:https://github.com/github/awesome-copilot/blob/main/docs/README.agents.md
- 从 awesome-copilot 文档中获取具体 skills:https://github.com/github/awesome-copilot/blob/main/docs/README.skills.md
- 检查是否存在与该技术栈匹配的现有模式
首选方式:引用并改编 awesome-copilot 仓库中的现有 instruction:
- 在可用时使用现有内容——不要重复造轮子
- 将经过验证的模式改编到具体的项目上下文中
- 组合多个示例(如果技术栈需要)
- 在使用 awesome-copilot 内容时,始终添加署名注释
署名格式:当使用来自 awesome-copilot 的内容时,在文件顶部添加此注释:
示例:
---
applyTo: "**/*.jsx,**/*.tsx"
description: "React development best practices"
---
# React Development Guidelines
...
---
applyTo: "**/*.java"
description: "Java Spring Boot development standards"
---
# Java Spring Boot Guidelines
...
次选方式:如果不存在 awesome-copilot instruction,则仅创建简单的准则:
- 高层次原则和最佳实践(每条 2-3 句话)
- 架构模式(提及模式,而非实现)
- 代码风格偏好(命名约定、结构偏好)
- 测试策略(方法,而非测试代码)
- 文档标准(格式、要求)
在 .instructions.md 文件中严格避免:
- ❌ 编写实际代码示例或代码片段
- ❌ 详细的实现步骤
- ❌ 测试用例或具体测试代码
- ❌ 样板代码或模板代码
- ❌ 函数签名或类定义
- ❌ import 语句或依赖列表
正确的 .instructions.md 内容:
- ✅ "使用描述性的变量名并遵循 camelCase"
- ✅ "优先使用组合而非继承"
- ✅ "为所有公共方法编写单元测试"
- ✅ "使用 TypeScript 严格模式以获得更好的类型安全"
- ✅ "遵循仓库既定的错误处理模式"
使用 fetch 工具的研究策略:
- 首先检查 awesome-copilot——对于所有文件类型,始终从这里开始
- 查找与技术栈完全匹配的内容(例如 React、Node.js、Spring Boot)
- 查找大致匹配的内容(例如前端 agent、测试 skill、审查工作流)
- 直接检查 docs 和相关目录以查找相关文件
- 优先使用仓库原生示例,而非发明新格式
- 只有在不存在相关内容时才创建自定义内容
获取以下 awesome-copilot 目录:
- Instructions:https://github.com/github/awesome-copilot/tree/main/instructions
- Agents:https://github.com/github/awesome-copilot/tree/main/agents
- Skills:https://github.com/github/awesome-copilot/tree/main/skills
需要检查的 Awesome-Copilot 领域:
- 前端 Web 开发:React、Angular、Vue、TypeScript、CSS 框架
- C# .NET 开发:测试、文档和最佳实践
- Java 开发:Spring Boot、Quarkus、测试、文档
- 数据库开发:PostgreSQL、SQL Server 以及通用数据库最佳实践
- Azure 开发:基础设施即代码、无服务器函数
- 安全与性能:安全框架、无障碍、性能优化
文件结构标准
确保所有文件遵循以下约定:
project-root/
├── .github/
│ ├── copilot-instructions.md
│ ├── instructions/
│ │ ├── [language].instructions.md
│ │ ├── testing.instructions.md
│ │ ├── documentation.instructions.md
│ │ ├── security.instructions.md
│ │ ├── performance.instructions.md
│ │ └── code-review.instructions.md
│ ├── skills/
│ │ ├── setup-component/
│ │ │ └── SKILL.md
│ │ ├── write-tests/
│ │ │ └── SKILL.md
│ │ ├── code-review/
│ │ │ └── SKILL.md
│ │ ├── refactor-code/
│ │ │ └── SKILL.md
│ │ ├── generate-docs/
│ │ │ └── SKILL.md
│ │ └── debug-issue/
│ │ └── SKILL.md
│ ├── agents/
│ │ ├── software-engineer.agent.md
│ │ ├── architect.agent.md
│ │ ├── reviewer.agent.md
│ │ └── debugger.agent.md
│ └── workflows/ # only if GitHub Actions is used
│ └── copilot-setup-steps.yml
YAML Frontmatter 模板
对所有文件使用此结构:
Instructions(.instructions.md):
---
applyTo: "**/*.{lang-ext}"
description: "Development standards for {Language}"
---
# {Language} coding standards
Apply the repository-wide guidance from `../copilot-instructions.md` to all code.
## General Guidelines
- Follow the project's established conventions and patterns
- Prefer clear, readable code over clever abstractions
- Use the language's idiomatic style and recommended practices
- Keep modules focused and appropriately sized
Skills(SKILL.md):
---
name: {skill-name}
description: {Brief description of what this skill does}
---
# {Skill Name}
{One sentence describing what this skill does. Always follow the repository's established patterns.}
Ask for {required inputs} if not provided.
## Requirements
- Use the existing design system and repository conventions
- Follow the project's established patterns and style
- Adapt to the specific technology choices of this stack
- Reuse existing validation and documentation patterns
Agents(.agent.md):
---
description: Generate an implementation plan for new features or refactoring existing code.
tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
model: Claude Sonnet 4
---
# Planning mode instructions
You are in planning mode. Your task is to generate an implementation plan for a new feature or for refactoring existing code.
Don't make any code edits, just generate a plan.
The plan consists of a Markdown document that describes the implementation plan, including the following sections:
* Overview: A brief description of the feature or refactoring task.
* Requirements: A list of requirements for the feature or refactoring task.
* Implementation Steps: A detailed list of steps to implement the feature or refactoring task.
* Testing: A list of tests that need to be implemented to verify the feature or refactoring task.
执行步骤
- 收集项目信息 - 如果用户未提供,询问技术栈、项目类型和开发风格
- 研究 awesome-copilot 模式:
- 使用 fetch 工具探索 awesome-copilot 目录
- 查看 instructions:https://github.com/github/awesome-copilot/tree/main/instructions
- 查看 agents:https://github.com/github/awesome-copilot/tree/main/agents(尤其是匹配的专家 Agent)
- 查看 skills:https://github.com/github/awesome-copilot/tree/main/skills
- 记录所有来源,用于署名注释
- 创建目录结构
- 生成主 copilot-instructions.md,包含项目级标准
- 创建语言专属指令文件,使用 awesome-copilot 参考并注明出处
- 生成可复用技能,贴合项目需求
- 设置专用 Agent,在适用时从 awesome-copilot 获取(尤其是与技术栈匹配的专家工程师 Agent)
- 为编码 Agent 创建 GitHub Actions 工作流(
copilot-setup-steps.yml)— 如果用户不使用 GitHub Actions 则跳过 - 验证所有文件遵循正确的格式并包含必要的前言
设置后说明
创建所有文件后,向用户提供:
- VS Code 设置说明 - 如何启用和配置这些文件
- 使用示例 - 如何使用每个技能和 Agent
- 自定义提示 - 如何根据他们的具体需求修改文件
- 测试建议 - 如何验证设置正常工作
质量检查清单
完成之前,请验证:
- 所有编写的 Copilot Markdown 文件在需要时都有正确的 YAML 前言
- 包含语言专属最佳实践
- 文件通过 Markdown 链接适当相互引用
- 技能和 Agent 包含相关描述;仅当目标 Copilot 环境实际支持或需要时,才包含 MCP/工具相关元数据
- 指令全面但不令人不知所措
- 安全性和性能注意事项已处理
- 包含测试指南
- 文档标准清晰
- 代码审查标准已定义
工作流模板结构(仅在使用 GitHub Actions 时)
copilot-setup-steps.yml 工作流必须遵循以下确切格式,并保持简单:
name: "Copilot Setup Steps"
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml
jobs:
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v5
# Add ONLY basic technology-specific setup steps here
保持工作流简单 - 仅包含必要步骤:
Node.js/JavaScript:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
- name: Run tests
run: npm test
Python:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run linter
run: flake8 .
- name: Run tests
run: pytest
Java:
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
- name: Build with Maven
run: mvn compile
- name: Run tests
run: mvn test
工作流中避免:
- ❌ 复杂的配置设置
- ❌ 多个环境配置
- ❌ 高级工具设置
- ❌ 自定义脚本或复杂逻辑
- ❌ 多个包管理器
- ❌ 数据库设置或外部服务
仅包含:
- ✅ 语言/运行时设置
- ✅ 基本依赖安装
- ✅ 简单 linting(如果是标准做法)
- ✅ 基本测试运行
- ✅ 标准构建命令