提供github文件夹的copilot配置模板

This commit is contained in:
QG
2026-04-01 13:57:18 +08:00
parent 635ae52c83
commit ab28e760cd
17 changed files with 484 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
---
applyTo: "**/*.{py,md}"
description: "用于 API 设计与接口实现关键词REST、状态码、统一响应、OpenAPI、分页"
---
# API 设计约束
- REST 接口默认使用资源名词复数与语义化 HTTP 方法,禁止 URL 动词化。
- API 必须进行版本化(例如 `/api/v1/...`)。
- 响应结构统一为 `{code, msg, data}`并返回可追踪请求标识traceId 或等价字段)。
- 正确使用 HTTP 状态码,禁止“错误也返回 200”。
- 分页场景明确采用页码分页或游标分页,并在接口文档中说明。
- 所有对外接口需补齐 OpenAPI 注解与示例。
- 参考规范:`02 - Design Standard/2.2 API 接口设计规范.md`

View File

@@ -0,0 +1,12 @@
---
applyTo: "01 - Knowledge & Prompts/**/*.md"
description: "用于架构设计文档与方案讨论关键词模块化单体、分层、ADR、依赖方向"
---
# 架构设计约束
- 默认采用模块化单体;仅在明确满足隔离性、扩展性、独立部署、团队规模等触发条件时考虑微服务拆分。
- 必须保持单向依赖流,禁止下层反向依赖上层。
- 严格关注点分离:协议处理、业务逻辑、数据持久化分离。
- 遇到重大架构分歧必须先提出可选方案并等待确认;确认后先产出 ADR 再继续实现。
- 参考规范:`02 - Design Standard/2.1 系统架构设计原则.md``02 - Design Standard/2.4 项目文档与架构决策规范.md`

View File

@@ -0,0 +1,13 @@
---
applyTo: "**/{Dockerfile,Jenkinsfile,.dockerignore,.env.example,*.yml,*.yaml}"
description: "用于容器化与 CI/CD 配置关键词多阶段构建、Jenkins Declarative、质量门禁、Prod审批"
---
# CI/CD 与部署约束
- Dockerfile 必须使用多阶段构建,并锁定基础镜像具体版本,禁止 `latest`
- 必须提供 `.env.example`,仅保留占位符,禁止提交真实密钥。
- Jenkins 流水线使用 Declarative Pipeline且以代码方式管理。
- 流水线必须包含 Linter 与测试质量门禁,失败即阻断后续阶段。
- 生产部署前必须设置人工审批节点(`input`)。
- 参考规范:`05 - Collaboration & Delivery/5.2 CI_CD 与环境部署规范.md`

View File

@@ -0,0 +1,13 @@
---
applyTo: "**/*.{py,md}"
description: "用于代码审查与修复关键词Checklist、Blocker、越权、SQL注入、N+1"
---
# 代码审查约束
- 审查顺序:架构与边界 > 功能正确性 > 安全与性能 > 可测试性。
- 审查输出必须包含 Checklist并逐项给出 True/False。
- 发现严重问题时按 `[Blocker]` 标记并提供替代实现。
- 必查项越权访问、SQL 注入、敏感信息泄露、N+1 查询、异常吞噬。
- 建议保留 `[Suggestion]``[Nit]` 区分非阻塞项。
- 参考规范:`04 - Quality & Review/4.2 代码审查规范.md``04 - Quality & Review/4.3 安全编码规范.md`

View File

@@ -0,0 +1,14 @@
---
applyTo: "**/*.{sql,py,md}"
description: "用于数据库与缓存设计关键词snake_case、索引、慢查询、Redis TTL、ER 图"
---
# 数据库与存储约束
- 表名和字段名使用 snake_case避免保留字与拼音命名。
- 金额字段使用 DECIMAL 或最小货币单位整型,禁止 FLOAT/DOUBLE。
- 高频过滤/排序/关联字段需明确索引,并遵循联合索引最左前缀原则。
- 禁止 `SELECT *`、左模糊查询、索引列函数计算与隐式类型转换。
- Redis 业务缓存必须设置 TTL并考虑随机抖动防雪崩。
- 输出设计文档时,需提供 Mermaid ER 图与数据字典表。
- 参考规范:`02 - Design Standard/2.3 数据库与存储设计规范.md`

View File

@@ -0,0 +1,14 @@
---
applyTo: "**/*.py"
description: "用于 Django/DRF 实现关键词Thin View Fat Service、ModelViewSet、Serializer、权限隔离"
---
# Django/DRF 约束
- 严格执行 Thin View, Fat Service复杂业务逻辑进入 Service 层。
- Model 定义显式字段与约束Serializer 禁止 `fields = '__all__'`
- 列表查询必须考虑 `select_related` / `prefetch_related` 防 N+1。
- 视图层通过 `get_queryset``get_permissions``get_serializer_class` 管理数据范围与权限。
- 禁止在 View 中手工拼装错误响应,统一交由异常处理与全局响应包装。
- URL 命名与版本化保持一致,非标准接口补充 `@extend_schema`
- 参考规范:`03 - Coding & Frameworks/02 - Framework Development Specification/Django_DRF开发规范.md`

View File

@@ -0,0 +1,14 @@
---
applyTo: "**/*.py"
description: "用于 Python 编码实现关键词Type Hints、Ruff、Mypy、异常处理、上下文管理器"
---
# Python 编码约束
- Python 代码必须使用完整 Type Hints避免 Any 滥用。
- 命名遵循 snake_case / PascalCase / SCREAMING_SNAKE_CASE。
- 禁止吞噬异常(如 `except Exception: pass`)。
- 资源访问必须优先使用上下文管理器(`with`)。
- 新增代码应保持 Ruff/Mypy 友好,避免引入风格与静态检查噪音。
- 测试框架默认 pytest测试结构遵循 Arrange/Act/Assert。
- 参考规范:`03 - Coding & Frameworks/01 - Language Coding Specification/Python 编码与开发规范.md`

View File

@@ -0,0 +1,13 @@
---
applyTo: "**/*test*.py"
description: "用于自动化测试编写关键词pytest、3A、mock、覆盖率、回归"
---
# 自动化测试约束
- 强制使用 pytest不使用 unittest 类式风格作为主路径。
- 每个测试函数必须显式分段:`# Arrange``# Act``# Assert`
- 单测必须隔离外部 I/O网络与第三方调用必须 Mock。
- 测试命名应体现“被测对象-场景-预期结果”。
- 核心业务逻辑优先保证高覆盖并补齐异常与边界场景。
- 参考规范:`04 - Quality & Review/4.1 自动化测试规范.md`