"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes" "REQAUD-0","REQ-COMPLETE-AUDIT 合同建档","建立需求完成度复核与考勤边界校正合同;本轮只做需求文档、代码实现和 Issue 证据审计,不新增 API/schema/UI/feature flag,不部署,不切换公网开关。","1) CSV 校验通过;2) 范围锁定为需求完成度审计和事实源纠偏;3) 结论状态使用 DONE/PARTIAL/NOT_STARTED/FROZEN/NEEDS_DECISION;4) 企微打卡不得误写为 OA 已完成能力。","受影响流程:系统完成门禁 -> 需求完成度复核 -> 后续最小合同决策;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_13-32-26-requirements-completion-audit.csv;人工核对本轮不改业务运行时。","python3|manual","DONE","DONE","DONE","issues/2026-05-17_13-32-26-requirements-completion-audit.csv","[]","完成:合同创建并通过 validate_issues_csv;本轮只改 Issue CSV 与现有文档事实源,不改业务代码,不部署,不切换公网 feature flag;回滚路径:回退本 CSV 和本轮文档回写。" "REQAUD-1","事实源盘点","读取当前 PRD、产品口径、企业微信基础设施规约、请假考勤修正规约、统一审批规约、管理员/员工手册和最新完成门禁 CSV,建立本轮审计依据。","1) 已列明当前权威事实源;2) 已确认旧 Issue CSV 仅作证据;3) 已识别与考勤/企微相关的直接事实源;4) 不新增综合规划文档。","受影响流程:需求读取 -> 当前事实源判断 -> 审计依据锁定;验证步骤:rg -n '企业微信|打卡|考勤|补卡|外出|加班|SYSTEM-COMPLETE-GATE|LAUNCH-OPS-V1' docs issues。","rg|manual","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-企业微信基础设施规约.md|docs/需求-请假考勤修正规约.md|docs/需求-统一审批中心规约.md|docs/管理员手册.md|docs/员工快速上手.md|issues/2026-05-17_12-55-49-system-complete-gate.csv|issues/2026-05-17_12-55-50-launch-ops-v1.csv","[""REQAUD-0""]","完成:当前权威事实源为 PRD/产品口径/企业微信规约/请假考勤规约/统一审批规约/管理员手册/员工手册/SCG/LOPS;旧 R59、A4/A5 等 Issue 只作为历史实现和口径证据,不自动生成待办。" "REQAUD-2","首批能力完成度矩阵","逐项复核报销、PDF OCR、审批、请假、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件和代账交接的完成证据。","1) 每项能力都有 DONE/PARTIAL/NOT_STARTED/FROZEN/NEEDS_DECISION 结论;2) DONE 必须引用当前证据;3) PARTIAL/NOT_STARTED 必须写清缺口;4) 不复活旧 TODO。","受影响流程:首批正式能力 -> 证据链 -> 完成度清单;验证步骤:阅读 SCG/LOPS/FINPROD/ACCTH/CASHV 相关 CSV 和人工试运行报告;rg 核对首批能力关键词。","rg|manual","DONE","DONE","DONE","issues/2026-05-17_12-55-49-system-complete-gate.csv|issues/2026-05-17_12-55-50-launch-ops-v1.csv|issues/2026-05-17_11-40-47-fin-prod-enable-payment-batch.csv|issues/2026-05-17_11-40-48-accounting-handoff-v1.csv|docs/trialrun/人工试运行报告.md","[""REQAUD-1""]","完成:首批正式能力保持 DONE:报销、PDF OCR、审批、请假、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件、代账交接;证据为 SCG/LOPS/FINPROD/ACCTH/CASHV 和人工试运行报告;冻结项未复活。" "REQAUD-3","考勤与企微打卡边界审计","明确企业微信打卡为原始采集和风控底座;OA 不重造定位、人脸、Wi-Fi、排班、设备和防作弊;OA 只保留审批解释、团队状态和后续同步边界。","1) 企微打卡运营使用与 OA 同步能力分开记录;2) 不把 OA 极简打卡写成企微打卡完成;3) 后续同步边界清楚;4) 当前正式口径不引导企业微信原生审批。","受影响流程:员工企微打卡 -> OA 请假/补卡/外出/加班审批解释 -> 后续考勤口径;验证步骤:核对 PRD、产品口径、企微规约、请假考勤规约、管理员/员工手册中的打卡边界表述。","rg|manual","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-企业微信基础设施规约.md|docs/需求-请假考勤修正规约.md|docs/管理员手册.md|docs/员工快速上手.md","[""REQAUD-1""]","完成:企业微信打卡运营使用为 DONE;OA 同步企微打卡 API 为 NOT_STARTED;OA 不重造定位、人脸、Wi-Fi、排班、设备和防作弊;企业微信原生审批继续不作为正式审批。" "REQAUD-4","请假补卡外出加班实现核对","核对请假、员工补卡申请、外出申请、加班申请是否具备完整提交、审批、生效或解释闭环,并按真实实现标注完成度。","1) 请假实现状态有证据;2) 补卡、外出、加班分别有状态结论;3) 缺运行时能力时标 PARTIAL 或 NOT_STARTED;4) 不把管理员补卡等同于员工补卡申请审批。","受影响流程:员工提交考勤修正 -> OA 审批 -> 团队状态/考勤解释;验证步骤:rg -n '补卡|外出|加班|leaveRequest|attendanceRecord|admin/backfill|clock-in|clock-out' server/src client/src server/tests client/tests docs issues。","rg|manual","DONE","DONE","DONE","server/src/routes/leave.js|server/src/routes/attendance.js|client/src/pages/AttendancePage.tsx|client/src/pages/MobilePortalPage.tsx|client/src/pages/LeaveRequestPage.tsx|client/src/pages/MobileLeavePage.tsx|server/tests/unit/routes/attendance.test.js|client/tests/e2e/leave-flow.spec.ts|client/tests/e2e/leave-team-calendar.spec.ts","[""REQAUD-3""]","完成:请假申请/审批/撤回/移动查看/团队日历为 DONE;员工补卡申请审批为 NOT_STARTED;外出申请审批为 PARTIAL(团队状态可手工外出,无独立审批对象);加班申请审批为 NOT_STARTED;管理员补卡只属于历史 attendance_v1 管理能力。" "REQAUD-5","历史 OA 极简打卡处理建议","审计历史 attendance_v1 极简 OA 打卡模块与当前产品口径的差异,给出 NEEDS_DECISION 或 FROZEN_AS_FALLBACK 建议,不在本轮修改运行时。","1) attendance_v1 的现有能力、入口和开关已识别;2) 与企微打卡口径的冲突已写清;3) 默认不作为正式企微打卡能力;4) 后续隐藏、关闭或保留备用必须另建合同。","受影响流程:历史 OA 打卡入口 -> 当前企微打卡运营口径 -> 后续功能开关决策;验证步骤:核对 server/src/routes/attendance.js、client/src/pages/AttendancePage.tsx、client/src/pages/MobilePortalPage.tsx、server/src/routes/featureFlags.js 和 R59 Issue。","rg|manual","DONE","DONE","DONE","server/src/routes/attendance.js|server/src/routes/featureFlags.js|server/src/services/featureFlags/index.js|client/src/pages/AttendancePage.tsx|client/src/pages/MobilePortalPage.tsx|issues/2026-04-09_r59-attendance-clockin.csv","[""REQAUD-4""]","完成:attendance_v1 已识别为历史 OA 极简打卡,含 AttendanceRecord/AttendancePolicy、clock-in/out、me/today、me/month、team、policy、admin/backfill、PC/移动入口;因不具备企微定位/人脸/Wi-Fi/设备风控,状态标 NEEDS_DECISION;后续建议 ATTENDANCE-FLAG-CLEANUP 决定隐藏/关闭/保留备用。" "REQAUD-6","未完成和冻结项清单","整理企微打卡 API 同步、考勤月报解释、员工补卡/外出/加班审批、差旅、预算、ERP、真实支付、图片 OCR 等状态,区分未完成、冻结和需决策。","1) 每个候选项都有状态和原因;2) 冻结项不进入当前开发;3) 需决策项有建议后续合同;4) 不遗漏考勤同步与修正审批缺口。","受影响流程:需求缺口 -> 后续合同排序 -> 不增加当前复杂度;验证步骤:rg 核对 PRD、模块规约、索引、人工试运行报告和历史 Issue 中的冻结项与考勤项。","rg|manual","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|issues","[""REQAUD-5""]","完成:NOT_STARTED=企微打卡 API 同步、员工补卡审批、加班审批;PARTIAL=外出申请审批、正式考勤解释;NEEDS_DECISION=attendance_v1;FROZEN=真实支付、ERP、图片 OCR、银行流水导入、复杂 BPM、审批设计器、重预算、完整差旅。" "REQAUD-7","文档事实源回写","把审计结论回写既有事实源和手册:索引、事实源矩阵、人工试运行报告、PRD 和模块规约必要段落;不新建综合规划文档。","1) 文档明确企微打卡与 OA 考勤边界;2) 完成度矩阵或摘要可追溯;3) attendance_v1 处理建议不误导用户;4) audit-docs 通过或仅保留既有 warning。","受影响流程:文档读取 -> 需求判断 -> 后续 Issue 拆分;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;rg -n 'REQAUD|NEEDS_DECISION|FROZEN_AS_FALLBACK|attendance_v1|企业微信打卡' docs issues。","node|rg|manual","DONE","DONE","DONE","docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|docs/海音达OA-MVP需求规格说明书.md|docs/需求-请假考勤修正规约.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md|docs/员工快速上手.md","[""REQAUD-6""]","完成:已回写索引、事实源矩阵、人工试运行报告、PRD、请假考勤规约、企业微信规约、管理员手册和员工手册;未新建综合规划文档。" "REQAUD-8","收口与后续合同建议","完成 CSV 状态回填、文档门禁和格式检查,输出后续最小合同建议,例如 ATTENDANCE-WECOM-SYNC-DECISION、ATTENDANCE-CORRECTION-V1 或 ATTENDANCE-FLAG-CLEANUP。","1) REQAUD-0..7 均完成;2) CSV validate 通过;3) audit-docs 通过或仅保留既有 warning;4) git diff --check 通过;5) 中文 commit 引用 REQAUD。","受影响流程:需求完成度审计 -> 后续最小合同;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_13-32-26-requirements-completion-audit.csv;node scripts/qa/audit-docs.mjs --check-registry;git diff --check;git status --short。","python3|node|git|manual","DONE","DONE","DONE","issues/2026-05-17_13-32-26-requirements-completion-audit.csv|docs","[""REQAUD-7""]","完成:后续建议按顺序为 ATTENDANCE-FLAG-CLEANUP(先决策 attendance_v1 入口/开关)、ATTENDANCE-CORRECTION-DECISION(补卡/外出/加班是否进入 OA)、ATTENDANCE-WECOM-SYNC-DECISION(仅在需要月度考勤汇总时评估企微打卡 API 同步)。"