From 1577aa41ed4ea1f84de29bdad124f06b47354782 Mon Sep 17 00:00:00 2001 From: shunli Date: Thu, 12 Mar 2026 21:48:47 +0800 Subject: [PATCH] =?UTF-8?q?docs(P22PROD1-6):=20=E7=94=9F=E4=BA=A7=E5=8C=96?= =?UTF-8?q?=E5=8A=A0=E5=9B=BA=E7=9F=A9=E9=98=B5=E6=94=B6=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/feature-matrix.md | 14 +++++++++++--- scripts/validate-feature-matrix.py | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/feature-matrix.md b/docs/feature-matrix.md index 9f39461b..2c2b0b29 100644 --- a/docs/feature-matrix.md +++ b/docs/feature-matrix.md @@ -1,8 +1,8 @@ -# hyb-oa 实现状态矩阵(P5-P19+IM-1+ERP-3+R10+MCP-1+AI-1+TRAVEL-1+TRAVEL-2+TRAVEL-3+PWA-1+PWA-2) +# hyb-oa 实现状态矩阵(P5-P19+IM-1+ERP-3+R10+MCP-1+AI-1+TRAVEL-1+TRAVEL-2+TRAVEL-3+PWA-1+PWA-2+PROD-1) **快照日期**:2026-03-12 -**范围**:`F1-F42`(含 `F19b/F19c/F19d`)+ `R1-S2` + `P9A1-P9D1` + `P10E1-P10G1` + `G0-G6` + `H1` + `M1-M4` + `P13-0-P13-8` + `P14-0-P14-8` + `P15A-0-P15A-5` + `P15B-0-P15B-6` + `P16A-0-P16A-6` + `P16B-0-P16B-6` + `P16C-0-P16C-6` + `R9-0-R9-3` + `G2-0-G2-6` + `P17A-0-P17A-6` + `P17B-0-P17B-6` + `P18A-0-P18A-6` + `P18B-0-P18B-6` + `P19-0-P19-6` + `P19IM1-0-P19IM1-6` + `P19ERP1-0-P19ERP1-6` + `P19ERP2-0-P19ERP2-6` + `P19ERP3-0-P19ERP3-6` + `R10-0-R10-4` + `P19MCP1-0-P19MCP1-4` + `P19AI1-0-P19AI1-5` + `P20TRAVEL1-0-P20TRAVEL1-5` + `P20TRAVEL2-0-P20TRAVEL2-5` + `P20TRAVEL3-0-P20TRAVEL3-5` + `P21PWA1-0-P21PWA1-5` + `P21PWA2-0-P21PWA2-5`,共 266 项。 -**事实源**:`issues/2026-02-09_13-39-02-p5-blueprint-v3.csv` + `issues/2026-02-09_23-30-00-p6-p8-remaining-work-master.csv` + `issues/2026-02-10_09-42-31-p9-maintenance-performance-matrix.csv` + `issues/2026-02-10_10-35-30-p10-production-hardening.csv` + `issues/2026-02-11-p11-p12-governance-mobile.csv` + `issues/2026-02-12_01-09-41-p13-l5-governance.csv` + `issues/2026-02-13_00-11-56-p14-l5-operationalization.csv` + `issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv` + `issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv` + `issues/2026-03-07_13-47-05-p16a-l5-master-data-core.csv` + `issues/2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv` + `issues/2026-03-07_17-14-39-p16c-l5-suppliers.csv` + `issues/2026-03-07_18-15-03-r9-g2-p19-roadmap-refresh.csv` + `issues/2026-03-07_18-16-00-g2-l5-cross-domain-bridge.csv` + `issues/2026-03-07_19-33-09-p17a-l5-procurement-core.csv` + `issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv` + `issues/2026-03-07_22-02-09-p18a-l5-asset-registry-core.csv` + `issues/2026-03-07_22-34-03-p18b-l5-asset-movements-inventory.csv` + `issues/2026-03-07_23-22-00-p19-l4-integration-readiness.csv` + `issues/2026-03-08_12-18-10-p19-im-1-l5-collaboration-adapter.csv` + `issues/2026-03-08_14-10-53-p19-erp-1-l5-masterdata-journal-bridge.csv` + `issues/2026-03-08_22-46-51-p19-erp-2-l5-procurement-commitment-archive.csv` + `issues/2026-03-09_00-10-00-p19-erp-3-l5-asset-ledger-summary.csv` + `issues/2026-03-09_10-15-00-r10-post-erp3-roadmap-refresh.csv` + `issues/2026-03-09_10-25-00-p19-mcp-1-l4-readonly-tools-baseline.csv` + `issues/2026-03-10_12-54-30-p19-ai-1-l5-suggestion-workbench-refresh.csv` + `issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv` + `issues/2026-03-10_21-05-59-p20-travel-2-l5-corporate-payments-refresh.csv` + `issues/2026-03-11_09-57-28-p20-travel-3-l5-reconciliation-erp-bridge-refresh.csv` + `issues/2026-03-11_17-50-39-p21-pwa-1-l5-asset-scan-refresh.csv` + `issues/2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv`(执行合同) +**范围**:`F1-F42`(含 `F19b/F19c/F19d`) + `R1-S2` + `P9A1-P9D1` + `P10E1-P10G1` + `G0-G6` + `H1` + `M1-M4` + `P13-0-P13-8` + `P14-0-P14-8` + `P15A-0-P15A-5` + `P15B-0-P15B-6` + `P16A-0-P16A-6` + `P16B-0-P16B-6` + `P16C-0-P16C-6` + `R9-0-R9-3` + `G2-0-G2-6` + `P17A-0-P17A-6` + `P17B-0-P17B-6` + `P18A-0-P18A-6` + `P18B-0-P18B-6` + `P19-0-P19-6` + `P19IM1-0-P19IM1-6` + `P19ERP1-0-P19ERP1-6` + `P19ERP2-0-P19ERP2-6` + `P19ERP3-0-P19ERP3-6` + `R10-0-R10-4` + `P19MCP1-0-P19MCP1-4` + `P19AI1-0-P19AI1-5` + `P20TRAVEL1-0-P20TRAVEL1-5` + `P20TRAVEL2-0-P20TRAVEL2-5` + `P20TRAVEL3-0-P20TRAVEL3-5` + `P21PWA1-0-P21PWA1-5` + `P21PWA2-0-P21PWA2-5` + `P22PROD1-0-P22PROD1-5`,共 272 项。 +**事实源**:`issues/2026-02-09_13-39-02-p5-blueprint-v3.csv` + `issues/2026-02-09_23-30-00-p6-p8-remaining-work-master.csv` + `issues/2026-02-10_09-42-31-p9-maintenance-performance-matrix.csv` + `issues/2026-02-10_10-35-30-p10-production-hardening.csv` + `issues/2026-02-11-p11-p12-governance-mobile.csv` + `issues/2026-02-12_01-09-41-p13-l5-governance.csv` + `issues/2026-02-13_00-11-56-p14-l5-operationalization.csv` + `issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv` + `issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv` + `issues/2026-03-07_13-47-05-p16a-l5-master-data-core.csv` + `issues/2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv` + `issues/2026-03-07_17-14-39-p16c-l5-suppliers.csv` + `issues/2026-03-07_18-15-03-r9-g2-p19-roadmap-refresh.csv` + `issues/2026-03-07_18-16-00-g2-l5-cross-domain-bridge.csv` + `issues/2026-03-07_19-33-09-p17a-l5-procurement-core.csv` + `issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv` + `issues/2026-03-07_22-02-09-p18a-l5-asset-registry-core.csv` + `issues/2026-03-07_22-34-03-p18b-l5-asset-movements-inventory.csv` + `issues/2026-03-07_23-22-00-p19-l4-integration-readiness.csv` + `issues/2026-03-08_12-18-10-p19-im-1-l5-collaboration-adapter.csv` + `issues/2026-03-08_14-10-53-p19-erp-1-l5-masterdata-journal-bridge.csv` + `issues/2026-03-08_22-46-51-p19-erp-2-l5-procurement-commitment-archive.csv` + `issues/2026-03-09_00-10-00-p19-erp-3-l5-asset-ledger-summary.csv` + `issues/2026-03-09_10-15-00-r10-post-erp3-roadmap-refresh.csv` + `issues/2026-03-09_10-25-00-p19-mcp-1-l4-readonly-tools-baseline.csv` + `issues/2026-03-10_12-54-30-p19-ai-1-l5-suggestion-workbench-refresh.csv` + `issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv` + `issues/2026-03-10_21-05-59-p20-travel-2-l5-corporate-payments-refresh.csv` + `issues/2026-03-11_09-57-28-p20-travel-3-l5-reconciliation-erp-bridge-refresh.csv` + `issues/2026-03-11_17-50-39-p21-pwa-1-l5-asset-scan-refresh.csv` + `issues/2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv` + `issues/2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv`(执行合同) **说明**: - 本矩阵用于全局读图(审计/交接/回归覆盖追踪),不替代 `issues/*.csv` 的执行合同职责。 @@ -309,3 +309,11 @@ | P21PWA2-3 | PWA缓存策略升级与IndexedDB helper收口 | N/A | 2026-03-09_11-25-00-p21-pwa-2-l5-offline-deeplink.csv | 2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv | 2026-03-12 | DONE | client:typecheck/build | `vite-plugin-pwa` runtime cache 升级为静态资源 `StaleWhileRevalidate` + 审批 GET `NetworkFirst`,并新增共享 IndexedDB helper 供上传 / 盘点 / 审批队列复用 | | P21PWA2-4 | PWA二期文档矩阵与主线闭环同步 | N/A | 2026-03-09_11-25-00-p21-pwa-2-l5-offline-deeplink.csv | 2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv | 2026-03-12 | DONE | validate-feature-matrix | 集成边界、PWA 回归清单、Feature Matrix 与事实源校验器同步到 `...+PWA-2`,矩阵总数推进到 266 并明确 R10 主线闭环 | | P21PWA2-5 | P21PWA2回归与R10主线最终验收 | N/A | 2026-03-09_11-25-00-p21-pwa-2-l5-offline-deeplink.csv | 2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv | 2026-03-12 | DONE | server:test + regression-all + client:typecheck/build + validate-feature-matrix | 移动 deep link、离线审批草稿、联网重放、权限拒绝、缓存回退与既有 PWA-1 / workflow 主流程回归全部通过,R10 主线正式闭环 | + + +| P22PROD1-0 | P22PROD1执行合同建档与生产化边界冻结 | N/A | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12 | DONE | CSV 校验 | 冻结 `P22+PROD-1` 为路由级分包、高风险主链路 E2E 与证据化性能审计的单一生产化迭代,不混入新业务域或依赖大升级 | +| P22PROD1-1 | 路由懒加载与构建分包治理 | N/A | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12 | DONE | client:typecheck/build | 顶层业务页切换为 `React.lazy + Suspense`,并在 Vite 中固定 `vendor-*` / `page-*` manual chunks,构建不再出现大包 warning | +| P22PROD1-2 | 差旅三部曲Playwright补齐 | N/A | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12 | DONE | client:test:e2e(travel) | 新增差旅支付与对账 Playwright 规格,覆盖申请→审批→支付→绑票以及 reconciliation batch 创建、异常确认与 finalize 主链路 | +| P22PROD1-3 | 移动审批deep link与离线草稿E2E补齐 | N/A | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12 | DONE | client:test:e2e(mobile approvals) | 以移动 viewport 自动化覆盖 canonical workflow deep link 分流、离线 `approve/reject` 草稿入队、联网重放与冲突态展示 | +| P22PROD1-4 | 高频查询性能审计与小步修复 | N/A | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12 | DONE | server:test + benchmark scripts | 为 workflow tasks、`/api/assets?q` 与 travel reconciliation batches 新增 benchmark 脚本,并将资产搜索重写为 exact-first / fuzzy-second;未证实收益前不新增索引或 PG 扩展 | +| P22PROD1-5 | P22PROD1矩阵回归与验收收口 | N/A | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv | 2026-03-12 | DONE | server:test + client:typecheck/build/test:e2e + validate-feature-matrix | Feature Matrix、事实源校验器、差旅与移动审批 E2E、后端单测与 benchmark 一并收口,主线推进到 `...+PROD-1` / 272 项 | diff --git a/scripts/validate-feature-matrix.py b/scripts/validate-feature-matrix.py index 07c8f332..d06945c1 100755 --- a/scripts/validate-feature-matrix.py +++ b/scripts/validate-feature-matrix.py @@ -50,6 +50,7 @@ CSV_FACT_SOURCES = [ ROOT / "issues" / "2026-03-11_09-57-28-p20-travel-3-l5-reconciliation-erp-bridge-refresh.csv", ROOT / "issues" / "2026-03-11_17-50-39-p21-pwa-1-l5-asset-scan-refresh.csv", ROOT / "issues" / "2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv", + ROOT / "issues" / "2026-03-12_16-58-44-p22-prod-1-l5-production-hardening.csv", ] ID_PATTERN = re.compile(r"^[A-Z][0-9][0-9A-Za-z-]*$")