DCL8/REQ8 同步事实源并规划后续门禁
这个提交包含在:
@@ -109,5 +109,5 @@ Final responses should include:
|
|||||||
- After MUD6, `R6-ISSUE-001` is treated as resolved based on representative real-device confirmation; future mobile regressions should be recorded as new Issues rather than reopening the old WCM6/MME6 gate unless the same production behavior returns.
|
- After MUD6, `R6-ISSUE-001` is treated as resolved based on representative real-device confirmation; future mobile regressions should be recorded as new Issues rather than reopening the old WCM6/MME6 gate unless the same production behavior returns.
|
||||||
- After AP6, approval reminder, overdue reminder, and workflow productivity summary are current product facts, not open planning items. Reuse `POST /api/workflow/tasks/:taskId/remind`, `GET /api/workflow/tasks/summary`, `job:workflow-overdue-reminders`, existing workflow history, audit logs, notifications, and WeCom personal app delivery semantics. Do not add a parallel reminder channel, change approval status from reminders, or expand into complex BPM/SLA escalation without a new Issue.
|
- After AP6, approval reminder, overdue reminder, and workflow productivity summary are current product facts, not open planning items. Reuse `POST /api/workflow/tasks/:taskId/remind`, `GET /api/workflow/tasks/summary`, `job:workflow-overdue-reminders`, existing workflow history, audit logs, notifications, and WeCom personal app delivery semantics. Do not add a parallel reminder channel, change approval status from reminders, or expand into complex BPM/SLA escalation without a new Issue.
|
||||||
- After DG7/MRF7, mobile approval is an "approval and progress" entry: employees may use it for submitted-item progress, while approvers use it for assigned tasks. Do not reintroduce disabled approval tabs for ordinary employees, duplicated home pending lists, or notification cards that only bounce users back to the notification center when a business target exists.
|
- After DG7/MRF7, mobile approval is an "approval and progress" entry: employees may use it for submitted-item progress, while approvers use it for assigned tasks. Do not reintroduce disabled approval tabs for ordinary employees, duplicated home pending lists, or notification cards that only bounce users back to the notification center when a business target exists.
|
||||||
- After RI6, LP6, ME6 automation, QG6, and R7/OPS7/DOC7 draft materials, keep `ME6-3` open until representative real-device testing passes or the user explicitly accepts that risk. R7 draft rows may be `DONE`, but `R7E-*` true execution rows must stay `TODO` until the user confirms participants, roles, window, rollback contact, issue owner, and daily closeout. Do not treat QG6 or public mobile visual automation as a real-device substitute, and do not start real R7 from documentation alone.
|
- After RI6, LP6, ME6 automation, QG6, MIF7/MIF7T, MIF7TD, and R7/OPS7/DOC7 draft materials, treat `ME6-3` as closed by representative iPhone 12, iPhone 14, and Redmi K60 Enterprise WeChat feedback. R7 draft rows may be `DONE`, but `R7E-*` true execution rows must stay `TODO` until the user confirms participants, roles, window, rollback contact, issue owner, and daily closeout, and R7E automatic gates pass. Do not start real R7 from documentation alone; future mobile or real-device regressions must be recorded as new Issues such as UX8/R7E follow-ups.
|
||||||
- After DCL7, document governance must start from `docs/文档索引.md` and `docs/文档事实源状态矩阵.md`. Use Chinese-first current docs. Confirmed obsolete docs may be physically removed from the current tree and restored from git history when needed; do not create `docs/archive/` just to move clutter. Do not rewrite old Issue CSV snapshots when cleaning current docs.
|
- After DCL7, document governance must start from `docs/文档索引.md` and `docs/文档事实源状态矩阵.md`. Use Chinese-first current docs. Confirmed obsolete docs may be physically removed from the current tree and restored from git history when needed; do not create `docs/archive/` just to move clutter. Do not rewrite old Issue CSV snapshots when cleaning current docs.
|
||||||
|
|||||||
+3
-3
@@ -92,9 +92,9 @@ AGENTS.md 只放硬约束和入口,不复制长规则。
|
|||||||
- 角色差异采用“同框架、按角色裁剪内容和动作”:员工、审批人、财务、管理员、负责人看到不同入口和动作,但不创建互不一致的角色专属移动 UI。
|
- 角色差异采用“同框架、按角色裁剪内容和动作”:员工、审批人、财务、管理员、负责人看到不同入口和动作,但不创建互不一致的角色专属移动 UI。
|
||||||
- 信息展示必须先去重再上屏:首页只保留一处待办/进度摘要,通知只作为事件流并直达业务详情,底部角标只表达数量;同一卡片或同一行只展示一次业务编号和一次状态标签。
|
- 信息展示必须先去重再上屏:首页只保留一处待办/进度摘要,通知只作为事件流并直达业务详情,底部角标只表达数量;同一卡片或同一行只展示一次业务编号和一次状态标签。
|
||||||
- 审批入口默认承载“待我审批”和“我发起的进度”两种视角;普通员工不能看到不可点或无权限的审批入口,审批人/财务/负责人只能看到服务端允许的动作。
|
- 审批入口默认承载“待我审批”和“我发起的进度”两种视角;普通员工不能看到不可点或无权限的审批入口,审批人/财务/负责人只能看到服务端允许的动作。
|
||||||
- 真机验证暂停时记录为 `PAUSED`;自动化通过不能替代代表性真机确认,也不能关闭仍待人工确认的移动阻断。
|
- 真机验证暂停时记录为 `PAUSED`;自动化通过不能替代代表性真机确认,也不能关闭仍待人工确认的移动阻断。当前 `ME6-3` 已由三台代表设备反馈关闭,后续新增真机问题必须另建 Issue 跟踪。
|
||||||
|
|
||||||
截至 R7P,RI6 报销票据体验、LP6 请假采购体验、ME6 自动化/部署收口、QG6 QA 治理以及 R7/OPS7/DOC7 草案材料均已完成;`ME6-3` 代表性企业微信真机抽查因设备不便继续待确认。后续默认进入等待门禁状态:不得关闭 `ME6-3`,不得把 QG6 或公网移动视觉矩阵当成真机替代,也不得从文档草案直接启动真实 R7。R7 真实执行必须保持 `R7E-*` 为 TODO,直到用户确认最终人员、角色、窗口、回滚联系人、问题登记负责人和每日收口节奏,并补足真机门禁或明确接受风险。
|
截至 MIF7TD,RI6 报销票据体验、LP6 请假采购体验、ME6 自动化/部署收口、QG6 QA 治理、MIF7/MIF7T 移动整改与真机反馈、带凭据 live smoke/OCR 复检以及 R7/OPS7/DOC7 草案材料均已完成;`ME6-3` 已关闭。后续默认进入 R7E 前置门禁准备状态:不得把文档草案当成真实 R7 启动证据,也不得把未来新增真机问题用自动化伪造成关闭。R7 真实执行必须保持 `R7E-*` 为 TODO,直到用户确认最终人员、角色、窗口、回滚联系人、问题登记负责人和每日收口节奏,并完成 R7E 自动门禁。
|
||||||
|
|
||||||
文档治理采用 DCL7 后的中文优先和物理精简策略:
|
文档治理采用 DCL7 后的中文优先和物理精简策略:
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ AGENTS.md 只放硬约束和入口,不复制长规则。
|
|||||||
- 已确认不用的历史文档从当前树物理删除,不放 `docs/archive/`;需要时通过 git 历史恢复。
|
- 已确认不用的历史文档从当前树物理删除,不放 `docs/archive/`;需要时通过 git 历史恢复。
|
||||||
- 不回写旧 Issue CSV 快照;旧 Issue 中的历史路径保留审计语义。
|
- 不回写旧 Issue CSV 快照;旧 Issue 中的历史路径保留审计语义。
|
||||||
- 历史矩阵、旧 runbook 或旧 trialrun 记录若与最新 Issue CSV、当前 PRD 或模块规约冲突,以最新 Issue CSV 和当前模块规约为准。
|
- 历史矩阵、旧 runbook 或旧 trialrun 记录若与最新 Issue CSV、当前 PRD 或模块规约冲突,以最新 Issue CSV 和当前模块规约为准。
|
||||||
- R7/OPS7/DOC7 草案不代表真实 R7 已启动;MIF7 TODO 不代表移动整改已完成。
|
- R7/OPS7/DOC7 草案不代表真实 R7 已启动;MIF7/MIF7T 已收口,后续移动体验问题应进入新的 UX8 或专项 Issue。
|
||||||
|
|
||||||
### 7. 提交要小批次、中文、可回滚
|
### 7. 提交要小批次、中文、可回滚
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
# R7 扩大试运行草案
|
# R7 扩大试运行草案
|
||||||
|
|
||||||
**文档状态**:草案。当前只用于准备 R7,不代表 R7 已启动。
|
**文档状态**:草案。当前只用于准备 R7,不代表 R7 已启动。
|
||||||
**当前前提**:R6、PC6、PA6、FL6、AP6、RI6、LP6、ME6 自动化、QG6 已完成;`ME6-3` 代表性企业微信真机抽查仍待确认。
|
**当前前提**:R6、PC6、PA6、FL6、AP6、RI6、LP6、ME6、QG6、MIF7、MIF7T 和 MIF7TD 已完成;`ME6-3` 代表性企业微信真机门禁已关闭。R7 仍未真实启动。
|
||||||
|
|
||||||
## 1. 启动边界
|
## 1. 启动边界
|
||||||
|
|
||||||
R7 是受控扩大试运行,不是全面正式上线。真实启动前必须同时满足:
|
R7 是受控扩大试运行,不是全面正式上线。真实启动前必须同时满足:
|
||||||
|
|
||||||
- 用户确认最终参与名单、角色、时间窗口、回滚联系人和问题登记负责人。
|
- 用户确认最终参与名单、角色、时间窗口、回滚联系人和问题登记负责人。
|
||||||
- `ME6-3` 真机门禁通过,或用户明确接受“真机未补测”的风险。
|
- 用户确认每日收口节奏和暂停/回滚决策人。
|
||||||
- 公网 `/ready`、public bundle、live readiness、核心业务流和账号角色只读核验通过。
|
- R7E 公网 `/ready`、public bundle、带凭据 live readiness、核心业务流、公网移动矩阵和账号角色只读核验通过。
|
||||||
- 阻断问题为 0;严重问题已有当天修复、降级或回滚判断。
|
- 阻断问题为 0;严重问题已有当天修复、降级或回滚判断。
|
||||||
|
|
||||||
真机不方便期间,只能做草案、运维材料和培训材料,不启动真实 R7。
|
仅完成草案、运维材料、培训材料或历史真机门禁,不会自动启动真实 R7。
|
||||||
|
|
||||||
## 2. 试运行范围
|
## 2. 试运行范围
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
|
|||||||
- 2026-05-13 用户完成 iPhone 12、iPhone 14、Redmi K60 企业微信代表性真机主流程复测,`ME6-3` 已按主流程门禁关闭;iPhone 12 图文上下间距偏紧按非阻断观察项记录。
|
- 2026-05-13 用户完成 iPhone 12、iPhone 14、Redmi K60 企业微信代表性真机主流程复测,`ME6-3` 已按主流程门禁关闭;iPhone 12 图文上下间距偏紧按非阻断观察项记录。
|
||||||
- MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检;2026-05-13 已将包含 `cf2bba0` 的 MIF7T 代码部署到 `https://oa.hyinda.com`。
|
- MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检;2026-05-13 已将包含 `cf2bba0` 的 MIF7T 代码部署到 `https://oa.hyinda.com`。
|
||||||
- MIF7TD 收口报告为 `artifacts/qa-flow/live-smoke-readiness-20260513-115455/`:公网 live smoke `3 passed`,真实 OCR `1 passed`,样票为重复发票可解释终态;`pending OCR` 因本地未注入 `DATABASE_URL` 记录 `SKIP`,不作为 MIF7-7 硬阻断。
|
- MIF7TD 收口报告为 `artifacts/qa-flow/live-smoke-readiness-20260513-115455/`:公网 live smoke `3 passed`,真实 OCR `1 passed`,样票为重复发票可解释终态;`pending OCR` 因本地未注入 `DATABASE_URL` 记录 `SKIP`,不作为 MIF7-7 硬阻断。
|
||||||
- R7/OPS7/DOC7 是准备材料;真实 R7 未启动,需用户确认人员、窗口、回滚联系人、问题登记负责人和真机风险状态。
|
- R7/OPS7/DOC7 是准备材料;真实 R7 未启动,需用户确认人员、窗口、回滚联系人、问题登记负责人和每日收口节奏,并先完成 R7E 自动门禁。
|
||||||
|
|
||||||
## 关键证据索引
|
## 关键证据索引
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
"Domain","Tier","Routes","Primary_Roles","Env_Gates","Feature_Flags","Coverage_Status","Evidence","Validated_Flows","Gaps","Next_Action"
|
"Domain","Tier","Routes","Primary_Roles","Env_Gates","Feature_Flags","Coverage_Status","Evidence","Validated_Flows","Gaps","Next_Action"
|
||||||
"__DOC_STATUS__","meta","N/A","N/A","N/A","N/A","current_summary","docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md","DCL7 后保留的轻量覆盖摘要。历史长表可通过 5da05eb 的 git 历史恢复。","历史缺口不代表当前待办。","当前门禁以最新 Issue CSV 为准。"
|
"__DOC_STATUS__","meta","N/A","N/A","N/A","N/A","current_summary","docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md","DCL7 后保留的轻量覆盖摘要。历史长表可通过 5da05eb 的 git 历史恢复。","历史缺口不代表当前待办。","当前门禁以最新 Issue CSV 为准。"
|
||||||
"报销请假采购审批","current","/reimbursements|/leave-requests|/purchase-requests|/workflow/tasks","employee|manager|finance","N/A","N/A","done","issues/R6|RI6|LP6|AP6","报销、请假、采购、审批主链路已在 R6 后批次收口。","ME6-3 真机仍待确认。","进入 MIF7 前先做移动整改。"
|
"报销请假采购审批","current","/reimbursements|/leave-requests|/purchase-requests|/workflow/tasks","employee|manager|finance","N/A","N/A","done","issues/R6|RI6|LP6|AP6|MIF7T","报销、请假、采购、审批主链路和移动列表/详情体验已在 R6 后批次收口。","R7 真实扩大试运行未启动。","进入 R7E 前先跑自动门禁并确认参与名单、窗口和负责人。"
|
||||||
"移动与企业微信","current","/mobile|/mobile/approvals|/mobile/reimbursements|/mobile/notifications","employee|manager|finance","WECOM_*","wecom_entry_v1","partial_done","issues/ME6|DG7|MIA7","自动化和公网视觉通过,真机代表设备未关闭。","iPhone12/iPhone14/Redmi K60 企业微信仍需复测或风险接受。","MIF7 继续整改移动 IA。"
|
"移动与企业微信","current","/mobile|/mobile/approvals|/mobile/reimbursements|/mobile/notifications|/mobile/purchase-requests","employee|manager|finance","WECOM_*","wecom_entry_v1","done","issues/ME6|DG7|MIA7|MIF7|MIF7T|MIF7TD","自动化、公网视觉、三台代表性企业微信真机反馈和带凭据 live smoke/OCR 已收口。","后续新增移动体验问题进入 UX8 或专项 Issue。","R7E 前按公网移动矩阵做回归,不重新打开 ME6-3。"
|
||||||
"财务与导出","current","/ap-operations|/payment-batches","finance","N/A","payment_batch_v1","done","issues/FL6|PA6","财务台账、导出、权限和审计已完成一轮。","R7 真实财务用户扩大试运行未启动。","R7 前按草案确认人员和窗口。"
|
"财务与导出","current","/ap-operations|/payment-batches","finance","N/A","payment_batch_v1","done","issues/FL6|PA6|MIF7T","财务台账、导出、权限、审计和移动财务首页区分已完成一轮。","R7 真实财务用户扩大试运行未启动。","R7 前按草案确认人员、窗口、回滚联系人和财务验收路径。"
|
||||||
|
|||||||
|
@@ -1,6 +1,6 @@
|
|||||||
Domain,Tier,Primary_Roles,PC_Routes,Mobile_WeCom_Routes,Server_Routes,Main_Flow,Exception_Flow,Permission_Flow,Current_Coverage,Known_Gaps,Best_Practice_Delta,Next_Action
|
Domain,Tier,Primary_Roles,PC_Routes,Mobile_WeCom_Routes,Server_Routes,Main_Flow,Exception_Flow,Permission_Flow,Current_Coverage,Known_Gaps,Best_Practice_Delta,Next_Action
|
||||||
"认证与企业微信入口","P0","employee|manager|finance|admin","/login|/portal|/settings/profile","/mobile|/mobile/me","server/src/routes/auth.js|server/src/routes/wecomAuth.js|server/src/routes/me.js","账号登录或企业微信进入 OA,按设备进入 PC 或移动工作台。","未绑定、会话过期、OAuth 回跳失败。","员工看个人入口,管理员看系统入口。","wecom-entry|live-smoke|ME6 automation","ME6-3 真机门禁未关闭。","企业微信只做入口、身份、消息和 deeplink。","MIF7 后再做代表性真机复测。"
|
"认证与企业微信入口","P0","employee|manager|finance|admin","/login|/portal|/settings/profile","/mobile|/mobile/me","server/src/routes/auth.js|server/src/routes/wecomAuth.js|server/src/routes/me.js","账号登录或企业微信进入 OA,按设备进入 PC 或移动工作台。","未绑定、会话过期、OAuth 回跳失败。","员工看个人入口,管理员看系统入口。","wecom-entry|live-smoke|ME6 automation|MIF7TD","ME6-3 已关闭;R7 真实扩大试运行未启动。","企业微信只做入口、身份、消息和 deeplink。","R7E 前跑公网匿名、带凭据 live readiness 和角色只读核验。"
|
||||||
"报销与票据","P0","employee|manager|finance","/reimbursements|/reimbursements/:id|/ap-operations","/mobile/reimbursements|/mobile/reimbursements/:id","server/src/routes/reimbursements.js|server/src/routes/invoicePool.js|server/src/routes/apOperations.js","员工建报销、加发票/附件、提交审批、财务复核或付款状态展示。","识别失败、重复票据、已归档、缺附件。","员工看本人,审批人处理分配任务,财务看财务范围。","RI6|FL6|PA6","R7 真实扩大试运行未启动。","移动轻任务,PC 高密度复核。","MIF7 统一详情壳和返回语义。"
|
"报销与票据","P0","employee|manager|finance","/reimbursements|/reimbursements/:id|/ap-operations","/mobile/reimbursements|/mobile/reimbursements/:id","server/src/routes/reimbursements.js|server/src/routes/invoicePool.js|server/src/routes/apOperations.js","员工建报销、加发票/附件、提交审批、财务复核或付款状态展示。","识别失败、重复票据、已归档、缺附件。","员工看本人,审批人处理分配任务,财务看财务范围。","RI6|FL6|PA6|MIF7|MIF7T","R7 真实扩大试运行未启动。","移动轻任务,PC 高密度复核。","R7E 前复跑核心业务流和公网移动矩阵。"
|
||||||
"请假与采购","P0","employee|manager","/leave-requests|/purchase-requests|/workflow/tasks","/mobile/leave|/mobile/approvals","server/src/routes/leave.js|server/src/routes/purchaseRequests.js|server/src/routes/workflow.js","员工提交,请假/采购进入审批,审批人处理,员工看进度。","退回/驳回、缺预算池 warning、附件缺失。","自审和 admin-only 业务审批由服务端拒绝。","LP6|PS6|PA6","采购复杂预算、供应商准入、ERP 不在当前范围。","状态和审批历史一致。","MIF7 优化移动进度分组。"
|
"请假与采购","P0","employee|manager","/leave-requests|/purchase-requests|/workflow/tasks","/mobile/leave|/mobile/purchase-requests|/mobile/approvals","server/src/routes/leave.js|server/src/routes/purchaseRequests.js|server/src/routes/workflow.js","员工提交,请假/采购进入审批,审批人处理,员工看进度。","退回/驳回、缺预算池 warning、附件缺失。","自审和 admin-only 业务审批由服务端拒绝。","LP6|PS6|PA6|MIF7T","采购复杂预算、供应商准入、ERP 不在当前范围;移动采购创建如需进入 R7 后优化另拆 Issue。","状态和审批历史一致。","R7E 前复跑请假/采购列表、详情和返回语义。"
|
||||||
"通知与审批效率","P0","employee|manager","/notifications|/workflow/tasks","/mobile/notifications|/mobile/approvals","server/src/routes/notifications.js|server/src/routes/workflow.js","通知事件直达详情;申请人可催办本人 pending 任务。","通知目标不存在、无权限、重复催办。","催办不改变审批状态,通知失败不回滚业务。","AP6|DG7|MIA7","通知和进度视觉仍需 MIF7 进一步区分。","通知是事件收件箱,不是待办副本。","MIF7 做通知事件化。"
|
"通知与审批效率","P0","employee|manager","/notifications|/workflow/tasks","/mobile/notifications|/mobile/approvals","server/src/routes/notifications.js|server/src/routes/workflow.js","通知事件直达详情;申请人可催办本人 pending 任务。","通知目标不存在、无权限、重复催办。","催办不改变审批状态,通知失败不回滚业务。","AP6|DG7|MIA7|MIF7","R7 真实扩大试运行未启动。","通知是事件收件箱,不是待办副本。","R7E 前复跑通知直达和审批/进度矩阵。"
|
||||||
"系统治理和财务","P1","finance|admin","/system/*|/audit-logs|/ap-operations","/mobile/me","server/src/routes/audit.js|server/src/routes/featureFlags.js|server/src/routes/apOperations.js","管理员看配置和审计,财务看台账和导出。","权限不足、导出失败、审计缺口。","管理员不默认获得财务业务能力,财务不获得系统管理能力。","PA6|FL6|QG6","R7 真实执行未启动。","最小权限和可追溯。","R7 前确认人员、窗口和回滚联系人。"
|
"系统治理和财务","P1","finance|admin","/system/*|/audit-logs|/ap-operations","/mobile/me","server/src/routes/audit.js|server/src/routes/featureFlags.js|server/src/routes/apOperations.js","管理员看配置和审计,财务看台账和导出。","权限不足、导出失败、审计缺口。","管理员不默认获得财务业务能力,财务不获得系统管理能力。","PA6|FL6|QG6","R7 真实执行未启动。","最小权限和可追溯。","R7 前确认人员、窗口和回滚联系人。"
|
||||||
|
|||||||
|
+8
-6
@@ -57,9 +57,10 @@
|
|||||||
- 当前正式运行口径:`majianyong` 是员工可见直属主管;`wangshunli` 是 `ceo + admin`,不配置为普通 `manager`;`admin` 不代表业务审批权。
|
- 当前正式运行口径:`majianyong` 是员工可见直属主管;`wangshunli` 是 `ceo + admin`,不配置为普通 `manager`;`admin` 不代表业务审批权。
|
||||||
|
|
||||||
### W-2 转审适用范围
|
### W-2 转审适用范围
|
||||||
- 转审是通用审批能力,支持:报销、请假、采购、差旅
|
- 产品目标:转审是通用审批能力,目标覆盖报销、请假、采购、差旅。
|
||||||
- 条件:只能转给具备对应单据审批权限的人
|
- 条件:只能转给具备对应单据审批权限的人,且不得绕过必经老板、财务或 HR/行政节点。
|
||||||
- 当前代码仅限报销,需移除 `entity_type !== "reimbursement"` 的硬限制
|
- 当前实现状态:转审路由仍使用 `expense.transfer` 前置权限,`approvalTransfer` 专门留痕仍以报销为主;跨域转审扩展不作为当前 R7 硬门禁。
|
||||||
|
- 后续若要覆盖请假、采购或差旅,拆 `W2F` follow-up,先评审权限、状态机、转审链路、通知和历史留痕。
|
||||||
|
|
||||||
### W-3 转审次数上限
|
### W-3 转审次数上限
|
||||||
- 上限保留 3 次,超过后拒绝继续转审
|
- 上限保留 3 次,超过后拒绝继续转审
|
||||||
@@ -74,7 +75,8 @@
|
|||||||
## 通知渠道
|
## 通知渠道
|
||||||
|
|
||||||
### N-1 三渠道联动策略
|
### N-1 三渠道联动策略
|
||||||
- 审批类高优先级事件默认三渠道并发:站内通知 + 企微 + 邮件
|
- 产品目标:审批类高优先级事件可支持站内通知 + 企业微信个人应用消息 + 邮件。
|
||||||
|
- 当前 R7 验收口径:以站内通知 + 企业微信个人应用消息和 deeplink 为主;邮件通道是否进入验收另拆 Issue。
|
||||||
- 当前不做用户级"关某渠道"配置
|
- 当前不做用户级"关某渠道"配置
|
||||||
- 后续通知量上来后再做订阅偏好管理
|
- 后续通知量上来后再做订阅偏好管理
|
||||||
|
|
||||||
@@ -83,9 +85,9 @@
|
|||||||
## Portal 首页
|
## Portal 首页
|
||||||
|
|
||||||
### P-1 经理视图判断逻辑
|
### P-1 经理视图判断逻辑
|
||||||
- 现状:用 `system.users` 或 `report.dashboard.view` 判断,不准确
|
- 当前状态:Portal 经理/角色能力已通过 `buildRoleCapabilities` 类逻辑按角色和权限承载。
|
||||||
- 口径:有任一**审批权限**(`*.approve`)或**域管理权限**(`*.manage` 非 `view_all`)的用户进入经理视图
|
- 口径:有任一**审批权限**(`*.approve`)或**域管理权限**(`*.manage` 非 `view_all`)的用户进入经理视图
|
||||||
- 实现时建议提取 `isManagerRole(permissions)` 工具函数统一判断
|
- 后续可选择提取 `isManagerRole(permissions)` 共享工具减少重复,但这不是当前 R7 阻断项。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+5
-3
@@ -177,17 +177,19 @@ LP6 之后,请假和采购体验以“状态清楚、审批历史一致、缺
|
|||||||
- 报销、请假、采购三类单据的详情页和卡片遵循同一主标识、状态、关键指标、审批流和下一步动作槽位。
|
- 报销、请假、采购三类单据的详情页和卡片遵循同一主标识、状态、关键指标、审批流和下一步动作槽位。
|
||||||
- 差旅仍不进入当前主线扩展;如恢复差旅能力,必须先新建独立 Issue CSV。
|
- 差旅仍不进入当前主线扩展;如恢复差旅能力,必须先新建独立 Issue CSV。
|
||||||
|
|
||||||
## 当前后续批次
|
## 当前移动批次状态
|
||||||
|
|
||||||
已完成的当前事实链为:R6、PC6、PA6、FL6、AP6、RI6、LP6、ME6 自动化、QG6、DG7/MRF7、MIA7。`ME6-3` 代表性企业微信真机门禁仍待确认,MIF7 是下一批移动信息架构整改合同。
|
已完成的当前事实链为:R6、PC6、PA6、FL6、AP6、RI6、LP6、ME6 自动化与真机门禁、QG6、DG7/MRF7、MIA7、MIF7、MIF7T 和 MIF7TD。`ME6-3` 已关闭;后续移动体验问题进入 UX8 或单独 Issue,不重新打开 MIF7/MIF7T。
|
||||||
|
|
||||||
MIF7 移动整改默认包含:
|
MIF7/MIF7T 已落地的移动规则包括:
|
||||||
|
|
||||||
- 首页去重:常用入口改成不重复底部 Tab 的快捷动作,待处理摘要压缩为一张轻摘要。
|
- 首页去重:常用入口改成不重复底部 Tab 的快捷动作,待处理摘要压缩为一张轻摘要。
|
||||||
- 进度页分标签:员工按草稿、审批中、已通过、退回驳回分组;审批人按待我审批、已处理分组。
|
- 进度页分标签:员工按草稿、审批中、已通过、退回驳回分组;审批人按待我审批、已处理分组。
|
||||||
- 通知中心事件化:通知不展示审批动作按钮,点击直达目标详情。
|
- 通知中心事件化:通知不展示审批动作按钮,点击直达目标详情。
|
||||||
- 详情页统一壳:返回位置、标题、状态、内容顺序和底部动作一致。
|
- 详情页统一壳:返回位置、标题、状态、内容顺序和底部动作一致。
|
||||||
- 返回语义统一:优先回来源页或来源标签;无来源时回业务列表或进度标签。
|
- 返回语义统一:优先回来源页或来源标签;无来源时回业务列表或进度标签。
|
||||||
|
- 角色首页裁剪:普通员工、审批人和财务保留同一移动框架,但入口、摘要和动作按角色区分。
|
||||||
|
- 采购移动列表:移动端可查看采购列表和详情;移动发起采购属于后续需求,不默认纳入 R7。
|
||||||
|
|
||||||
历史阶段说明:早期文档中的 R99、R100、R101、R102、R103 是移动与页面治理的历史批次代号,不再作为 2026-05-12 之后的当前排期或待办事实源。需要追溯当时决策时,可阅读历史 Issue CSV 和 `docs/文档事实源状态矩阵.md`。
|
历史阶段说明:早期文档中的 R99、R100、R101、R102、R103 是移动与页面治理的历史批次代号,不再作为 2026-05-12 之后的当前排期或待办事实源。需要追溯当时决策时,可阅读历史 Issue CSV 和 `docs/文档事实源状态矩阵.md`。
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -17,10 +17,10 @@
|
|||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| R6 小范围试运行 | 已完成并部署;不等于全面正式上线 | `issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv`、[人工试运行报告](./trialrun/人工试运行报告.md) |
|
| R6 小范围试运行 | 已完成并部署;不等于全面正式上线 | `issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv`、[人工试运行报告](./trialrun/人工试运行报告.md) |
|
||||||
| PC6/PA6/FL6/AP6/RI6/LP6 | 已按各自合同完成 | 最新相关 `issues/*.csv` |
|
| PC6/PA6/FL6/AP6/RI6/LP6 | 已按各自合同完成 | 最新相关 `issues/*.csv` |
|
||||||
| ME6 | 自动化和公网视觉矩阵已完成;`ME6-3` 真机门禁未关闭 | [真机公网测试清单](./trialrun/真机公网测试清单.md) |
|
| ME6 | 自动化、公网视觉矩阵和 `ME6-3` 代表性企业微信真机门禁已关闭 | [真机公网测试清单](./trialrun/真机公网测试清单.md) |
|
||||||
| QG6 | QA 治理已完成 | `issues/2026-05-12_01-47-00-r6-qa-governance-upgrade.csv` |
|
| QG6 | QA 治理已完成 | `issues/2026-05-12_01-47-00-r6-qa-governance-upgrade.csv` |
|
||||||
| DG7/MRF7/MIA7 | 移动信息去重、真机反馈修复和审查已完成 | [移动信息架构视觉流程审查](./trialrun/移动信息架构视觉流程审查.md) |
|
| DG7/MRF7/MIA7 | 移动信息去重、真机反馈修复和审查已完成 | [移动信息架构视觉流程审查](./trialrun/移动信息架构视觉流程审查.md) |
|
||||||
| MIF7 | 下一批移动整改,仍为 TODO | `issues/2026-05-12_21-48-40-mobile-ia-flow-remediation.csv` |
|
| MIF7/MIF7T | 移动信息架构整改、真机反馈收口、公网部署、公网匿名复检和带凭据 live smoke/OCR 已完成 | `issues/2026-05-12_21-48-40-mobile-ia-flow-remediation.csv`、`issues/2026-05-13_03-35-16-mif7-real-device-feedback-mobile-unification.csv`、[人工试运行报告](./trialrun/人工试运行报告.md) |
|
||||||
| R7 | 只有草案和准备材料;真实 R7 未启动 | [R7扩大试运行草案](./trialrun/R7扩大试运行草案.md) |
|
| R7 | 只有草案和准备材料;真实 R7 未启动 | [R7扩大试运行草案](./trialrun/R7扩大试运行草案.md) |
|
||||||
|
|
||||||
## 已移除历史大表
|
## 已移除历史大表
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# hyb-oa 员工快速上手(10 人以下团队版)
|
# hyb-oa 员工快速上手(10 人以下团队版)
|
||||||
|
|
||||||
**当前状态(2026-05-12 / DOCG7)**:R6 已通过,当前公网试运行地址为 `https://oa.hyinda.com`。R7 未真实启动,R7 用户材料只是草案;`ME6-3` 代表性企业微信真机门禁仍待确认。MIF7 是下一批移动信息架构整改合同,尚未完成,因此移动端首页、进度、通知和详情返回仍会继续优化。
|
**当前状态(2026-05-13 / DCL8)**:R6 已通过,当前公网试运行地址为 `https://oa.hyinda.com`。`ME6-3` 代表性企业微信真机门禁已关闭,MIF7/MIF7T 移动信息架构和真机反馈整改已部署并复检。R7 未真实启动,R7 用户材料仍只是草案;后续真实试运行需要先完成 R7E 自动门禁,并由用户确认参与人、窗口和问题收口节奏。
|
||||||
|
|
||||||
## 1. 你每周主要会用到什么
|
## 1. 你每周主要会用到什么
|
||||||
- `Portal`:看公告、我的待办、我的资产、本周周报入口。
|
- `Portal`:看公告、我的待办、我的资产、本周周报入口。
|
||||||
|
|||||||
+10
-1
@@ -76,6 +76,15 @@
|
|||||||
- 涉及生产、公网、企业微信真机或真实 OCR 的结论,必须以部署后 live smoke 为准;未配置真实条件时必须明确 `SKIP` 和原因。
|
- 涉及生产、公网、企业微信真机或真实 OCR 的结论,必须以部署后 live smoke 为准;未配置真实条件时必须明确 `SKIP` 和原因。
|
||||||
- 提交应按清晰主题小批次完成,commit message 使用中文并引用 Issue ID。
|
- 提交应按清晰主题小批次完成,commit message 使用中文并引用 Issue ID。
|
||||||
|
|
||||||
|
### 2.2 REQ8 当前需求状态表
|
||||||
|
|
||||||
|
| 分类 | 当前口径 |
|
||||||
|
| --- | --- |
|
||||||
|
| 当前已实现 / 已收口 | R6 小范围试运行主链路;PC6/PA6/FL6/AP6/RI6/LP6;ME6 自动化、公网和代表性真机门禁;MIF7/MIF7T 移动信息架构与真机反馈整改;MIF7TD 公网部署、匿名复检和带凭据 live smoke/OCR。 |
|
||||||
|
| R7 必需 | 用户确认参与人、角色、时间窗口、回滚联系人、问题登记负责人和每日收口节奏;R7E 公网健康、public bundle、带凭据 live readiness、公网移动矩阵、核心业务流和账号角色只读门禁通过;阻断问题为 0。 |
|
||||||
|
| R7 后优化 | UX8 真实反馈池、iPhone 12 间距观察项、详情字段扫读性二次优化、移动采购创建能力评估、图片 OCR 能力、转审扩展和邮件通道完整验收。 |
|
||||||
|
| 明确不做 / 当前冻结 | ERP 实时集成、AI 自动处理、完整差旅、复杂 BPM、审批设计器、预算重型控制、企业微信原生审批;任何一项启动都必须另建里程碑和 Issue CSV。 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3. 用户角色与典型场景
|
## 3. 用户角色与典型场景
|
||||||
@@ -152,7 +161,7 @@ OA 是公司唯一正式审批中心。以下审批必须在 OA 内提交、审
|
|||||||
### 6.1 用户流程
|
### 6.1 用户流程
|
||||||
|
|
||||||
1. 员工在 PC 或手机端创建报销草稿。
|
1. 员工在 PC 或手机端创建报销草稿。
|
||||||
2. 上传发票图片、PDF 或必要附件。
|
2. 当前试运行上传 PDF 发票进入 OCR;图片可作为普通附件材料,图片 OCR 属后续能力。
|
||||||
3. 系统执行 OCR,识别发票代码、号码、金额、日期、销方、购方等关键字段。
|
3. 系统执行 OCR,识别发票代码、号码、金额、日期、销方、购方等关键字段。
|
||||||
4. 员工确认或修正识别结果,补充费用明细和说明。
|
4. 员工确认或修正识别结果,补充费用明细和说明。
|
||||||
5. 系统做发票查重和基础校验。
|
5. 系统做发票查重和基础校验。
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# hyb-oa 管理员手册(10 人以下团队版)
|
# hyb-oa 管理员手册(10 人以下团队版)
|
||||||
|
|
||||||
**当前状态(2026-05-12 / DOCG7)**:R6 已通过,PC6、PA6、FL6、AP6、RI6、LP6、ME6 自动化、QG6、DG7/MRF7 和 MIA7 已完成相应收口;`ME6-3` 代表性企业微信真机门禁仍待确认。R7 未真实启动,R7/OPS7/DOC7 只是准备材料,不代表已启动或已上线。下一批移动体验整改合同为 MIF7,尚未完成。
|
**当前状态(2026-05-13 / DCL8)**:R6 已通过,PC6、PA6、FL6、AP6、RI6、LP6、ME6、QG6、DG7/MRF7、MIA7、MIF7/MIF7T 和 MIF7TD 已完成相应收口;`ME6-3` 代表性企业微信真机门禁已关闭。R7 未真实启动,R7/OPS7/DOC7 仍只是准备材料,不代表已启动或已上线;下一步先做 R7E 自动门禁和参与人/窗口确认。
|
||||||
|
|
||||||
## 1. 适用范围
|
## 1. 适用范围
|
||||||
- 适用于 `small_team_internal` 工作区模式。
|
- 适用于 `small_team_internal` 工作区模式。
|
||||||
|
|||||||
+2
-2
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
**文档状态**:当前操作手册,用于本地、公网、企业微信和真实 OCR 试运行验证。
|
**文档状态**:当前操作手册,用于本地、公网、企业微信和真实 OCR 试运行验证。
|
||||||
|
|
||||||
**当前状态(2026-05-13 / MIF7F)**:R6 已通过;R7 未真实启动,R7/OPS7/DOC7 只是准备材料,不代表已启动或已上线;`ME6-3` 代表性企业微信真机门禁仍待确认;MIF7-1..6 本地移动信息架构整改已完成,MIF7-7 部署、公网复检和代表性真机复测仍待收口。自动化、QG6 和公网视觉矩阵不能替代代表性真机验收。
|
**当前状态(2026-05-13 / MIF7TD)**:R6 已通过;`ME6-3` 已由 iPhone 12、iPhone 14、Redmi K60 企业微信代表性真机主流程反馈关闭;MIF7/MIF7T 已完成本地整改、公网部署、公网匿名复检、真机反馈和带凭据 live smoke/OCR 复检。R7 未真实启动,R7/OPS7/DOC7 仍只是准备材料,不代表已启动或已上线。后续新增移动或企业微信门禁仍必须保留真机证据,自动化、公网视觉矩阵和 live smoke 不能替代未来新增真机验收。
|
||||||
|
|
||||||
本文用于 hyb-oa 本地、企业微信和公网试运行。默认策略是:能自动化的先自动化,自动化无法覆盖的才请求人工配合。
|
本文用于 hyb-oa 本地、企业微信和公网试运行。默认策略是:能自动化的先自动化,自动化无法覆盖的才请求人工配合。
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ cd client && npm run build
|
|||||||
- 无明显文字截断、遮挡、按钮样式不一致。
|
- 无明显文字截断、遮挡、按钮样式不一致。
|
||||||
- 首页一级入口使用图标宫格时,图标、标题和容器不重叠,标题不逐字换行。
|
- 首页一级入口使用图标宫格时,图标、标题和容器不重叠,标题不逐字换行。
|
||||||
- 深层 Push 页隐藏底部 Tab,使用顶部返回;吸底主操作不遮挡内容。
|
- 深层 Push 页隐藏底部 Tab,使用顶部返回;吸底主操作不遮挡内容。
|
||||||
- 移动验收采用“跨视口自动化 + 代表性真机确认”:自动化证明响应式基线,iPhone 11、Redmi K60 或同类代表设备确认真实企业微信 WebView 行为。
|
- 移动验收采用“跨视口自动化 + 代表性真机确认”:自动化证明响应式基线,iPhone 12、iPhone 14、Redmi K60 或同类代表设备确认真实企业微信 WebView 行为。当前 `ME6-3` 已关闭;未来新增真机门禁若暂停,必须继续记录为 `PAUSED`,不能用自动化结果替代。
|
||||||
|
|
||||||
## 企业微信验证
|
## 企业微信验证
|
||||||
|
|
||||||
|
|||||||
+9
-6
@@ -153,7 +153,8 @@
|
|||||||
|
|
||||||
### 6.1 上传与识别
|
### 6.1 上传与识别
|
||||||
|
|
||||||
- 支持图片和 PDF 上传;支持类型以当前 OCR provider 和文件处理能力为准。
|
- 产品长期目标允许按 OCR provider 能力扩展图片和 PDF 发票识别。
|
||||||
|
- 当前试运行验收只开放 PDF 发票进入 OCR;图片文件按普通附件材料处理,不进入发票 OCR 或发票查重。
|
||||||
- 上传成功后必须展示明确状态,不允许长期停留在“上传中”。
|
- 上传成功后必须展示明确状态,不允许长期停留在“上传中”。
|
||||||
- OCR 识别字段至少包括:发票代码、发票号码、数电票号码或等效唯一号、金额、税额、价税合计、开票日期、销方、购方。
|
- OCR 识别字段至少包括:发票代码、发票号码、数电票号码或等效唯一号、金额、税额、价税合计、开票日期、销方、购方。
|
||||||
- OCR 完成后,添加发票区域自动刷新,并尝试按规则加入报销明细。
|
- OCR 完成后,添加发票区域自动刷新,并尝试按规则加入报销明细。
|
||||||
@@ -166,10 +167,12 @@
|
|||||||
- 修正发票代码、号码、金额、开票日期等关键字段必须写入审计日志。
|
- 修正发票代码、号码、金额、开票日期等关键字段必须写入审计日志。
|
||||||
- 修正后必须重新触发查重校验。
|
- 修正后必须重新触发查重校验。
|
||||||
|
|
||||||
### 6.3 PDF 与图片口径
|
### 6.3 当前试运行 PDF-only 与后续图片能力口径
|
||||||
|
|
||||||
- 图片直接进入 OCR 队列。
|
- PDF 发票是当前试运行、R7E 和 live OCR 的验收基线。
|
||||||
- PDF 可按 provider 能力直接识别或先转图片后识别。
|
- 图片 OCR 不作为当前验收项,后续如启动必须另拆 P2/UX Issue,并补充样票、隐私处理、provider 能力和回归口径。
|
||||||
|
- 图片材料可作为支付截图、订单、说明等普通附件上传;附件不参与 OCR,不参与发票查重。
|
||||||
|
- PDF 可按 provider 能力直接识别或先转图片后识别,但这属于服务端实现细节,不暴露给普通用户。
|
||||||
- 多页 PDF 首批按一份文件处理;若包含多张发票,后续单独拆分能力。
|
- 多页 PDF 首批按一份文件处理;若包含多张发票,后续单独拆分能力。
|
||||||
- 文件原件必须保留,OCR 结果只是结构化识别数据。
|
- 文件原件必须保留,OCR 结果只是结构化识别数据。
|
||||||
|
|
||||||
@@ -313,12 +316,12 @@
|
|||||||
| INV001 | 正常发票 | 抬头税号匹配,金额 100 元,未重复 | OCR、查重、自动匹配 |
|
| INV001 | 正常发票 | 抬头税号匹配,金额 100 元,未重复 | OCR、查重、自动匹配 |
|
||||||
| INV002 | 重复发票 | 与已报销发票号码相同 | 重复阻断和财务例外 |
|
| INV002 | 重复发票 | 与已报销发票号码相同 | 重复阻断和财务例外 |
|
||||||
| INV003 | 异常发票 | 抬头或税号不匹配 | 人工复核和驳回 |
|
| INV003 | 异常发票 | 抬头或税号不匹配 | 人工复核和驳回 |
|
||||||
| FILE001 | OCR 失败文件 | 模糊图片或无法识别 PDF | 失败重试和人工补录 |
|
| FILE001 | OCR 失败文件 | 无法识别 PDF 或未来图片 OCR 样本 | 失败重试和人工补录 |
|
||||||
| ATT001 | 支付截图 | 非发票附件 | 附件上传、查看、归档 |
|
| ATT001 | 支付截图 | 非发票附件 | 附件上传、查看、归档 |
|
||||||
|
|
||||||
| 场景 | 步骤 | 预期结果 |
|
| 场景 | 步骤 | 预期结果 |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| 上传 OCR 并添加 | 员工创建草稿,上传发票图片,等待 OCR 完成 | 发票从识别中变为可添加或已添加,识别字段可查看 |
|
| 上传 OCR 并添加 | 员工创建草稿,上传 PDF 发票,等待 OCR 完成 | 发票从识别中变为可添加或已添加,识别字段可查看 |
|
||||||
| PDF 上传 | 员工上传 PDF 发票 | 文件保留,OCR 状态明确,失败时可重试或人工修正 |
|
| PDF 上传 | 员工上传 PDF 发票 | 文件保留,OCR 状态明确,失败时可重试或人工修正 |
|
||||||
| 单明细自动匹配 | 草稿只有一条明细,添加发票 | 发票自动绑定该明细 |
|
| 单明细自动匹配 | 草稿只有一条明细,添加发票 | 发票自动绑定该明细 |
|
||||||
| 多明细金额匹配 | 草稿有多条明细,发票金额唯一匹配其中一条 | 发票自动绑定匹配明细 |
|
| 多明细金额匹配 | 草稿有多条明细,发票金额唯一匹配其中一条 | 发票自动绑定匹配明细 |
|
||||||
|
|||||||
@@ -235,6 +235,8 @@
|
|||||||
- 转审不能绕过规则定义的必经老板/总经理、财务或 HR/行政节点;需要例外时必须另走明确改派或规则调整流程并留痕。
|
- 转审不能绕过规则定义的必经老板/总经理、财务或 HR/行政节点;需要例外时必须另走明确改派或规则调整流程并留痕。
|
||||||
- 若老板/总经理本人提交的单据触发老板/总经理节点,默认阻断或进入明确配置的非本人兜底审批人;本规约不开放自审例外。
|
- 若老板/总经理本人提交的单据触发老板/总经理节点,默认阻断或进入明确配置的非本人兜底审批人;本规约不开放自审例外。
|
||||||
|
|
||||||
|
REQ8 当前状态:跨业务转审仍是产品目标,但当前 R7 不以扩展到请假、采购或差旅为硬门禁。后续 `W2F` 实现必须单独建 Issue,评审权限模型、状态机、转审次数、通知、历史留痕和回滚策略,并启用 reviewer。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 7. 异常规则
|
## 7. 异常规则
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||||
|
DCL8-1,DCL8 当前事实源合同建档,"新建 DCL8 当前事实源同步合同,锁定本轮只做当前文档、Skill 和覆盖矩阵口径修正,不启动 R7、不改业务代码。","1) 本 CSV 校验通过;2) 范围限定 docs/.agents/issues;3) 不读取或打印敏感 env;4) 不启动真实 R7。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_13-17-33-dcl8-current-fact-source-sync.csv;人工核对本 CSV 范围。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_13-17-33-dcl8-current-fact-source-sync.csv,[],本轮是治理同步;回滚路径:还原本 CSV 与对应文档修改。
|
||||||
|
DCL8-2,试运行手册当前状态同步,"修正试运行与自动化验证手册中 MIF7F、ME6-3 和 MIF7-7 的旧口径。","1) 当前状态写为 ME6-3 已关闭;2) MIF7/MIF7T 已完成公网部署、真机反馈和带凭据 live smoke/OCR;3) R7 未真实启动;4) 自动化不能替代未来新增真机反馈。","流程级验证:rg -n '当前状态|ME6-3|MIF7|MIF7T|R7|真机验证暂停' docs/试运行与自动化验证手册.md;确认命中为当前口径或历史说明。",rg,DONE,DONE,DONE,docs/试运行与自动化验证手册.md,["DCL8-1"],只改操作手册口径,不执行 live smoke。
|
||||||
|
DCL8-3,Agent 实践与项目 Skill 同步,"更新 Agent 开发交付实践和 hyb-oa delivery Skill,消除旧真机门禁和旧 MIF7 默认。","1) Skill 说明 ME6-3 已关闭;2) Skill 说明 MIF7/MIF7T 已收口;3) R7E 仍需用户确认人员、窗口、回滚联系人、问题负责人和每日节奏;4) Skill quick_validate 通过。","流程级验证:python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;rg -n 'ME6-3|MIF7|MIF7T|R7E|真实 R7' .agents/skills/hyb-oa-delivery/SKILL.md docs/Agent开发交付实践.md。",python3|rg,DONE,DONE,DONE,.agents/skills/hyb-oa-delivery/SKILL.md|docs/Agent开发交付实践.md,["DCL8-2"],不改变 AGENTS 硬约束;只更新当前默认路线。
|
||||||
|
DCL8-4,R7 草案启动前提同步,"更新 R7 扩大试运行草案,去掉历史真机补测前提,固定 R7 仍需用户确认参与人和执行窗口。","1) R7 草案写明 MIF7/MIF7T 已收口;2) R7 启动条件不再要求补 ME6-3;3) R7 仍未启动;4) 草案不代表上线或完成试运行。","流程级验证:rg -n '当前前提|ME6-3|MIF7|MIF7T|R7 是受控扩大试运行|真实启动前' docs/trialrun/R7扩大试运行草案.md。",rg,DONE,DONE,DONE,docs/trialrun/R7扩大试运行草案.md,["DCL8-3"],不新增 R7 参与名单;名单仍需用户确认。
|
||||||
|
DCL8-5,历史矩阵和用户资料同步,"更新历史功能状态矩阵、试运行覆盖矩阵、项目级流程覆盖矩阵、人工试运行报告、管理员手册、员工快速上手和产品设计规则,消除旧真机门禁、旧 MIF7 待办和移动旧缺口。","1) ME6/MIF7/MIF7T 当前状态正确;2) R7 仍为未启动;3) 覆盖矩阵 Next_Action 指向 R7E 前置确认或后续专项;4) 管理员/员工/设计资料不把历史缺口当当前待办。","流程级验证:rg -n 'ME6-3|MIF7|MIF7T|真机|R7' docs/历史功能状态矩阵.md docs/trialrun/试运行覆盖矩阵.csv docs/trialrun/项目级流程覆盖矩阵.csv docs/trialrun/人工试运行报告.md docs/管理员手册.md docs/员工快速上手.md docs/产品设计规则.md。",rg,DONE,DONE,DONE,docs/历史功能状态矩阵.md|docs/trialrun/试运行覆盖矩阵.csv|docs/trialrun/项目级流程覆盖矩阵.csv|docs/trialrun/人工试运行报告.md|docs/管理员手册.md|docs/员工快速上手.md|docs/产品设计规则.md,["DCL8-4"],保留历史审计入口,不恢复旧大表。
|
||||||
|
DCL8-6,DCL8 校验与提交,"完成 DCL8 文档、Skill 和覆盖矩阵同步后的校验和中文提交。","1) DCL8 CSV 校验通过;2) Skill quick_validate 通过;3) 关键术语 rg 巡检可解释;4) git diff --check 通过;5) 中文提交引用 DCL8/REQ8。","流程级验证:validate_issues_csv.py 本 CSV;quick_validate.py .agents/skills/hyb-oa-delivery;rg -n 'ME6-3|MIF7-7|MIF7T|R7|PDF|图片|转审|三渠道' docs .agents AGENTS.md;git diff --check;git commit。",python3|rg|git,DONE,DONE,DONE,issues/2026-05-13_13-17-33-dcl8-current-fact-source-sync.csv|docs|.agents/skills/hyb-oa-delivery,["DCL8-5"],不部署;公网代码仍为 aa19e41 之前已部署的 MIF7T。
|
||||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 557 列。
|
@@ -0,0 +1,7 @@
|
|||||||
|
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||||
|
REQ8-1,REQ8 需求事实源合同建档,"新建 REQ8 需求事实源对齐合同,锁定本轮只做 PRD、模块规约和产品口径勘误与细化,不新增产品能力。","1) 本 CSV 校验通过;2) 不改业务代码;3) 不扩大预算、ERP、AI、完整差旅、复杂 BPM 或审批设计器;4) 输出需求状态表。","流程级验证:validate_issues_csv.py 本 CSV;人工核对 Files 限定在 docs/ 和 issues/。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_13-17-34-req8-requirement-source-alignment.csv,[],回滚路径:还原本 CSV 与需求文档修改。
|
||||||
|
REQ8-2,PRD 当前需求状态表,"在 MVP PRD 中增加 REQ8 当前需求状态表,区分当前已实现、R7 必需、R7 后优化和明确不做。","1) PRD 有需求状态表;2) MIF7/MIF7T 写为已收口;3) R7 启动条件写为待用户确认名单、窗口和负责人;4) 明确冻结项不进入当前实现。","流程级验证:rg -n 'REQ8 当前需求状态|当前已实现|R7 必需|R7 后优化|明确不做|MIF7T|R7E' docs/海音达OA-MVP需求规格说明书.md。",rg,DONE,DONE,DONE,docs/海音达OA-MVP需求规格说明书.md,["REQ8-1"],不重写 PRD 总体结构,只补当前状态和边界。
|
||||||
|
REQ8-3,报销 OCR PDF-only 口径勘误,"修正 PRD 和报销 OCR 规约中图片/PDF 口径冲突,明确当前试运行只开放 PDF 发票 OCR,图片作为后续能力或普通附件材料。","1) 当前试运行验收只要求 PDF 发票 OCR;2) 图片 OCR 进入后续候选,不作为 R7 必需;3) 附件材料仍可支持图片;4) 不改变代码。","流程级验证:rg -n 'PDF-only|PDF 发票|图片 OCR|附件材料|当前试运行' docs/海音达OA-MVP需求规格说明书.md docs/需求-报销发票OCR规约.md。",rg,DONE,DONE,DONE,docs/海音达OA-MVP需求规格说明书.md|docs/需求-报销发票OCR规约.md,["REQ8-2"],只同步需求口径;如要恢复图片 OCR 另拆 P2/UX Issue。
|
||||||
|
REQ8-4,产品口径 W-2/N-1/P-1 状态细化,"调研并更新产品口径中的转审范围、通知三渠道和 Portal 经理视图状态。","1) W-2 标明当前实现仍需 W2F follow-up 或 P2 扩展;2) N-1 标明 R7 验收以站内通知 + 企业微信个人应用消息为主,邮件另行验收;3) P-1 标明 Portal 经理视图已由 buildRoleCapabilities 类逻辑承载,是否抽共享工具另拆;4) 不改代码。","流程级验证:rg -n 'W-2|N-1|P-1|W2F|三渠道|企业微信个人应用消息|buildRoleCapabilities|R7 验收' docs/产品口径.md。",rg,DONE,DONE,DONE,docs/产品口径.md,["REQ8-3"],代码调研结论:转审路由仍有 expense.transfer 前置且 approvalTransfer 仅报销留专表;本轮只记录需求状态。
|
||||||
|
REQ8-5,统一审批中心转审状态补充,"在统一审批中心规约中标明通用转审是产品目标,当前跨域转审扩展需另拆 follow-up。","1) 规约不误导为所有业务已完成;2) 明确当前 R7 不以跨域转审扩展为硬门禁;3) 保留未来支持请假、采购、差旅的产品目标;4) 不修改审批状态机。","流程级验证:rg -n '转审|产品目标|当前实现|W2F|R7' docs/需求-统一审批中心规约.md。",rg,DONE,DONE,DONE,docs/需求-统一审批中心规约.md,["REQ8-4"],涉及状态机和权限模型,后续实现必须单独 Issue + reviewer。
|
||||||
|
REQ8-6,REQ8 校验与提交,"完成需求事实源对齐后的 CSV、术语和 diff 校验,并随 DCL8 中文提交。","1) REQ8 CSV 校验通过;2) PDF/图片/转审/三渠道/R7 术语命中可解释;3) git diff --check 通过;4) 中文提交引用 REQ8。","流程级验证:validate_issues_csv.py 本 CSV;rg -n 'PDF|图片|转审|三渠道|R7|MIF7T' docs/海音达OA-MVP需求规格说明书.md docs/产品口径.md docs/需求-报销发票OCR规约.md docs/需求-统一审批中心规约.md;git diff --check。",python3|rg|git,DONE,DONE,DONE,issues/2026-05-13_13-17-34-req8-requirement-source-alignment.csv|docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-报销发票OCR规约.md|docs/需求-统一审批中心规约.md,["REQ8-5"],本轮不执行 P2 功能开发。
|
||||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 554 列。
|
@@ -0,0 +1,8 @@
|
|||||||
|
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||||
|
R7EP-0,R7E 自动门禁合同建档,"建立 R7E 启动前自动门禁合同,只验证是否具备让用户确认名单和窗口的条件,不启动真实 R7。","1) 本 CSV 校验通过;2) R7E-1 之前不执行真实参与者试运行;3) 不读取或打印敏感 env;4) 失败项不得伪造成通过。","流程级验证:validate_issues_csv.py 本 CSV;人工核对 R7EP 后续行均为 TODO。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_13-17-35-r7e-preflight-automation.csv,[],当前只建档;后续执行前需再次确认是否允许注入 live-smoke.env。
|
||||||
|
R7EP-1,公网匿名健康门禁,"执行 R7E 前公网匿名检查。","1) /ready 返回 ok=true;2) public bundle findings=0;3) 检查结果写入人工试运行报告;4) 未通过则停止 R7E 启动建议。","流程级验证:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs;记录输出摘要。",curl|node,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md,["R7EP-0"],只读公网检查,不部署。
|
||||||
|
R7EP-2,带凭据 live smoke 和真实 OCR 门禁,"在授权后以不打印内容方式注入 live-smoke.env,复跑 live readiness。","1) live-smoke.txt 不含 SKIP 且通过;2) live-ocr.txt 不含 SKIP 且真实 OCR 进入可解释通过终态;3) pending OCR SKIP 单独说明;4) 不打印凭据或样票路径内容。","流程级验证:子 shell set -a source /home/shunli/.hyb-oa/live-smoke.env set +a;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=R7EP bash scripts/qa/run-live-smoke-readiness.sh;检查最新报告。",bash|node|playwright,TODO,TODO,TODO,scripts/qa|artifacts/qa-flow|docs/trialrun/人工试运行报告.md,["R7EP-1"],需用户授权后执行;不得读取 wangzhiling-onetime.env。
|
||||||
|
R7EP-3,公网移动视觉矩阵,"复跑 MIF7 公网移动矩阵,确认 R7E 前移动体验无阻断回退。","1) MIF7 公网移动专项通过;2) 覆盖首页、进度/审批、通知、报销详情、请假详情、采购详情、财务首页;3) 截图目录可追溯;4) 失败项写明设备宽度和页面。","流程级验证:cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list。",playwright,TODO,TODO,TODO,client/tests/e2e/dg7-mobile-information-dedupe.spec.ts|output/playwright/mobile-ia-flow-remediation,["R7EP-2"],使用 mock API 验证公网前端资源和移动布局,不污染业务数据。
|
||||||
|
R7EP-4,核心业务流 smoke,"复核 R7E 前报销、请假、采购、审批和财务只读或测试替身流程。","1) 报销/请假/采购提交与审批测试替身流程可用;2) 财务台账/导出只读检查可用;3) 权限边界不泄露;4) 失败则不建议进入 R7E 人工确认。","流程级验证:BUSINESS_FLOW_GROUPS=reimbursement,leave,procurement bash scripts/qa/run-business-flow-gates.sh local;如脚本不可用,按人工试运行报告记录等价命令和 SKIP 原因。",bash|manual,TODO,TODO,TODO,scripts/qa|docs/trialrun/人工试运行报告.md,["R7EP-3"],不使用真实参与者业务数据;如需生产只读核验另拆 audit-readonly。
|
||||||
|
R7EP-5,账号角色只读核验,"核验 R7E 候选角色账号处于 active 且权限边界符合草案。","1) 员工、审批人、财务、管理员角色边界清晰;2) admin-only 不具备业务审批权;3) 财务不具备系统管理权;4) 只记录角色和状态,不记录密码。","流程级验证:优先使用现有只读脚本或 audit-readonly 查询;核验结果写入 docs/trialrun/人工试运行报告.md。",manual,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md,["R7EP-4"],若需数据库只读查询,启用 audit-readonly;禁止 INSERT/UPDATE/DELETE。
|
||||||
|
R7EP-6,R7E 前置结论,"汇总 R7EP 检查结果,给出是否可进入 R7E 人工确认。","1) 结论只能是可进入 R7E 人工确认或仍需修复/补测;2) 不直接启动 R7;3) 更新相关 Issue 状态;4) 中文提交。","流程级验证:CSV 校验;rg 核对报告;git diff --check;git commit。",python3|rg|git,TODO,TODO,TODO,issues/2026-05-13_13-17-35-r7e-preflight-automation.csv|docs/trialrun/人工试运行报告.md,["R7EP-5"],R7 真实执行仍需用户确认参与名单和窗口。
|
||||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 449 列。
|
@@ -0,0 +1,7 @@
|
|||||||
|
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||||
|
OPS8-0,OPS8 运维准备合同建档,"建立 OPS8 运维和回滚准备合同,先做非破坏性准备,不做真实恢复或配置修改。","1) 本 CSV 校验通过;2) 不执行数据库写操作;3) 不同步或覆盖远端 .env;4) 不做真实恢复演练。","流程级验证:validate_issues_csv.py 本 CSV;人工核对后续行均为 TODO。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_13-17-36-ops8-trialrun-ops-hardening.csv,[],回滚路径:删除本 CSV;不影响运行环境。
|
||||||
|
OPS8-1,远端部署版本追踪,"梳理当前公网部署版本、部署脚本行为和证据记录方式。","1) 记录当前部署 commit;2) 明确 deploy.sh 默认 SYNC_ENV=0;3) 记录 /ready 和 public bundle 检查命令;4) 不改远端配置。","流程级验证:git log -1 --oneline;curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs;写入运维记录。",git|curl|node,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md|docs/trialrun/OPS7运维交接Runbook.md,["OPS8-0"],不部署。
|
||||||
|
OPS8-2,备份和回滚目标清单,"补齐 R7E 前备份文件位置、负责人、回滚目标 commit 和恢复演练窗口占位。","1) 备份文件名/位置记录为占位或已知历史;2) 回滚联系人和执行窗口等待用户确认;3) 回滚目标 commit 记录方式清晰;4) 不执行恢复。","流程级验证:人工核对 OPS Runbook 和人工试运行报告新增占位;rg -n '备份|回滚|恢复演练|commit' docs/trialrun/OPS7运维交接Runbook.md docs/trialrun/人工试运行报告.md。",manual|rg,TODO,TODO,TODO,docs/trialrun/OPS7运维交接Runbook.md|docs/trialrun/人工试运行报告.md,["OPS8-1"],真实恢复演练必须另拆 Issue 并确认窗口。
|
||||||
|
OPS8-3,远端运行状态只读检查,"以只读方式检查 Caddy、Docker Compose、Prisma migration status 和服务状态。","1) 只读命令通过或失败原因记录;2) 不修改 systemd/Caddy/docker compose;3) 不执行 migrate reset;4) 输出可追溯。","流程级验证:按 OPS Runbook 执行只读状态检查;如需 ssh,仅执行 ps/config/status 类命令;结果写入报告。",ssh|manual,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md,["OPS8-2"],涉及远端命令前需确认目标命令;不得打印远端 env。
|
||||||
|
OPS8-4,live readiness 报告归档规则,"固定 R7E/上线前 live readiness 报告目录、命名和引用规则。","1) 报告目录记录 artifacts/qa-flow;2) live smoke/OCR SKIP 规则清晰;3) pending OCR SKIP 不误判为失败或通过;4) 文档引用相同路径。","流程级验证:rg -n 'live readiness|artifacts/qa-flow|SKIP|pending OCR' docs/trialrun/OPS7运维交接Runbook.md docs/trialrun/人工试运行报告.md。",rg,TODO,TODO,TODO,docs/trialrun/OPS7运维交接Runbook.md|docs/trialrun/人工试运行报告.md,["OPS8-3"],只改文档。
|
||||||
|
OPS8-5,OPS8 收口,"完成 OPS8 准备项校验、状态回填和提交。","1) OPS8 CSV 校验通过;2) git diff --check 通过;3) 所有未执行 destructive 项保持 TODO 或 BLOCKED 说明;4) 中文提交。","流程级验证:validate_issues_csv.py 本 CSV;git diff --check;git status --short;git commit。",python3|git,TODO,TODO,TODO,issues/2026-05-13_13-17-36-ops8-trialrun-ops-hardening.csv|docs/trialrun,["OPS8-4"],若仅完成建档,后续行保持 TODO。
|
||||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 559 列。
|
@@ -0,0 +1,6 @@
|
|||||||
|
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||||
|
QAF8-0,QAF8 覆盖刷新合同建档,"建立 QAF8 测试覆盖索引刷新合同,清理旧缺口描述并建立当前最小回归组合。","1) 本 CSV 校验通过;2) 不改业务代码;3) 不运行破坏性测试;4) 后续行按实际执行回填。","流程级验证:validate_issues_csv.py 本 CSV;人工核对 Files 范围。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_13-17-37-qaf8-test-coverage-refresh.csv,[],本轮只建档;可与 DCL8 覆盖矩阵同步关联。
|
||||||
|
QAF8-1,覆盖矩阵旧缺口清理,"清理试运行覆盖矩阵和项目级流程覆盖矩阵中的 ME6-3、MIF7 TODO、移动真机未关闭旧缺口。","1) 当前矩阵不再误导 ME6-3 未关闭;2) MIF7/MIF7T 写为已收口;3) R7 仍未启动;4) 历史缺口不当当前门禁。","流程级验证:rg -n 'ME6-3|MIF7|MIF7T|真机|R7' docs/trialrun/试运行覆盖矩阵.csv docs/trialrun/项目级流程覆盖矩阵.csv。",rg,TODO,TODO,TODO,docs/trialrun/试运行覆盖矩阵.csv|docs/trialrun/项目级流程覆盖矩阵.csv,["QAF8-0"],DCL8 已先处理一轮;本项用于后续专门复核。
|
||||||
|
QAF8-2,当前最小回归组合固化,"在测试规约或试运行手册中固定当前最小回归组合。","1) 包含 CSV 校验、client typecheck/build、设计规则 strict、MIF7 移动矩阵、R6/MUD6/WCM6、live readiness、核心业务流 smoke;2) 区分本地、公网、带凭据;3) SKIP 规则明确。","流程级验证:rg -n '最小回归|MIF7|R6/MUD6/WCM6|live readiness|业务流' docs/测试规约与回归门禁.md docs/试运行与自动化验证手册.md。",rg,TODO,TODO,TODO,docs/测试规约与回归门禁.md|docs/试运行与自动化验证手册.md,["QAF8-1"],不强制每轮全量跑;按风险扩展。
|
||||||
|
QAF8-3,R108/R109 专项归类,"对 R108/R109 等历史不稳定或 SKIP 专项归类为当前门禁、历史证据或待修测试初始化。","1) R108/R109 不再混入当前门禁;2) 若要修测试初始化,另拆 Issue;3) SKIP 不伪造成通过;4) 报告路径可追溯。","流程级验证:rg -n 'R108|R109|SKIP|初始化|当前门禁|历史证据' docs/trialrun/人工试运行报告.md docs/测试规约与回归门禁.md。",rg,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md|docs/测试规约与回归门禁.md,["QAF8-2"],不在本项修测试代码。
|
||||||
|
QAF8-4,QAF8 收口,"完成 QAF8 覆盖刷新验证、状态回填和提交。","1) CSV 校验通过;2) rg 巡检通过;3) git diff --check 通过;4) 中文提交。","流程级验证:validate_issues_csv.py 本 CSV;rg 关键术语;git diff --check;git commit。",python3|rg|git,TODO,TODO,TODO,issues/2026-05-13_13-17-37-qaf8-test-coverage-refresh.csv|docs,["QAF8-3"],可与后续 DCL/REQ 提交合并或单独提交。
|
||||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 543 列。
|
@@ -0,0 +1,8 @@
|
|||||||
|
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||||
|
UX8-0,UX8 反馈优化池建档,"建立 UX8 试运行反馈优化池,仅收真实反馈和自动化证据,不提前大改。","1) 本 CSV 校验通过;2) 候选项均有来源;3) 不新增业务能力;4) 不替代 R7E。","流程级验证:validate_issues_csv.py 本 CSV;人工核对候选项来源。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_13-17-38-ux8-trialrun-feedback-polish.csv,[],本轮只建档;后续按用户反馈执行。
|
||||||
|
UX8-1,iPhone12 间距观察项,"继续跟踪 iPhone12 企业微信图文间距偏紧观察项。","1) 无重叠、压字则不阻断;2) 如用户提供截图再定位;3) 不按单机型硬编码;4) 自动矩阵保持 320/360/375/390/393/414/430。","流程级验证:用户截图复核;Playwright 移动矩阵;记录结果到人工试运行报告。",playwright|manual,TODO,TODO,TODO,client/src|docs/trialrun/人工试运行报告.md,["UX8-0"],只在出现可复现问题时改 CSS token。
|
||||||
|
UX8-2,详情字段扫读性二次优化,"根据试运行反馈优化报销、请假、采购详情字段扫读性。","1) 字段采用统一 label-value;2) 关键信息优先;3) 不改变状态机和接口;4) 移动详情仍隐藏底部 Tab。","流程级验证:MIF7 移动专项扩展截图;人工核对三类详情字段布局。",playwright|manual,TODO,TODO,TODO,client/src/pages/Mobile*DetailPage.tsx|client/src/components/mobile,["UX8-1"],只处理体验;不新增后端字段。
|
||||||
|
UX8-3,财务首页摘要降噪,"继续优化财务首页摘要文案和重复状态表达。","1) 保留财务待复核、待付款、台账/导出;2) 不重复写多个待处理标签;3) 普通员工不可见财务摘要;4) 公网移动矩阵通过。","流程级验证:Playwright 财务角色 /mobile;截图覆盖 390 和关键矩阵;人工核对文案。",playwright|manual,TODO,TODO,TODO,client/src/pages/MobilePortalPage.tsx,["UX8-2"],不改变财务权限或接口。
|
||||||
|
UX8-4,移动采购创建边界评估,"评估移动采购当前只提供列表和详情是否足够。","1) 若 R7 用户需要移动发起采购,另拆功能 Issue;2) 当前不直接实现创建表单;3) 记录真实反馈和频次;4) 不扩大采购预算/ERP。","流程级验证:R7 或试运行反馈登记;rg 核对需求状态表。",manual|rg,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md|docs/海音达OA-MVP需求规格说明书.md,["UX8-3"],移动采购创建属于新能力,需单独方案。
|
||||||
|
UX8-5,列表卡片统一反馈复核,"跟踪报销、请假、采购列表卡片统一后的真实反馈。","1) 用户能一眼识别标题、状态和关键字段;2) 危险动作仍有二次确认;3) 整卡可点语义稳定;4) 发现问题另拆修复。","流程级验证:MIF7 移动专项;用户反馈记录;截图目录 output/playwright/mobile-ia-flow-remediation。",playwright|manual,TODO,TODO,TODO,client/src/pages/MobileReimbursementsPage.tsx|client/src/pages/MobileLeavePage.tsx|client/src/pages/MobilePurchaseRequestsPage.tsx,["UX8-4"],不回滚 MIF7T 统一卡片,除非真实反馈证明阻断。
|
||||||
|
UX8-6,UX8 收口,"完成 UX8 反馈项执行后的验证、状态回填和提交。","1) 已执行项状态真实回填;2) 未执行项保持 TODO;3) 相关 Playwright 或人工证据记录;4) 中文提交。","流程级验证:validate_issues_csv.py 本 CSV;相关 Playwright;git diff --check;git commit。",python3|playwright|git,TODO,TODO,TODO,issues/2026-05-13_13-17-38-ux8-trialrun-feedback-polish.csv|client/src|docs/trialrun,["UX8-5"],按真实反馈推进,不提前做大改。
|
||||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 447 列。
|
@@ -0,0 +1,8 @@
|
|||||||
|
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||||
|
P2T-0,P2 候选需求盘点建档,"建立 P2 候选需求盘点合同,只排序和冻结边界,不进入实现。","1) 本 CSV 校验通过;2) 不改业务代码;3) 不启动 P2 开发;4) 明确冻结项。","流程级验证:validate_issues_csv.py 本 CSV;人工核对所有功能行均为 TODO。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_13-17-39-p2-scope-triage.csv,[],回滚路径:删除本 CSV;不影响当前 MVP。
|
||||||
|
P2T-1,审批与通知候选盘点,"盘点转审扩展、邮件通知和三渠道策略候选。","1) 转审扩展到请假/采购/差旅按 W2F 另拆;2) 邮件通道是否进入验收单独决策;3) 不改现有通知语义;4) 不新增复杂 BPM。","流程级验证:rg -n '转审|邮件|三渠道|BPM' docs/产品口径.md docs/需求-统一审批中心规约.md docs/需求-企业微信基础设施规约.md。",rg,TODO,TODO,TODO,docs/产品口径.md|docs/需求-统一审批中心规约.md|docs/需求-企业微信基础设施规约.md,["P2T-0"],实现需另建 Issue 并启用 reviewer。
|
||||||
|
P2T-2,OCR 与票据候选盘点,"盘点图片 OCR、批量样票回归和 OCR 异步体验候选。","1) PDF-only 当前口径不变;2) 图片 OCR 属后续能力;3) 批量样票不提交真实票据;4) OCR 失败/重复提示保持可解释。","流程级验证:rg -n 'PDF|图片 OCR|批量|OCR|重复' docs/需求-报销发票OCR规约.md docs/报销发票附件规则.md。",rg,TODO,TODO,TODO,docs/需求-报销发票OCR规约.md|docs/报销发票附件规则.md,["P2T-1"],如需真实样票批量回归,必须另行确认样票处理规则。
|
||||||
|
P2T-3,费用预算项目候选盘点,"盘点费用/预算轻量规则、项目轻管理与业务单据关联增强。","1) 预算重型控制冻结;2) 可评估轻量费用提示和项目关联增强;3) 不接 ERP 实时集成;4) 不做正式成本核算。","流程级验证:rg -n '预算|费用|项目|ERP|成本核算' docs/需求-采购费用审批规约.md docs/需求-项目轻管理规约.md docs/集成边界.md。",rg,TODO,TODO,TODO,docs/需求-采购费用审批规约.md|docs/需求-项目轻管理规约.md|docs/集成边界.md,["P2T-2"],不改变当前 MVP 范围。
|
||||||
|
P2T-4,运维上线候选盘点,"盘点备份恢复演练、上线 SLO 门禁和正式上线前准备候选。","1) 备份恢复演练需单独窗口;2) SLO 门禁可先文档化;3) 不执行恢复;4) 不宣布全面上线。","流程级验证:rg -n '备份|恢复|SLO|错误预算|上线' docs/ops docs/trialrun/OPS7运维交接Runbook.md。",rg,TODO,TODO,TODO,docs/ops|docs/trialrun/OPS7运维交接Runbook.md,["P2T-3"],上线前必须先完成 R7E 和 OPS8 或等价门禁。
|
||||||
|
P2T-5,P2 冻结项确认,"确认 ERP 实时集成、AI 自动处理、完整差旅、复杂 BPM、审批设计器、预算重型控制、企业微信原生审批继续冻结。","1) 冻结项写入盘点结论;2) 任一项要启动必须另建里程碑;3) 不误导为当前 Backlog;4) 与集成边界一致。","流程级验证:rg -n 'ERP|AI|完整差旅|复杂 BPM|审批设计器|预算|企业微信原生审批|冻结' docs/海音达OA-MVP需求规格说明书.md docs/集成边界.md docs/产品口径.md。",rg,TODO,TODO,TODO,docs/海音达OA-MVP需求规格说明书.md|docs/集成边界.md|docs/产品口径.md,["P2T-4"],冻结不是永久删除;只是当前 MVP/R7 不进入。
|
||||||
|
P2T-6,P2T 收口,"完成 P2 候选排序和边界确认后的状态回填。","1) 输出候选优先级;2) 冻结项明确;3) 未批准功能保持 TODO;4) 中文提交。","流程级验证:validate_issues_csv.py 本 CSV;rg 核对候选和冻结项;git diff --check;git commit。",python3|rg|git,TODO,TODO,TODO,issues/2026-05-13_13-17-39-p2-scope-triage.csv|docs,["P2T-5"],本合同不进入实现阶段。
|
||||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 551 列。
|
在新工单中引用
屏蔽一个用户