DG8 收口设计主参考系统治理

这个提交包含在:
2026-05-13 23:08:52 +08:00
父节点 c628038ed8
当前提交 3ac5c785b1
共修改 7 个文件,包含 91 行新增和 24 行删除
+2 -2
查看文件
@@ -13,7 +13,7 @@ Read only what is relevant:
- Always read `AGENTS.md` and the newest relevant `issues/*.csv`. - Always read `AGENTS.md` and the newest relevant `issues/*.csv`.
- After R5, first check the main R5/R6 contract status before planning trial-run or follow-up work; R5 must remain the completed gate and R6 must have its own Issue CSV before expanding scope. - After R5, first check the main R5/R6 contract status before planning trial-run or follow-up work; R5 must remain the completed gate and R6 must have its own Issue CSV before expanding scope.
- For UI/page work, PC/mobile/WeCom experience, approval UX, or domestic OA benchmarking, read `docs/产品设计规则.md` and `references/visual-qa.md`. Mobile page work must treat `docs/产品设计规则.md` as the source of truth for the unified mobile shell, icon grid, card lists, deep Push pages, sticky actions, safe-area, and cross-viewport matrix. 移动页必须先对齐该设计事实源,再进入实现或验证。 - For UI/page work, PC/mobile/WeCom experience, approval UX, or domestic OA benchmarking, read `docs/产品设计规则.md` and `references/visual-qa.md`. DG8 makes Feishu workbench/approval the single main UI/layout reference, with Hyinda branding and project rules taking priority. Other products are only function/process/control references. Mobile page work must treat `docs/产品设计规则.md` as the source of truth for the unified mobile shell, icon grid, card lists, deep Push pages, sticky actions, safe-area, and cross-viewport matrix. 移动页必须先对齐该设计事实源,再进入实现或验证。
- For approval workflow, roles, self-approval, notification, deeplink, reminder, or escalation work, read `docs/需求-统一审批中心规约.md`. - For approval workflow, roles, self-approval, notification, deeplink, reminder, or escalation work, read `docs/需求-统一审批中心规约.md`.
- For reimbursement, invoice, OCR, duplicate invoice, or attachment work, read `docs/报销发票附件规则.md` and `references/reimbursement.md`. - For reimbursement, invoice, OCR, duplicate invoice, or attachment work, read `docs/报销发票附件规则.md` and `references/reimbursement.md`.
- For local/WeCom/public trial-run, OCR runtime, Caddy, or DB drift work, read `docs/试运行与自动化验证手册.md` and `references/trialrun.md`. - For local/WeCom/public trial-run, OCR runtime, Caddy, or DB drift work, read `docs/试运行与自动化验证手册.md` and `references/trialrun.md`.
@@ -37,7 +37,7 @@ Default behavior:
2. Identify or create the current Issue CSV before non-trivial work; after R5, distinguish R6 preparation from actual trial-run execution. 2. Identify or create the current Issue CSV before non-trivial work; after R5, distinguish R6 preparation from actual trial-run execution.
3. State the implementation approach before editing code; if already approved, proceed. 3. State the implementation approach before editing code; if already approved, proceed.
4. Keep changes scoped to the current Issue. 4. Keep changes scoped to the current Issue.
5. Prefer existing project patterns, official SDKs, and principles from documented domestic OA/approval/mobile references; do not copy competitor flows or text directly. 5. Prefer existing project patterns, official SDKs, and the main UI/layout hierarchy in `docs/产品设计规则.md`; do not mix multiple competitor visual systems or copy competitor flows/text directly.
6. Verify with the narrowest relevant automated tests, then expand by risk. 6. Verify with the narrowest relevant automated tests, then expand by risk.
7. Use Playwright screenshots or visual metrics for PC/mobile/WeCom UI changes. New or changed mobile pages must join the unified responsive system and the 320/360/375/390/393/414/430px 统一视觉矩阵 rather than adding page-specific layout fixes. 7. Use Playwright screenshots or visual metrics for PC/mobile/WeCom UI changes. New or changed mobile pages must join the unified responsive system and the 320/360/375/390/393/414/430px 统一视觉矩阵 rather than adding page-specific layout fixes.
8. Dedicated `/mobile` pages must use the shared mobile slot/card/list/sticky-action system from `docs/产品设计规则.md`: fixed icon/avatar/status slots, `minmax(0, 1fr)` copy slots, `mobile-card`/mobile list cards, mobile tokens, and no desktop `card-std p-4` as a mobile main container. 8. Dedicated `/mobile` pages must use the shared mobile slot/card/list/sticky-action system from `docs/产品设计规则.md`: fixed icon/avatar/status slots, `minmax(0, 1fr)` copy slots, `mobile-card`/mobile list cards, mobile tokens, and no desktop `card-std p-4` as a mobile main container.
+3 -3
查看文件
@@ -75,10 +75,10 @@ AGENTS.md 只放硬约束和入口,不复制长规则。
- 文案是否符合国内 OA 习惯。 - 文案是否符合国内 OA 习惯。
- 是否出现 PC 表格误入手机、黑色大块导航、按钮样式不一致、文字截断、弹窗自动弹键盘等明显问题。 - 是否出现 PC 表格误入手机、黑色大块导航、按钮样式不一致、文字截断、弹窗自动弹键盘等明显问题。
外部最佳实践只沉淀原则,不复制竞品交互或文案。参考钉钉、飞书、企业微信、Ant Design、WeUI 等公开资料时,必须先抽象为本项目自己的事实源: DG8 之后,页面视觉和布局治理只有一个主 UI 参考:飞书工作台/飞书审批。外部最佳实践只沉淀原则,不复制竞品交互或文案;参考钉钉、泛微、每刻、合思、企业微信、Ant Design、WeUI 等公开资料时,必须先按 `docs/产品设计规则.md` 的主参考层级抽象为本项目自己的事实源:
- PC 端:工作台、表格、筛选、详情分区、批量处理和管理配置。 - PC 端:以飞书式工作台和审批列表的信息层级为主,保留表格、筛选、详情分区、批量处理和管理配置。
- 移动端:企业微信消息驱动、卡片列表、一级底部导航、深层 Push 页和吸底主操作。 - 移动端:以飞书式轻任务和审批/进度入口为主,结合企业微信消息驱动、卡片列表、一级底部导航、深层 Push 页和吸底主操作。
- 审批:待办聚合、明确状态、可追溯、可催办、超时提醒和效率统计。AP6 v1 已提供催办、待办摘要和超时提醒 job;后续审批/通知/催办开发必须先核对统一审批中心规约,复用既有接口、审计和通知语义,不另造平行链路。 - 审批:待办聚合、明确状态、可追溯、可催办、超时提醒和效率统计。AP6 v1 已提供催办、待办摘要和超时提醒 job;后续审批/通知/催办开发必须先核对统一审批中心规约,复用既有接口、审计和通知语义,不另造平行链路。
- 企业微信:入口、身份、个人应用消息和 deeplink,不替代 OA 正式审批。 - 企业微信:入口、身份、个人应用消息和 deeplink,不替代 OA 正式审批。
+16 -10
查看文件
@@ -21,19 +21,25 @@ OA 页面应参考公司主页 `www.hyinda.com` 的视觉气质,但不能做
- 字体气质:官网使用偏现代无衬线风格;OA 继续使用系统无衬线字体,但字号、行距和按钮高度要克制。 - 字体气质:官网使用偏现代无衬线风格;OA 继续使用系统无衬线字体,但字号、行距和按钮高度要克制。
- 双端一致:PC 和企业微信/手机端都遵循同一品牌色和控件语义,只根据屏幕密度调整布局。 - 双端一致:PC 和企业微信/手机端都遵循同一品牌色和控件语义,只根据屏幕密度调整布局。
## 国内同类系统体验基线 ## 主 UI/布局参考层级
R6 之后的 PC、移动和审批体验参考国内主流协同/OA 产品的共性,而不是复制任何单一产品。公开资料显示,钉钉审批强调模板化审批、假勤/财务场景和移动处理,飞书审批强调一站式入口、即时消息通知、移动端处理、流程配置和催办,企业微信自建应用适合作为工作台入口、身份和个人消息 deeplink。PC 端的工作台、表格、表单和导航可参考 Ant Design 的信息密度和后台系统模式,移动端参考微信生态常见的 WeUI/Ant Design Mobile 控件语义。 DG8 之后,hyb-oa 的唯一主 UI/布局参考是飞书工作台/飞书审批。主参考只用于统一布局密度、信息层级、交互克制度和 PC/移动一致性;Hyinda 官网品牌气质、OA 工作台定位和本文件规则优先于任何竞品。不得复制飞书页面文案、视觉细节、IM、云文档、多维表格、开放平台生态、登录、审批、通知或项目能力。
落到 hyb-oa 的原则: 参考层级固定如下:
- PC 是高密度工作台,服务筛选、批量查看、审批、财务复核、导出和管理配置。 - 主参考:飞书工作台/飞书审批。PC 工作台、审批列表、审批/进度分组、消息直达详情、催办语义和移动轻任务优先按这一层抽象。
- 移动端是消息驱动的轻入口,服务提交、补材料、查状态、处理待办和从企业微信消息回流。 - 品牌修正:Hyinda 官网的品牌蓝、浅色背景、清晰边界、克制字号和工作台气质是最终视觉裁剪标准。
- PC 高密度、移动轻任务是双端分工底线;不得把桌面表格和批量管理能力原样搬到手机端。 - 功能流程参考:钉钉只参考审批场景覆盖和高频申请模板;泛微 e-office 只参考 OA 信息架构和台账结构,不指导视觉风格;每刻/合思只参考报销、票据、OCR、财务复核和付款导出流程,不指导整体 UI。
- 企业微信只做入口、绑定、免登录、个人应用消息和 deeplink,不替代 OA 正式审批页。 - 控件语义参考:Ant Design 只参考 PC 表格、筛选、表单和导航的中后台语义;WeUI/Ant Design Mobile 只参考移动控件、安全区、TabBar、List、Tabs 和动作反馈语义。
- 审批体验以“待办聚合、清晰状态、明确下一步、可催办和可追溯”为目标;AP6 v1 已完成催办、超时提醒和审批效率摘要,后续只在独立 Issue 中增强配置治理、升级处理或更复杂的节点 SLA。 - 实际基础设施:企业微信只做入口、绑定、免登录、个人应用消息和 deeplink,不替代 OA 正式审批页,也不指导 OA 主视觉。
- 移动信息分层必须清楚:`待办` 是需要我处理的任务,`进度` 是我发起的单据状态,`通知` 是事件消息,`详情` 是业务事实源;首页、审批中心、通知中心不得把同一批待办重复铺开。
- 竞品资料只用于抽象原则;不得复制钉钉、飞书、企业微信、WeUI 或 Ant Design 的页面文案、视觉细节和专有交互。 落到 hyb-oa 的统一布局原则:
- PC 工作台是高密度办公面板,首屏优先待处理、我发起的进度、退回待补、财务待复核/待付款和异常提醒;列表保留筛选、批量查看、审批、财务复核、导出和管理配置。
- 移动端首页是消息驱动的轻入口,服务提交、补材料、查状态、处理待办和从企业微信消息回流;不得把 PC 表格和批量管理能力搬到手机端。
- 审批/进度入口承载两类视角:审批人处理待我审批,员工查看我发起的进度;通知仍是事件流,点击应直达业务详情或审批详情。
- 详情页是业务事实源,PC 按摘要、关键字段、附件/发票、审批流和日志分区;移动深层 Push 页隐藏底部 Tab,使用顶部返回、状态和吸底操作。
- 竞品资料只用于抽象原则;不得复制飞书、钉钉、企业微信、泛微、每刻、合思、WeUI 或 Ant Design 的页面文案、视觉细节和专有交互。
参考资料: 参考资料:
+5 -4
查看文件
@@ -28,6 +28,7 @@
| Stream | Contract | Status | 用途 | | Stream | Contract | Status | 用途 |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `GOV8` | `issues/2026-05-13_16-31-09-gov8-system-governance.csv` | `EVIDENCE` | 连续型 Issue 治理、文档台账、流程模板和审计脚本,已收口 | | `GOV8` | `issues/2026-05-13_16-31-09-gov8-system-governance.csv` | `EVIDENCE` | 连续型 Issue 治理、文档台账、流程模板和审计脚本,已收口 |
| `DG8` | `issues/2026-05-13_22-56-49-design-ui-governance.csv` | `EVIDENCE` | 设计治理主参考系统收口;飞书工作台/飞书审批为唯一主 UI/布局参考,不代表页面已整改 |
| `R7E` | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | `CURRENT` | 真实扩大试运行人工确认和执行;R7E-1..7 完成前不得启动真实 R7 | | `R7E` | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | `CURRENT` | 真实扩大试运行人工确认和执行;R7E-1..7 完成前不得启动真实 R7 |
| `ORG8` | `issues/2026-05-13_18-23-51-org8-master-data-permission.csv` | `EVIDENCE` | 组织账号和权限主数据治理已阶段收口;本地代表性角色验收通过,不替代 R7E 真实人工试运行 | | `ORG8` | `issues/2026-05-13_18-23-51-org8-master-data-permission.csv` | `EVIDENCE` | 组织账号和权限主数据治理已阶段收口;本地代表性角色验收通过,不替代 R7E 真实人工试运行 |
| `WF8` | `issues/2026-05-13_18-23-52-wf8-approval-notification.csv` | `CURRENT` | 审批与通知增强;移动审批历史展示方案批准后继续执行 | | `WF8` | `issues/2026-05-13_18-23-52-wf8-approval-notification.csv` | `CURRENT` | 审批与通知增强;移动审批历史展示方案批准后继续执行 |
@@ -44,12 +45,12 @@
| `REG` | `docs/文档事实源状态矩阵.md` | 文档台账 | 文档分类和状态事实源 | `CURRENT` | product/dev | `GOV8` | `audit-docs` | none | 2026-05-13 | `audit-docs --check-registry` | medium | 判断文档权威性 | | `REG` | `docs/文档事实源状态矩阵.md` | 文档台账 | 文档分类和状态事实源 | `CURRENT` | product/dev | `GOV8` | `audit-docs` | none | 2026-05-13 | `audit-docs --check-registry` | medium | 判断文档权威性 |
| `PRD-MVP` | `docs/海音达OA-MVP需求规格说明书.md` | 需求事实源 | PRD 主事实源 | `CURRENT` | product | `REQ8,P2T,GOV8` | Issue CSV | `docs/requirements-specification.md` | 2026-05-13 | `rg` | high | 定义做什么、不做什么和验收口径 | | `PRD-MVP` | `docs/海音达OA-MVP需求规格说明书.md` | 需求事实源 | PRD 主事实源 | `CURRENT` | product | `REQ8,P2T,GOV8` | Issue CSV | `docs/requirements-specification.md` | 2026-05-13 | `rg` | high | 定义做什么、不做什么和验收口径 |
| `PRODUCT-SCOPE` | `docs/产品口径.md` | 需求事实源 | 产品边界事实源 | `CURRENT` | product | `REQ8,P2T` | `rg` | none | 2026-05-13 | `rg` | high | 记录已拍板产品边界 | | `PRODUCT-SCOPE` | `docs/产品口径.md` | 需求事实源 | 产品边界事实源 | `CURRENT` | product | `REQ8,P2T` | `rg` | none | 2026-05-13 | `rg` | high | 记录已拍板产品边界 |
| `DESIGN-UI` | `docs/产品设计规则.md` | 设计事实源 | PC/移动/企业微信设计事实源 | `CURRENT` | design/frontend | `MIA7,MIF7,GOV8` | Playwright/视觉审查 | none | 2026-05-13 | `rg` | high | 页面改动必须读取 | | `DESIGN-UI` | `docs/产品设计规则.md` | 设计事实源 | PC/移动/企业微信设计事实源 | `CURRENT` | design/frontend | `MIA7,MIF7,GOV8,DG8` | Playwright/视觉审查/DG8 | none | 2026-05-13 | `rg` | high | 页面改动必须读取;DG8 后飞书为主 UI/布局参考 |
| `DELIVERY` | `docs/开发交付与变更管理规约.md` | 开发治理 | 开发交付事实源 | `CURRENT` | dev/qa | `GOV8` | `rg` | none | 2026-05-13 | `rg` | high | Issue、review、commit 和交付规则 | | `DELIVERY` | `docs/开发交付与变更管理规约.md` | 开发治理 | 开发交付事实源 | `CURRENT` | dev/qa | `GOV8` | `rg` | none | 2026-05-13 | `rg` | high | Issue、review、commit 和交付规则 |
| `QA-GATE` | `docs/测试规约与回归门禁.md` | 测试验收 | 测试和回归门禁事实源 | `CURRENT` | qa | `QAF8,GOV8` | 回归脚本/Playwright | none | 2026-05-13 | `rg` | high | 测试计划和 DONE 门禁 | | `QA-GATE` | `docs/测试规约与回归门禁.md` | 测试验收 | 测试和回归门禁事实源 | `CURRENT` | qa | `QAF8,GOV8` | 回归脚本/Playwright | none | 2026-05-13 | `rg` | high | 测试计划和 DONE 门禁 |
| `AGENT-PRACTICE` | `docs/Agent开发交付实践.md` | Agent 治理 | Agent 协作事实源 | `CURRENT` | dev | `GOV8` | Skill 校验 | none | 2026-05-13 | `rg` | medium | Agent 协作开发实践 | | `AGENT-PRACTICE` | `docs/Agent开发交付实践.md` | Agent 治理 | Agent 协作事实源 | `CURRENT` | dev | `GOV8,DG8` | Skill 校验 | none | 2026-05-13 | `rg` | medium | Agent 协作开发实践和设计主参考层级 |
| `AGENTS` | `AGENTS.md` | 执行硬约束 | 项目硬规则 | `CURRENT` | lead | `GOV8` | 人工核对 | none | 2026-05-13 | `rg` | high | 不可违反约束 | | `AGENTS` | `AGENTS.md` | 执行硬约束 | 项目硬规则 | `CURRENT` | lead | `GOV8` | 人工核对 | none | 2026-05-13 | `rg` | high | 不可违反约束 |
| `SKILL-HYB` | `.agents/skills/hyb-oa-delivery/SKILL.md` | Skill | 项目交付 Skill | `CURRENT` | dev | `GOV8` | quick_validate | none | 2026-05-13 | `quick_validate.py` | medium | 每轮交付操作入口 | | `SKILL-HYB` | `.agents/skills/hyb-oa-delivery/SKILL.md` | Skill | 项目交付 Skill | `CURRENT` | dev | `GOV8,DG8` | quick_validate | none | 2026-05-13 | `quick_validate.py` | medium | 每轮交付操作入口,UI 任务读取设计主参考层级 |
| `REQ-WF` | `docs/需求-统一审批中心规约.md` | 需求事实源 | 审批模块规约 | `CURRENT` | product/backend | `AP6,WF8` | workflow 回归 | none | 2026-05-13 | `rg` | high | 审批、催办、通知和状态流 | | `REQ-WF` | `docs/需求-统一审批中心规约.md` | 需求事实源 | 审批模块规约 | `CURRENT` | product/backend | `AP6,WF8` | workflow 回归 | none | 2026-05-13 | `rg` | high | 审批、催办、通知和状态流 |
| `REQ-OCR` | `docs/需求-报销发票OCR规约.md` | 需求事实源 | OCR 模块规约 | `CURRENT` | product/backend | `RI6,OCR8,BIZ8` | OCR 回归 | none | 2026-05-13 | `rg` | high | OCR 和发票边界 | | `REQ-OCR` | `docs/需求-报销发票OCR规约.md` | 需求事实源 | OCR 模块规约 | `CURRENT` | product/backend | `RI6,OCR8,BIZ8` | OCR 回归 | none | 2026-05-13 | `rg` | high | OCR 和发票边界 |
| `RULE-REIMB` | `docs/报销发票附件规则.md` | 需求事实源 | 报销发票附件规则 | `CURRENT` | product/finance | `RI6,BIZ8` | 报销回归 | none | 2026-05-13 | `rg` | high | 报销、发票、附件细则 | | `RULE-REIMB` | `docs/报销发票附件规则.md` | 需求事实源 | 报销发票附件规则 | `CURRENT` | product/finance | `RI6,BIZ8` | 报销回归 | none | 2026-05-13 | `rg` | high | 报销、发票、附件细则 |
@@ -70,7 +71,7 @@
| `docs/文档索引.md` | 当前事实源 | 唯一文档入口 | | `docs/文档索引.md` | 当前事实源 | 唯一文档入口 |
| `docs/文档事实源状态矩阵.md` | 当前事实源 | 文档分类和恢复规则 | | `docs/文档事实源状态矩阵.md` | 当前事实源 | 文档分类和恢复规则 |
| `docs/海音达OA-MVP需求规格说明书.md` | 当前事实源 | PRD 主事实源 | | `docs/海音达OA-MVP需求规格说明书.md` | 当前事实源 | PRD 主事实源 |
| `docs/产品设计规则.md` | 当前事实源 | PC、移动、企业微信设计规则 | | `docs/产品设计规则.md` | 当前事实源 | PC、移动、企业微信设计规则;DG8 主 UI/布局参考层级 |
| `docs/产品口径.md` | 当前事实源 | 产品边界和业务规则 | | `docs/产品口径.md` | 当前事实源 | 产品边界和业务规则 |
| `docs/需求-统一审批中心规约.md` | 当前事实源 | 审批、催办、超时、效率摘要 | | `docs/需求-统一审批中心规约.md` | 当前事实源 | 审批、催办、超时、效率摘要 |
| `docs/报销发票附件规则.md` | 当前事实源 | 报销、发票、附件细则 | | `docs/报销发票附件规则.md` | 当前事实源 | 报销、发票、附件细则 |
+6 -4
查看文件
@@ -19,12 +19,13 @@
## 最近事实源链 ## 最近事实源链
R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口)。 R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口) -> DG8。
- R6、PC6、PA6、FL6、AP6、RI6、LP6 已完成并部署。 - R6、PC6、PA6、FL6、AP6、RI6、LP6 已完成并部署。
- ME6 自动化、公网视觉矩阵和 `ME6-3` 代表性企业微信真机门禁已完成。 - ME6 自动化、公网视觉矩阵和 `ME6-3` 代表性企业微信真机门禁已完成。
- QG6 已完成 QA 治理升级。 - QG6 已完成 QA 治理升级。
- MIA7 已完成移动信息架构、视觉和流程审查;MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检。 - MIA7 已完成移动信息架构、视觉和流程审查;MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检。
- DG8 已完成设计治理主参考系统收口:飞书工作台/飞书审批是唯一主 UI/布局参考;本结论只更新设计事实源,不代表已做页面整改。
- R7/OPS7/DOC7 是准备材料,不代表已上线或已启动真实 R7。 - R7/OPS7/DOC7 是准备材料,不代表已上线或已启动真实 R7。
## 当前活跃治理流 ## 当前活跃治理流
@@ -34,6 +35,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| 治理流 | 当前合同 | 当前状态 | 范围 | 不做 | | 治理流 | 当前合同 | 当前状态 | 范围 | 不做 |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| `GOV8` | `issues/2026-05-13_16-31-09-gov8-system-governance.csv` | 已收口 | 文档分类、台账、流程模板、审计脚本、需求冻结、变更控制 | 不改业务代码、不部署 | | `GOV8` | `issues/2026-05-13_16-31-09-gov8-system-governance.csv` | 已收口 | 文档分类、台账、流程模板、审计脚本、需求冻结、变更控制 | 不改业务代码、不部署 |
| `DG8` | `issues/2026-05-13_22-56-49-design-ui-governance.csv` | 已收口:设计事实源主参考系统更新 | 主 UI/布局参考层级、外部参考降级、Agent/Skill 设计入口、设计检查门禁 | 不改业务页面、不部署、不接入飞书 |
| `R7E` | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | 当前执行:等待人工确认 | 人工确认、真实试运行、每日问题收口、验收结论 | 不新增 P2 能力 | | `R7E` | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | 当前执行:等待人工确认 | 人工确认、真实试运行、每日问题收口、验收结论 | 不新增 P2 能力 |
| `ORG8` | `issues/2026-05-13_18-23-51-org8-master-data-permission.csv` | 已收口:本地代表性角色验收通过 | 组织、账号、直属主管、停用、角色、企业微信绑定、权限边界 | 不做审批流程增强;不替代 R7E 真实人工试运行 | | `ORG8` | `issues/2026-05-13_18-23-51-org8-master-data-permission.csv` | 已收口:本地代表性角色验收通过 | 组织、账号、直属主管、停用、角色、企业微信绑定、权限边界 | 不做审批流程增强;不替代 R7E 真实人工试运行 |
| `WF8` | `issues/2026-05-13_18-23-52-wf8-approval-notification.csv` | 当前执行:待移动审批历史方案批准 | 转审、通知、催办、邮件通道决策、三渠道验收 | 不做复杂 BPM 或审批设计器 | | `WF8` | `issues/2026-05-13_18-23-52-wf8-approval-notification.csv` | 当前执行:待移动审批历史方案批准 | 转审、通知、催办、邮件通道决策、三渠道验收 | 不做复杂 BPM 或审批设计器 |
@@ -47,7 +49,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| 阶段 | 必读入口 | 目的 | | 阶段 | 必读入口 | 目的 |
| --- | --- | --- | | --- | --- | --- |
| 需求阶段 | 最新同类型连续 Issue CSV、[海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md)、对应 `需求-*.md`、[产品口径](./产品口径.md) | 判断做什么、不做什么、验收什么 | | 需求阶段 | 最新同类型连续 Issue CSV、[海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md)、对应 `需求-*.md`、[产品口径](./产品口径.md) | 判断做什么、不做什么、验收什么 |
| 设计阶段 | [产品设计规则](./产品设计规则.md)、[架构概览](./架构概览.md)、[集成边界](./集成边界.md)、`docs/ops/*.md`、必要 ADR | 判断页面、权限、状态流、集成和非功能边界 | | 设计阶段 | 最新设计治理合同、[产品设计规则](./产品设计规则.md)、[架构概览](./架构概览.md)、[集成边界](./集成边界.md)、`docs/ops/*.md`、必要 ADR | 判断页面、权限、状态流、集成和非功能边界 |
| 开发阶段 | 当前连续 Issue CSV、[开发交付与变更管理规约](./开发交付与变更管理规约.md)、`AGENTS.md` | 判断文件范围、依赖、方案批准和交接物 | | 开发阶段 | 当前连续 Issue CSV、[开发交付与变更管理规约](./开发交付与变更管理规约.md)、`AGENTS.md` | 判断文件范围、依赖、方案批准和交接物 |
| 测试阶段 | [测试规约与回归门禁](./测试规约与回归门禁.md)、[试运行与自动化验证手册](./试运行与自动化验证手册.md)、当前 Issue 的 `Test_Method` | 判断怎么测、何时可回填 DONE | | 测试阶段 | [测试规约与回归门禁](./测试规约与回归门禁.md)、[试运行与自动化验证手册](./试运行与自动化验证手册.md)、当前 Issue 的 `Test_Method` | 判断怎么测、何时可回填 DONE |
| 发布阶段 | [发布试运行准备清单](./trialrun/发布试运行准备清单.md)、[公网 Live Smoke 准备清单](./trialrun/公网LiveSmoke准备清单.md)、[OPS7 运维交接 Runbook](./trialrun/OPS7运维交接Runbook.md) | 判断公网、企业微信、真实 OCR 和回滚条件 | | 发布阶段 | [发布试运行准备清单](./trialrun/发布试运行准备清单.md)、[公网 Live Smoke 准备清单](./trialrun/公网LiveSmoke准备清单.md)、[OPS7 运维交接 Runbook](./trialrun/OPS7运维交接Runbook.md) | 判断公网、企业微信、真实 OCR 和回滚条件 |
@@ -60,7 +62,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| --- | --- | | --- | --- |
| [海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md) | PRD 主事实源 | | [海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md) | PRD 主事实源 |
| [文档事实源状态矩阵](./文档事实源状态矩阵.md) | 文档分类、删除恢复和冲突规则 | | [文档事实源状态矩阵](./文档事实源状态矩阵.md) | 文档分类、删除恢复和冲突规则 |
| [产品设计规则](./产品设计规则.md) | PC、移动、企业微信 WebView 设计事实源 | | [产品设计规则](./产品设计规则.md) | PC、移动、企业微信 WebView 设计事实源;DG8 后飞书工作台/飞书审批为唯一主 UI/布局参考 |
| [产品口径](./产品口径.md) | 已拍板产品边界和业务规则 | | [产品口径](./产品口径.md) | 已拍板产品边界和业务规则 |
| [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) | 审批、催办、超时提醒、审批效率 | | [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) | 审批、催办、超时提醒、审批效率 |
| [报销发票附件规则](./报销发票附件规则.md) | 报销、发票、OCR、附件细则 | | [报销发票附件规则](./报销发票附件规则.md) | 报销、发票、OCR、附件细则 |
@@ -143,7 +145,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
## 阅读顺序 ## 阅读顺序
1. 新需求:PRD + 对应模块规约 + 最新 Issue CSV。 1. 新需求:PRD + 对应模块规约 + 最新 Issue CSV。
2. 页面体验:产品设计规则。 2. 页面体验:产品设计规则;DG8 后先按主 UI/布局参考层级判断。
3. 报销/发票:报销发票附件规则 + 报销 OCR 规约。 3. 报销/发票:报销发票附件规则 + 报销 OCR 规约。
4. 试运行/部署/真机:试运行手册 + 发布清单 + 真机清单。 4. 试运行/部署/真机:试运行手册 + 发布清单 + 真机清单。
5. 历史追溯:历史功能状态矩阵 + git 历史 + 相关 Issue CSV。 5. 历史追溯:历史功能状态矩阵 + git 历史 + 相关 Issue CSV。
@@ -0,0 +1,8 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
DG8-0,设计治理合同建档,"建立 DG8 设计治理执行合同,锁定本轮只做主参考系统、设计事实源和检查规则治理,不改业务页面。","1) CSV 列完整并校验通过;2) 范围限定 issues/docs/.agents/skills/scripts/qa;3) 不改 client/src 业务页面;4) 不部署。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_22-56-49-design-ui-governance.csv;人工核对 Files 不含业务页面。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_22-56-49-design-ui-governance.csv,[],回滚路径:删除本 CSV 和本轮文档/脚本变更;不影响运行环境。2026-05-13 CSV 校验通过。
DG8-1,主 UI 参考层级冻结,"把飞书工作台/飞书审批固定为唯一主 UI/布局参考,其他系统只保留为功能流程或控件语义参考。","1) 产品设计规则明确主参考为飞书;2) 说明 Hyinda 品牌优先;3) 明确不得复制飞书文案、IM、云文档或生态能力;4) 多竞品不再共同指导视觉风格。","流程级验证:rg -n '主 UI|主参考|飞书工作台|飞书审批|不得复制|Hyinda' docs/产品设计规则.md。",rg,DONE,DONE,DONE,docs/产品设计规则.md,"[""DG8-0""]",不接入飞书登录、审批、通知、项目或文档;仅作为布局/UI 参考。2026-05-13 rg 验证通过。
DG8-2,PC 与移动布局规则收口,"按主参考层级重写 PC、移动、审批、通知和详情页布局原则,形成统一页面骨架。","1) PC 明确工作台、列表、筛选、详情分区;2) 移动明确首页、审批/进度、报销、我的、详情 Push 页;3) 通知仍是事件流;4) 企业微信只做入口和 deeplink。","流程级验证:rg -n 'PC.*工作台|移动.*首页|审批/进度|详情|事件流|deeplink' docs/产品设计规则.md。",rg,DONE,DONE,DONE,docs/产品设计规则.md,"[""DG8-1""]",不改变现有移动 Shell 事实源,只补主参考一致性。2026-05-13 rg 验证通过。
DG8-3,外部参考矩阵降级,"把泛微、钉钉、每刻、合思、Ant Design、WeUI 等外部对象重新分类为非主视觉参考。","1) 每类系统只有一个用途边界;2) 泛微不指导视觉;3) 每刻/合思不指导整体 UI;4) Ant Design/WeUI 只指导控件语义。","流程级验证:rg -n '泛微|钉钉|每刻|合思|Ant Design|WeUI|只参考|不指导' docs/产品设计规则.md。",rg,DONE,DONE,DONE,docs/产品设计规则.md,"[""DG8-1""]",竞品资料只抽象原则,不复制页面。2026-05-13 rg 验证通过。
DG8-4,Agent 与 Skill 同步,"同步 Agent 交付实践和 hyb-oa Skill,使后续页面任务先按 DG8 主参考层级判断。","1) Agent 实践写明唯一主 UI 参考;2) Skill Required Reading 或 Delivery Loop 提醒 UI 任务读取 DG8 后设计规则;3) 不改变代码交付流程。","流程级验证:python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;rg -n '主 UI|飞书|产品设计规则' docs/Agent开发交付实践.md .agents/skills/hyb-oa-delivery/SKILL.md。",python3|rg,DONE,DONE,DONE,docs/Agent开发交付实践.md|.agents/skills/hyb-oa-delivery/SKILL.md,"[""DG8-2""]",只更新操作入口,不复制长规则。2026-05-13 Skill quick_validate 和 rg 通过。
DG8-5,设计检查门禁补强,"补强设计检查规则,防止用户界面出现竞品名称、内部解释型文案或多参考系统痕迹。","1) check-ui-design-rules 可解析;2) self-test 通过;3) strict 模式可运行;4) 规则不误扫 docs 中的竞品引用。","流程级验证:node --check scripts/qa/check-ui-design-rules.mjs;node scripts/qa/check-ui-design-rules.mjs --self-test;node scripts/qa/check-ui-design-rules.mjs --strict。",node,DONE,DONE,DONE,scripts/qa/check-ui-design-rules.mjs,"[""DG8-3""]",2026-05-13 node --check/self-test/strict 通过,strict 为 0 findings;规则只扫描 client/src,不误扫 docs 外部参考。
DG8-6,索引台账同步与收口,"把 DG8 写入文档索引和事实源状态矩阵,执行文档、CSV、Skill 和设计规则回归后回填状态。","1) 文档索引可找到 DG8;2) 状态矩阵登记设计治理事实;3) CSV/Skill/脚本校验通过;4) git diff --check 通过;5) 最终说明未部署。","流程级验证:validate_issues_csv.py 本 CSV;node scripts/qa/audit-docs.mjs --check-registry;git diff --check;人工核对状态回填。",python3|node|git|manual,DONE,DONE,DONE,docs/文档索引.md|docs/文档事实源状态矩阵.md|issues/2026-05-13_22-56-49-design-ui-governance.csv,"[""DG8-4"",""DG8-5""]",本轮只完成治理收口;页面整改另进 UX8 或后续 DG8 页面样板合同。2026-05-13 audit-docs errors=0 warnings=1;git diff --check 通过;未部署。
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 DG8-0 设计治理合同建档 建立 DG8 设计治理执行合同,锁定本轮只做主参考系统、设计事实源和检查规则治理,不改业务页面。 1) CSV 列完整并校验通过;2) 范围限定 issues/docs/.agents/skills/scripts/qa;3) 不改 client/src 业务页面;4) 不部署。 流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_22-56-49-design-ui-governance.csv;人工核对 Files 不含业务页面。 python3|manual DONE DONE DONE issues/2026-05-13_22-56-49-design-ui-governance.csv [] 回滚路径:删除本 CSV 和本轮文档/脚本变更;不影响运行环境。2026-05-13 CSV 校验通过。
3 DG8-1 主 UI 参考层级冻结 把飞书工作台/飞书审批固定为唯一主 UI/布局参考,其他系统只保留为功能流程或控件语义参考。 1) 产品设计规则明确主参考为飞书;2) 说明 Hyinda 品牌优先;3) 明确不得复制飞书文案、IM、云文档或生态能力;4) 多竞品不再共同指导视觉风格。 流程级验证:rg -n '主 UI|主参考|飞书工作台|飞书审批|不得复制|Hyinda' docs/产品设计规则.md。 rg DONE DONE DONE docs/产品设计规则.md ["DG8-0"] 不接入飞书登录、审批、通知、项目或文档;仅作为布局/UI 参考。2026-05-13 rg 验证通过。
4 DG8-2 PC 与移动布局规则收口 按主参考层级重写 PC、移动、审批、通知和详情页布局原则,形成统一页面骨架。 1) PC 明确工作台、列表、筛选、详情分区;2) 移动明确首页、审批/进度、报销、我的、详情 Push 页;3) 通知仍是事件流;4) 企业微信只做入口和 deeplink。 流程级验证:rg -n 'PC.*工作台|移动.*首页|审批/进度|详情|事件流|deeplink' docs/产品设计规则.md。 rg DONE DONE DONE docs/产品设计规则.md ["DG8-1"] 不改变现有移动 Shell 事实源,只补主参考一致性。2026-05-13 rg 验证通过。
5 DG8-3 外部参考矩阵降级 把泛微、钉钉、每刻、合思、Ant Design、WeUI 等外部对象重新分类为非主视觉参考。 1) 每类系统只有一个用途边界;2) 泛微不指导视觉;3) 每刻/合思不指导整体 UI;4) Ant Design/WeUI 只指导控件语义。 流程级验证:rg -n '泛微|钉钉|每刻|合思|Ant Design|WeUI|只参考|不指导' docs/产品设计规则.md。 rg DONE DONE DONE docs/产品设计规则.md ["DG8-1"] 竞品资料只抽象原则,不复制页面。2026-05-13 rg 验证通过。
6 DG8-4 Agent 与 Skill 同步 同步 Agent 交付实践和 hyb-oa Skill,使后续页面任务先按 DG8 主参考层级判断。 1) Agent 实践写明唯一主 UI 参考;2) Skill Required Reading 或 Delivery Loop 提醒 UI 任务读取 DG8 后设计规则;3) 不改变代码交付流程。 流程级验证:python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;rg -n '主 UI|飞书|产品设计规则' docs/Agent开发交付实践.md .agents/skills/hyb-oa-delivery/SKILL.md。 python3|rg DONE DONE DONE docs/Agent开发交付实践.md|.agents/skills/hyb-oa-delivery/SKILL.md ["DG8-2"] 只更新操作入口,不复制长规则。2026-05-13 Skill quick_validate 和 rg 通过。
7 DG8-5 设计检查门禁补强 补强设计检查规则,防止用户界面出现竞品名称、内部解释型文案或多参考系统痕迹。 1) check-ui-design-rules 可解析;2) self-test 通过;3) strict 模式可运行;4) 规则不误扫 docs 中的竞品引用。 流程级验证:node --check scripts/qa/check-ui-design-rules.mjs;node scripts/qa/check-ui-design-rules.mjs --self-test;node scripts/qa/check-ui-design-rules.mjs --strict。 node DONE DONE DONE scripts/qa/check-ui-design-rules.mjs ["DG8-3"] 2026-05-13 node --check/self-test/strict 通过,strict 为 0 findings;规则只扫描 client/src,不误扫 docs 外部参考。
8 DG8-6 索引台账同步与收口 把 DG8 写入文档索引和事实源状态矩阵,执行文档、CSV、Skill 和设计规则回归后回填状态。 1) 文档索引可找到 DG8;2) 状态矩阵登记设计治理事实;3) CSV/Skill/脚本校验通过;4) git diff --check 通过;5) 最终说明未部署。 流程级验证:validate_issues_csv.py 本 CSV;node scripts/qa/audit-docs.mjs --check-registry;git diff --check;人工核对状态回填。 python3|node|git|manual DONE DONE DONE docs/文档索引.md|docs/文档事实源状态矩阵.md|issues/2026-05-13_22-56-49-design-ui-governance.csv ["DG8-4","DG8-5"] 本轮只完成治理收口;页面整改另进 UX8 或后续 DG8 页面样板合同。2026-05-13 audit-docs errors=0 warnings=1;git diff --check 通过;未部署。
+51 -1
查看文件
@@ -17,6 +17,21 @@ const scanRoots = [
]; ];
const sourceExtensions = new Set([".js", ".jsx", ".ts", ".tsx"]); const sourceExtensions = new Set([".js", ".jsx", ".ts", ".tsx"]);
const forbiddenCopy = ["先处理", "清爽"]; const forbiddenCopy = ["先处理", "清爽"];
const forbiddenCompetitorReferences = [
"飞书",
"钉钉",
"泛微",
"每刻",
"合思",
"易快报",
"金蝶",
"用友",
"Ant Design",
"WeUI",
"e-office",
"e-cology",
];
const forbiddenDesignMetaCopy = ["照搬"];
const userFacingBusinessTermFiles = new Set([ const userFacingBusinessTermFiles = new Set([
"client/src/pages/MobileCapturePage.tsx", "client/src/pages/MobileCapturePage.tsx",
"client/src/pages/MobileNotificationsPage.tsx", "client/src/pages/MobileNotificationsPage.tsx",
@@ -111,6 +126,38 @@ function scanForbiddenCopy(file, source) {
} }
} }
function scanCompetitorReferenceCopy(file, source) {
for (const phrase of forbiddenCompetitorReferences) {
let start = source.indexOf(phrase);
while (start !== -1) {
addFinding({
rule: "copy.no_competitor_reference",
severity: "error",
file,
line: lineNumber(source, start),
message: `用户界面不得出现竞品或外部设计系统名称:${phrase}`,
evidence: phrase,
});
start = source.indexOf(phrase, start + phrase.length);
}
}
for (const phrase of forbiddenDesignMetaCopy) {
let start = source.indexOf(phrase);
while (start !== -1) {
addFinding({
rule: "copy.no_design_meta_labels",
severity: "error",
file,
line: lineNumber(source, start),
message: `用户界面不得出现设计治理元话语:${phrase}`,
evidence: phrase,
});
start = source.indexOf(phrase, start + phrase.length);
}
}
}
function scanMobileDarkControls(file, source) { function scanMobileDarkControls(file, source) {
const normalized = toPosix(file); const normalized = toPosix(file);
const mobileScope = /\/Mobile|\/mobile\//.test(normalized) || /mobile/i.test(path.basename(file)); const mobileScope = /\/Mobile|\/mobile\//.test(normalized) || /mobile/i.test(path.basename(file));
@@ -487,6 +534,7 @@ function scanNavigationTitleCoverage(file, source) {
function scanFileSource(file, source) { function scanFileSource(file, source) {
scanForbiddenCopy(file, source); scanForbiddenCopy(file, source);
scanCompetitorReferenceCopy(file, source);
scanUserFacingBusinessTerms(file, source); scanUserFacingBusinessTerms(file, source);
scanMobileDarkControls(file, source); scanMobileDarkControls(file, source);
scanNativeFileInputs(file, source); scanNativeFileInputs(file, source);
@@ -513,13 +561,15 @@ function runSelfTest() {
file: "client/src/pages/MobileBadFixture.tsx", file: "client/src/pages/MobileBadFixture.tsx",
source: ` source: `
export function MobileBadFixture() { export function MobileBadFixture() {
return <div><table><tbody /></table><aside>备用模块</aside><button>Upload</button><div>任务ID:{task.id}</div><div>业务单号:{task.reference}</div></div>; return <div><table><tbody /></table><aside>备用模块</aside><button>Upload</button><div>任务ID:{task.id}</div><div>业务单号:{task.reference}</div><div>参考飞书布局照搬</div></div>;
} }
`, `,
expectedRules: [ expectedRules: [
"mobile.no_desktop_table", "mobile.no_desktop_table",
"mobile.no_pc_shell", "mobile.no_pc_shell",
"copy.no_english_upload_labels", "copy.no_english_upload_labels",
"copy.no_competitor_reference",
"copy.no_design_meta_labels",
"data.no_uuid_primary_display", "data.no_uuid_primary_display",
"display.no_duplicate_business_identifier", "display.no_duplicate_business_identifier",
], ],