提供github文件夹的copilot配置模板
This commit is contained in:
14
.github/instructions/api-design.instructions.md
vendored
Normal file
14
.github/instructions/api-design.instructions.md
vendored
Normal 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`。
|
||||
12
.github/instructions/architecture.instructions.md
vendored
Normal file
12
.github/instructions/architecture.instructions.md
vendored
Normal 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`。
|
||||
13
.github/instructions/cicd.instructions.md
vendored
Normal file
13
.github/instructions/cicd.instructions.md
vendored
Normal 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`。
|
||||
13
.github/instructions/code-review.instructions.md
vendored
Normal file
13
.github/instructions/code-review.instructions.md
vendored
Normal 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`。
|
||||
14
.github/instructions/db-design.instructions.md
vendored
Normal file
14
.github/instructions/db-design.instructions.md
vendored
Normal 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`。
|
||||
14
.github/instructions/django-drf.instructions.md
vendored
Normal file
14
.github/instructions/django-drf.instructions.md
vendored
Normal 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`。
|
||||
14
.github/instructions/python.instructions.md
vendored
Normal file
14
.github/instructions/python.instructions.md
vendored
Normal 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`。
|
||||
13
.github/instructions/testing.instructions.md
vendored
Normal file
13
.github/instructions/testing.instructions.md
vendored
Normal 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`。
|
||||
Reference in New Issue
Block a user