Files
shanxia2.0/openspec/changes/zkxw-engineering-standards/design.md
T

51 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Context
- 业务与数据规则来源:`docs/中科兴皖需求V0.3.md`(含菜单、表模型、§3 技术要求、§2.1.11 工作流、§2.1.5 权限等)。
- Web 端视觉与交互权威:`docs/web-admin-ui-spec-fresh-mint.md` 及其中引用的 `docs/fresh-mint-green.html`。
- 小程序端权威:`docs/miniprogram-ui-spec-sanqiang.md` 及其中列出的 `mobile-ui/sanqiang-*.html`。
- 工程运行与目录约定:`AGENTS.md`、`.cursorrules`、后端 `app/` 与前端 `web-admin/`、`miniprogram/` 现状。
本变更的 `specs/*/spec.md` 为**可测试的规范摘要**;凡涉及色值、类名、组件级布局的细则,**不以本 design 重复展开**,而以对应 Markdown/HTML 为准,避免双源漂移。
## Goals / Non-Goals
**Goals:**
- 用 OpenSpec 将「架构 / 接口 / UI / 编码 / 库表 / 工作流 / 权限」七类约束写成可追溯的 SHALL 与场景。
- 明确「需求 §3」与「两份 UI 规范」之间的分工:前者定数据与租户/API 行为,后者定界面 Token 与页面骨架。
**Non-Goals:**
- 不替代需求文档中的完整表字段与业务流程叙述。
- 不规定具体 REST 路径命名或 Pydantic 字段命名(除非需求或仓库已有全局约定);此类细节留在各功能变更的 spec 中展开。
- 不在此变更中实现工作流引擎或权限中间件代码。
## Decisions
1. **规范分层**
- **Normative(强制执行)**:需求 V0.3 §3、`specs/database-conventions`、`specs/api-conventions` 中与租户/软删/排序/附件相关的条目。
- **Normative(UI)**:`specs/ui-conventions` 中「以文档为权威、禁止跨端调色板混用」等;像素与类名级规则引用原文档。
- **Descriptive(设计说明)**:本 `design.md` 仅解释如何阅读上述分层。
2. **能力拆分粒度**
按用户请求的七大主题拆为七个 capability,便于按域评审与归档;跨域条目(如「租户」同时影响 API 与库表)在相关 spec 中各写一条,避免单文件过长。
3. **与实现仓库的关系**
后端已为 FastAPI + `/api` 前缀等(见 `AGENTS.md`);与需求 §3 中「前端基于 art-design-pro + `pnpm clean:dev`」「小程序 HBuilderX + uni-app + Vue3 + Vant」在 **architecture-conventions** 中记为 SHALL「须与当前仓库技术栈一致或可渐进迁移」,具体迁移不在本变更范围。
## Risks / Trade-offs
- [规范与代码漂移] → 大版本或基线发布时执行 `openspec archive` 将变更合入 `openspec/specs/`,并在 PR 模板中引用对应 requirement id。
- [摘要过粗导致落地争议] → UI/表结构仍以原文档与 `docs/sql/` 为准;争议时以需求/设计稿变更驱动增量 spec。
- [七文件维护成本] → 跨域同一概念允许多处一句话重复,优先可读性而非 DRY。
## Migration Plan
- 无数据迁移。团队采纳后可将 `openspec/config.yaml` 增加 `context` 摘要指向本变更目录。
- 若后续归档:按 OpenSpec 归档流程将 `specs/` 合并入 `openspec/specs/`。
## Open Questions
- 需求 §3 写明的「前端 art-design-pro」与当前仓库 `web-admin` 若存在差异,是否以仓库为准统一需求文档(产品决策)。
- 工作流「SQL 模式审批人」的安全边界(只读从库、语句白名单等)待专项安全设计补充。