Files
shanxia2.0/openspec/changes/zkxw-engineering-standards/specs/coding-conventions/spec.md
T

47 lines
2.3 KiB
Markdown

## ADDED Requirements
### Requirement: 最小必要改动
同一功能或缺陷修复的代码变更 SHALL 仅包含完成任务所必需的修改;不得在同一提交中进行无关重构、大范围格式化或与需求无关的文件挪动。
#### Scenario: 修复单接口校验
- **WHEN** 修复某一接口字段校验
- **THEN** diff SHALL 主要限于该接口、对应 schema 与必要测试,而不包含同模块无关重命名
### Requirement: Web 管理端工程约定
`web-admin` SHALL 遵循 `AGENTS.md` 中的栈与工具约定:包管理使用 pnpm;格式化以 Prettier(单引号、无分号、2 空格等)为准;ESLint/Stylelint 规则与仓库配置一致;Vue 与 Element Plus 依赖自动导入策略时,新增全局组件 SHALL 遵循既有 `unplugin` 配置而非随意手写重复导入(除非文件类型要求)。
#### Scenario: 提交前检查
- **WHEN** 提交 `web-admin` 源码
- **THEN** 贡献者 SHALL 在本地或通过 CI 运行与仓库一致的 lint/format 门禁
### Requirement: 后端工程约定
`backend` SHALL 使用 Python 3.9 与既有 FastAPI、SQLAlchemy、Pydantic v2 模式;新增领域逻辑 SHALL 优先落在 `app/services/` 与 `app/crud/`,路由层保持薄;配置 SHALL 通过 `pydantic-settings` 与 `.env` 系列文件管理。
#### Scenario: 新增业务接口
- **WHEN** 新增一组管理端 API
- **THEN** 路由 SHALL 放入 `app/api/` 合适模块,schema 放入 `app/schemas/`,数据库访问放入 `app/crud/` 或复用基类
### Requirement: 数据库脚本与迁移
涉及表结构变更时,维护者 SHALL 在 `docs/sql/` 中维护或更新与需求一致的 SQL 说明,并评估 Alembic/脚本与运行环境的同步(与 `AGENTS.md` 数据库变更约定一致)。
#### Scenario: 新增业务表
- **WHEN** 增加新表或字段
- **THEN** 仓库 SHALL 包含可复现的 schema 片段或迁移,且与 OpenSpec `database-conventions` 中的公共字段规则一致
### Requirement: 提交说明可读性
提交信息 SHALL 使用完整句子说明「改了什么、为何」,并符合仓库 Conventional Commits / commitlint 类型约束。
#### Scenario: merge request
- **WHEN** 创建合并请求
- **THEN** 描述 SHALL 使评审者无需阅读聊天历史即可理解动机与风险