名称: copilot-docs 描述: 使用自定义指令配置GitHub Copilot。在设置.github/copilot-instructions.md、定制Copilot行为或创建仓库特定AI指导时使用。触发于Copilot指令、copilot-instructions.md、GitHub Copilot配置。
GitHub Copilot 自定义指令
配置仓库特定的GitHub Copilot指令。
快速开始
创建 .github/copilot-instructions.md 在您的仓库中:
# Copilot 指令
## 代码风格
- 使用严格模式的TypeScript
- 优先使用带有hooks的函数式组件
- 使用Tailwind CSS进行样式设计
## 项目上下文
这是一个使用App Router的Next.js 14应用。
API路由在 `app/api/`。
有效模式
项目上下文
# 项目上下文
## 技术栈
- Next.js 14 带有 App Router
- TypeScript 5.3+
- Tailwind CSS 3.4
- Prisma ORM 与 PostgreSQL
## 架构
- `app/` - Next.js App Router 页面和 API 路由
- `components/` - React 组件
- `lib/` - 实用函数和共享代码
- `prisma/` - 数据库架构和迁移
代码标准
# 代码标准
## TypeScript
- 启用严格模式
- 优先使用 `interface` 而非 `type` 定义对象形状
- 函数使用显式返回类型
## React
- 专有使用函数式组件
- 优先使用命名导出
- 提取hooks到 `hooks/` 目录
## 错误处理
- 使用Result模式处理可能失败的操作
- 始终用try/catch处理异步错误
- 用结构化格式记录错误
命名约定
# 命名约定
## 文件
- 组件: PascalCase (Button.tsx)
- 实用程序: camelCase (formatDate.ts)
- 常量: SCREAMING_SNAKE_CASE
## 代码
- 布尔变量: is*, has*, should* 前缀
- 事件处理器: handle* 前缀 (handleClick)
- 异步函数: *Async 后缀
测试
# 测试指南
## 单元测试
- 使用Vitest进行单元测试
- 测试文件放在源文件旁边 (*.test.ts)
- 模拟外部依赖
## 测试模式
```typescript
describe('Component', () => {
it('应该正确渲染', () => {
// 安排、行动、断言模式
});
});
### API模式
```markdown
# API模式
## 路由处理器
```typescript
// 标准响应格式
return NextResponse.json({
data: result,
error: null,
meta: { timestamp: Date.now() }
});
// 错误响应
return NextResponse.json(
{ data: null, error: { code: 'NOT_FOUND', message: '...' } },
{ status: 404 }
);
验证
- 使用Zod进行请求验证
- 尽早验证,快速失败
### 做与不做
```markdown
# 指南
## 做
- 编写自解释的代码
- 为公共API添加JSDoc注释
- 使用有意义的变量名
## 不做
- 使用 `any` 类型
- 在生产代码中留下console.log
- 提交敏感数据
文件位置
文件必须位于 .github/copilot-instructions.md(不在根目录)。