docs(R11-1,R11-2): 历史TODO清账与证据链归档
这个提交包含在:
+18
-14
@@ -1,31 +1,31 @@
|
||||
# 历史 TODO 清账映射(A/C -> E/F)
|
||||
# 历史 TODO 清账映射(A/C -> B/D/F)
|
||||
|
||||
**日期**:2026-02-09
|
||||
**日期**:2026-03-13
|
||||
**范围**:
|
||||
- `issues/2026-02-07-p2-kickoff.csv`
|
||||
- `issues/2026-02-08_14-20-25-p2-ci-and-tests.csv`
|
||||
|
||||
**目标**:对历史 `TODO` 项逐条给出去向:`implemented | superseded | still-open`。
|
||||
**目标**:对历史 `TODO` 项逐条给出去向:`implemented | superseded | still-open`,并以“后续执行合同 + 当前代码路径”形成可审计证据链。
|
||||
|
||||
## 1. 2026-02-07-p2-kickoff.csv
|
||||
|
||||
| Legacy ID | 标题 | 清账状态 | 对应实现 / 去向证据 |
|
||||
| --- | --- | --- | --- |
|
||||
| A1 | 付款凭证扩展与pay幂等冲突判定 | implemented | `issues/2026-02-08_11-02-30-p2-stabilization.csv:B1`(DONE);`server/src/routes/reimbursements.js` 含 `already_paid_conflict` 与 `idempotent` 处理 |
|
||||
| A2 | 委派有效期与自动回收 | implemented | `issues/2026-02-08_11-02-30-p2-stabilization.csv:B2/B3`(DONE);`server/src/routes/delegations.js` 与 `server/src/jobs/delegationRevokeJob.js` |
|
||||
| A5 | Sprint1回归护栏前置 | superseded | 由后续全量回归接管:`server/scripts/regression-workflow-actions.sh`、`server/scripts/regression-all.sh` 持续演进,见 `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D12` |
|
||||
| A3 | OCR真对接与异步处理 | implemented | `issues/2026-02-09_13-39-02-p5-blueprint-v3.csv:F11/F19b`(DONE);`server/src/services/ocr/tencent.js` 与 `server/src/jobs/pgBossJobs.js` |
|
||||
| A3-LOCK | OCR多实例并发幂等锁 | implemented | `issues/2026-02-09_13-39-02-p5-blueprint-v3.csv:F19b`(DONE);`server/src/jobs/ocrJob.js`(并发认领) |
|
||||
| A4 | 审计工作台只读能力 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D2`(DONE)+ `issues/2026-02-08_21-50-09-p4-trialrun-ready.csv`(前端页完善);`server/src/routes/audit.js` 与 `client/src/pages/AuditLogsPage.tsx` |
|
||||
| A1 | 付款凭证扩展与pay幂等冲突判定 | implemented | `issues/2026-02-08_11-02-30-p2-stabilization.csv:B1`(DONE)承接付款幂等收口;当前代码在 `server/src/routes/reimbursements.js` 的 `/api/reimbursements/:id/pay` 已支持 `paymentVoucherNo/paymentDate/paymentChannel` 幂等重试,并在冲突时返回 `already_paid_conflict`。 |
|
||||
| A2 | 委派有效期与自动回收 | implemented | `issues/2026-02-08_11-02-30-p2-stabilization.csv:B2/B3`(DONE)收口委派有效期与并发回收;当前代码在 `server/src/routes/delegations.js` 支持 `validFrom/validTo`,`server/src/jobs/delegationRevokeJob.js` 负责过期授权自动回收与审计。 |
|
||||
| A5 | Sprint1回归护栏前置 | superseded | 该目标已被后续统一回归体系取代:`issues/2026-02-08_17-05-00-p3-full-delivery.csv:D12`(DONE)与 `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D4`(DONE)已将回归入口与 CI 补强收口;当前脚本 `server/scripts/regression-workflow-actions.sh` 与 `server/scripts/regression-all.sh` 持续承接原“护栏前置”职责。 |
|
||||
| A3 | OCR真对接与异步处理 | implemented | `issues/2026-02-09_13-39-02-p5-blueprint-v3.csv:F11` 与 `issues/2026-02-09_13-39-02-p5-blueprint-v3.csv:F19b`(DONE)已将 OCR provider、异步处理与回归闭环收口;当前代码在 `server/src/services/ocr/tencent.js` 提供腾讯云 VAT OCR 对接,在 `server/src/scripts/run-ocr-once.js` 与 `server/src/jobs/ocrJob.js` 提供异步扫描执行能力。 |
|
||||
| A3-LOCK | OCR多实例并发幂等锁 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D3`(DONE)已把 OCR mock 回归与并发锁验收纳入主线;当前代码在 `server/src/jobs/ocrJob.js` 使用 `FOR UPDATE SKIP LOCKED` + `ocr_locked_at/ocr_lock_owner` 进行唯一认领,表结构见 `server/prisma/schema.prisma`。 |
|
||||
| A4 | 审计工作台只读能力 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D2`(DONE)承接审计接口与回归;当前代码在 `server/src/routes/audit.js` 已提供 `/api/audit-logs`,前端 `client/src/pages/AuditLogsPage.tsx` 已实现分页、筛选、导出与权限控制。 |
|
||||
|
||||
## 2. 2026-02-08_14-20-25-p2-ci-and-tests.csv
|
||||
|
||||
| Legacy ID | 标题 | 清账状态 | 对应实现 / 去向证据 |
|
||||
| --- | --- | --- | --- |
|
||||
| C2 | 审计接口自动化测试 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D2`(DONE);`server/scripts/regression-audit.sh` |
|
||||
| C3 | OCR 自动化测试(Mock优先) | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D3`(DONE);`server/scripts/regression-ocr.sh` |
|
||||
| C4 | P3-a 待办列表页落地 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D6`(DONE);`client/src/pages/WorkflowTasksPage.tsx` |
|
||||
| C5 | P3-a 审批详情与动作联调 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D6`(DONE);`client/src/pages/WorkflowTaskDetailPage.tsx` |
|
||||
| C2 | 审计接口自动化测试 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D2`(DONE)直接承接;当前回归脚本 `server/scripts/regression-audit.sh` 已覆盖权限、分页、筛选与参数非法场景。 |
|
||||
| C3 | OCR 自动化测试(Mock优先) | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D3`(DONE)直接承接;当前回归脚本 `server/scripts/regression-ocr.sh` 已覆盖 mock provider、状态流转、失败重试与并发唯一认领。 |
|
||||
| C4 | P3-a 待办列表页落地 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D6`(DONE)直接承接;当前页面 `client/src/pages/WorkflowTasksPage.tsx` 已实现真实待办列表、分页、状态筛选与详情入口。 |
|
||||
| C5 | P3-a 审批详情与动作联调 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D6`(DONE)直接承接;当前页面 `client/src/pages/WorkflowTaskDetailPage.tsx` 已联通 `approve/reject/return/transfer` 动作、候选审批人、错误提示与数据刷新。 |
|
||||
|
||||
## 3. 汇总结论
|
||||
|
||||
@@ -33,4 +33,8 @@
|
||||
- `superseded`:1
|
||||
- `still-open`:0
|
||||
|
||||
> 说明:历史 CSV 快照保持不改;清账通过该文档形成可审计映射链。
|
||||
## 4. 治理口径
|
||||
|
||||
- 历史 `issues/*.csv` 继续保持快照不可变,不回写旧状态。
|
||||
- 清账结论由本文件和后续治理合同承接,作为“旧 TODO 已被后续迭代覆盖”的审计证据。
|
||||
- 若后续代码与旧合同文案冲突,以当前运行时代码和已完成执行合同为准。
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||
R11-0,R11执行合同建档与范围冻结,新建 R11 治理合同并冻结本轮只处理历史 TODO 清账证据刷新与规格书补齐的边界,不回写历史 CSV 且不改运行时代码。,R11 CSV 通过校验且范围明确为治理文档收口,不混入依赖升级 IM-2 或运行时改造。,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-13_10-30-00-r11-contract-reconciliation-and-spec-refresh.csv,manual,DONE,DONE,DONE,issues/2026-03-13_10-30-00-r11-contract-reconciliation-and-spec-refresh.csv|docs/todo-reconciliation.md|docs/requirements-specification.md|docs/feature-matrix.md,[],旧 CSV 保持不可变且以新治理合同承接清账与规格书补齐
|
||||
R11-1,历史 TODO 清账证据刷新,刷新 docs/todo-reconciliation.md 中 A1-A5 与 C2-C5 的 implemented/superseded 证据链,统一落到当前代码路径和后续已完成合同。,10 个 legacy TODO 均具备后续合同证据和当前代码证据,A3-LOCK 明确指向 ocrJob 的 FOR UPDATE SKIP LOCKED 语义。,python3 scripts/validate-feature-matrix.py && git diff --check,manual,DONE,DONE,DONE,docs/todo-reconciliation.md|issues/2026-02-07-p2-kickoff.csv|issues/2026-02-08_14-20-25-p2-ci-and-tests.csv|issues/2026-02-09_23-30-00-p6-p8-remaining-work-master.csv,"[""R11-0""]",保留 implemented|superseded|still-open 三分法且结论为 9 implemented + 1 superseded + 0 still-open
|
||||
R11-2,规格书目录扩展与章节锚点建立,在 requirements-specification 中为请假 采购 资产 差旅 集成补齐独立业务域章节与 API 契约锚点,并同步章节引用口径。,规格书新增 4.7-4.11 与 13.2.7-13.2.11 章节且章节编号和引用口径一致。,git diff --check,manual,DONE,DONE,DONE,docs/requirements-specification.md,"[""R11-0""]",新增章节必须只描述已实现能力 不写未来态设计
|
||||
R11-3,请假采购资产规格补齐,基于已完成执行合同与当前代码补齐请假 采购 资产三域的范围 权限 状态机 数据对象 关键接口与显式不做项。,规格书可独立描述请假 采购 资产三域的业务语义与接口边界,无需再翻旧 CSV 才能理解当前实现。,git diff --check,manual,DONE,DONE,DONE,docs/requirements-specification.md|issues/2026-03-06_14-30-00-p15b-l5-leave-v1.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,"[""R11-2""]",状态机和权限以当前代码与完成合同为准 不沿用早期 blueprint 假设
|
||||
R11-4,差旅集成规格补齐与 cross-cutting 同步,补齐差旅三阶段与集成边界规格,并同步权限模型 API 契约 数据模型概览和迭代计划的相关口径。,规格书完整覆盖 TRAVEL-1 到 TRAVEL-3 以及 IM-1 ERP-1 到 ERP-3 的已实现范围,并明确后置 backlog 不进入本轮主线。,git diff --check,manual,DONE,DONE,DONE,docs/requirements-specification.md|docs/integration-boundaries.md|docs/domain-events.md|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-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,"[""R11-2""]",AI MCP PWA PROD 仍保持在边界文档和运维文档中 不并入本轮规格书主体
|
||||
R11-5,R11矩阵事实源与文档校验收口,将 R11 纳入 feature matrix 事实源并完成 CSV 校验 文档校验 矩阵校验与 diff 检查,形成治理收口结论。,新合同三状态全 DONE 且矩阵与事实源校验通过,文档明确历史 TODO 已通过 reconciliation doc 收口。,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-13_10-30-00-r11-contract-reconciliation-and-spec-refresh.csv && python3 scripts/validate-feature-matrix.py && git diff --check,manual,DONE,DONE,DONE,issues/2026-03-13_10-30-00-r11-contract-reconciliation-and-spec-refresh.csv|docs/feature-matrix.md|scripts/validate-feature-matrix.py|docs/todo-reconciliation.md|docs/requirements-specification.md,"[""R11-1"",""R11-3"",""R11-4""]",若矩阵事实源新增 R11 则需同步说明其仅承接治理收口而不代表新增运行时功能
|
||||
|
在新工单中引用
屏蔽一个用户