DG8 收口设计主参考系统治理
这个提交包含在:
@@ -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 通过;未部署。
|
||||||
|
@@ -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",
|
||||||
],
|
],
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户