文件
hyb-oa/.trellis/tasks/09-17-company-loan-principal-repayment/prd.md
T
wangsli和Claude Opus 5.5 c1034bbe38 记录 beb9f02c 发布结果与后续真实业务接续(09-17-company-loan-principal-repayment)
- implement/prd 补入 N4 发布事实:门禁、独立复核、生产只读核对、推送部署、断连补验、PDF 冒烟
- 明确本次部署前按用户决定未做快照,无整体恢复点
- 列出 N5 真实台账与授权登记、N6 首笔真实还款为待办;任务保持 in_progress

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 18:50:39 +08:00

218 行
37 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 公司借款台账与本金归还
## 2026-10-09 N4 发布完成,真实业务验收待办
已接收并核对本次发布证据:`beb9f02c` 完整门禁 PASS,独立只读代码复核无阻断项;发布前只读核实借款相关存量均为 0、实际待应用迁移为 9 个。该候选已推送并部署,部署后 82/82 迁移全部应用、13/13 复核及合同刷新通过;公网健康、就绪、浏览器页面和静态资源检查正常(Claude 会话核对、用户转交);部署前按用户决定未做快照。生产合成 PDF 解析冒烟 PASS,运行版本与候选一致,识别为正式支出回单、PDF 文字、明确成功、无问题标记,耗时 521 毫秒。发布中断与补验过程、证据位置及核验边界见 implement 顶部。
N3/N4 的软件复核及本次发布检查已完成,整体任务继续 `in_progress`。接下来是 N5 真实台账和公司授权登记、N6 首笔真实还款及会计交接;这两项尚未办理。财务按已有材料与已确认事实登记,马经理按既定公司代表身份确认,技术员工不参与;首笔还款的金额、分配及时间在实际办理前确定,发布通过不构成真实业务写入或付款授权。
本轮仅补发布与接续记录,不修改资金规则。已部署版本和原门禁回执仍绑定 `beb9f02c`;后续文档提交不影响线上运行,也不继承该回执的新候选发布资格。下方各日期的“未推送、未部署、待独立复核”等表述均保留为历史时点。
## 2026-10-09 N3 独立复核接收与 P2 口径确认
已接收 `4c37fcee..1c4633b6` 共 62 文件的独立只读复核,结论 **REVIEWED_NO_BLOCKER**;复核前摘要一致,复核人未改源码、未重跑测试。代码验证依据仍为 `1c4633b6` 第五轮完整门禁 PASS,具体接收、P3 后续项及原始报告见 implement 顶部。
本期接受已批准 N1 保守策略的共享报销影响,并补齐规则事实源:JPG/PNG/WEBP 及无可提取文字的扫描件 PDF 继续支持上传、预览和 OCR 字段提取,付款依据须由财务核对并由另一名合格人员独立复核;可读 PDF 也须满足全部自动核验条件。此处不改变程序、权限或借款关联模式。P3 的锁内解析、旧证据字段差异和记账日期下限留作后续,未实施。
本次仅三份文档收尾,沿既有授权本地提交并做文档/治理检查;未变代码不重复全量测试。原 PASS 只绑定 `1c4633b6`,最终发布候选须在 N4 取得与其提交一致的门禁回执。独立代码复核已完成,真实还款、生产启用和公网验收仍未完成;整体任务保持 `in_progress`,生产查询、推送、部署及真实业务写入另按明确授权办理。
## 2026-10-09 N3 第四轮结果及手机截图前置检查
候选 `8e17e8df` 第四轮完整门禁为 FAIL:82 迁移、服务端 4558 通过/1 项既有可选跳过,静态/构建及业务回归通过;浏览器 371 通过/1 失败、零跳过/重试。报销付款、PWA 升级和企微历史三项均通过。唯一失败为 R106 手机登录前首次截图的 Chromium 协议错误,尚未执行手机登录;不能把这一结果写成认证故障。
由 `09-06-release-gate-integrity` 补原截图前的登录页面就绪断言,保留全部截图和巡检、真实隔离后端登录及 Worker 设置,不修改产品或资金规则。Chromium 内部唯一成因尚未证明。先受管定向重验完整文件,再按既有授权本地提交并对干净新候选执行原完整门禁。第四轮原始证据及 `local-followup.json` 保留在 `artifacts/release-gate/loan-receipt-n3-20261009-r4/`,第五轮计划回执为 `artifacts/release-gate/loan-receipt-n3-20261009-r5/`,实际结果以回执为准。
修正后受管完整 R106 文件 1 项通过、零失败/跳过/重试,14 张截图和巡检报告实际生成;环境、源码一致性及清理通过。该结果不替代新候选完整门禁或独立复核。
独立代码复核、真实还款和公网仍待完成;没有推送、部署、生产查询或真实 OCR。整体任务保持 `in_progress`,不以旧通过项和定向结果拼接完整资格。
## 2026-10-09 N3 第三轮结果及桌面测试隔离修正
候选 `98bab397` 第三轮为 FAIL:82 迁移、服务端 4558 通过/1 项既有可选跳过、静态/构建和业务回归通过;浏览器 371 通过/1 失败、无跳过或重试。报销付款主链路和 PWA 升级本轮均通过。唯一失败为桌面企微历史测试在整页导航后等待标题超时,快照已回登录页;现有测试使用模拟接口,却只在手机 context 屏蔽 Service Worker。原请求来源未记录,不将该漏项写成已证实的历史唯一根因。
`09-06-release-gate-integrity` 已补默认桌面 context 的隔离,并要求原导航实际获得该 fixture 的 refresh/profile 响应。原三项用例、登录、会话、桌面只读、手机布局和截图全部保留;受管定向 3 项通过,环境和清理通过。资金及产品代码、迁移、正式门禁范围和预算未变。按 N3 既有授权形成新的本地提交,第四轮完整回执固定为 `artifacts/release-gate/loan-receipt-n3-20261009-r4/`,以其 `release-result.json` 和 `local-followup.json` 记录实际候选及结论。
前三轮 FAIL 完整保留,定向通过不能拼接完整资格。独立代码复核和真实还款验收仍开放;没有推送、部署、生产查询或真实材料外发。以下为各历史时点,整体任务继续 `in_progress`。
## 2026-10-09 N3 第二轮结果及 PWA 测试等待修正
修复候选 `18315d11` 的完整第二轮仍为 FAIL:82 个迁移、服务端 4558 通过/1 项既有可选跳过、静态/构建及业务回归通过;浏览器 371 通过/1 失败、无跳过或重试。本轮报销付款主链路完整通过;唯一失败为 PWA 自动升级时,测试读取版本号的 `page.evaluate` 遇到正常导航而失去执行环境。错误栈和原回执保留,不把定向通过或事后 B 版本见证替换为整轮 PASS。
该测试等待修正归属已有 `09-06-release-gate-integrity` 任务:改为当前文档的属性断言,原 45 秒上限、同会话升级及所有结果断言保持。受管定向 1 项通过,环境与清理通过;产品 PWA、借款/报销资金规则、迁移和门禁范围未变。按 N3 的本地修正与提交授权固定新候选,第三轮回执为 `artifacts/release-gate/loan-receipt-n3-20261009-r3/`,实际结果以其 `release-result.json` 和 `local-followup.json` 为准,不预填通过。
独立代码复核、真实还款、发布和公网验收继续开放;未推送、部署、查询生产、外发原件或写入真实业务。下方记录保留各轮历史时点,任务仍为 `in_progress`。
## 2026-10-09 N3 本地提交及新候选验证接续
N1–N2 已本地提交为 `5a7a1352`。首轮完整候选验证为 FAIL:服务端、构建及业务回归通过,浏览器 371 通过/1 失败;人工核验测试提交返回 409,未执行付款。原测试未记录具体业务原因,不能追认解析超时为根因;现已补其确定缺失的人工原件依据及安全诊断,保留全部资金断言。复验安排见 implement 顶部,后续新候选实际结果以 `artifacts/release-gate/loan-receipt-n3-20261009-r2/` 为准,首轮失败回执不覆盖、不改写。
用户明确“继续下一步”,沿已列明的 N3 处理 N1–N2 的 31 项本地改动:核对上一轮验证清单、补任务记录、单独本地提交并对干净的新候选运行 `verify-candidate`。范围、命令及失败处置见 implement 顶部;首轮实际候选及结果以 `artifacts/release-gate/loan-receipt-n3-20261009/` 为准,不沿用 `ce11dea9` 的通过结论。
当前 inline 指令禁止派 implement/check 子代理;独立代码复核与真实还款验收继续待完成。提交和候选验证不代表生产启用,未授权推送、部署、生产访问或真实业务写入。下方 N1–N2“未提交”为上一轮历史时点;整体任务保持 `in_progress`,AC5、AC8、AC27 等开放条件不提前勾选。
## 2026-10-08 实际银行材料核对后的接续(N1–N2 本地完成,未提交)
用户先要求重新梳理后续任务,随后明确“开始执行,需要我手动操作的及时告诉我”,批准 N1–N2 的本地实施、针对性验证及主会话检查。目标是形成可证明实际付款的回单处理路径,再完成独立代码复核、获准发布和首笔真实还款;执行顺序见 implement 顶部,凭证处理方案见 design 顶部。提交、推送、生产操作及真实付款不在本次范围。
N1–N2 已完成本地实现及可执行验证:正式/非最终/未知凭证区分、无字面成功状态的已记账支出人工核对、旧证据本地重检、最终核销及电脑/手机交互已贯通;原件限制与交易唯一性不能由人工覆盖。合成借款链和真实历史材料的内存预验分别留证,详细范围见 implement 顶部。新增 31 项本地改动尚未提交,无新增迁移;独立代码复核及真实银行闭环仍待完成。
- 实施基线为已提交候选 `ce11dea9`,关联方模式正式本地门禁已通过:82 个迁移、服务端 4519 项通过及 1 项既有可选跳过、浏览器 372 项通过且无失败/跳过/重试。证据为 `artifacts/release-gate/loan-ce11dea9-20261008/release-result.json` 及同目录 `local-followup.json`,不覆盖本轮未提交的凭证变化。本地 main 比本地 origin/main 多 13 个提交;未推送、未部署。
- 两笔历史借入的正式银行回单已做本地文字核对;用户已确认均未归还本金、本年无新增借还、开卡小额往来已归还且不计借款,并确认沿用原个人收款账户。具体金额、账号及原件仅在受控材料中保留。上述事实不再重复提问;财务正式录入时仍须留存原凭据、已有会计记录引用及核对截止日,不把历史借入当成当天新增收款。
- 财务经办、马经理代表公司作关联方确认;技术员工不参与业务复核、审批或见证。代表权不再待决,真实授权及范围尚未写入 OA。关联模式 Q6 继续关闭,不要求补足第三人或取得无结果查询 PDF 来办理正常还款。
- 获准的四份 PDF 此前已完成真实 OCR 调用。其中 S001/S003 虽字段匹配,但原件注明不作为最终交易依据;此前实样只执行到本地匹配函数,不能称为已复现生产错误核销。本轮借款完整链只用合成数据;另用 S002-A 的正式支出原件做内存人工核验预验,证明该格式可以留存记账依据,不代表其属于借款或已完成真实还本。S002 专项 OCR 适配仍后置。新取得的两份正式借入回单证明的是历史入账,不能充当未来还本的支出回单;本轮没有新增云 OCR 调用。
- 独立代码复核、正常付款凭据及提交归属实样验收、真实业务录入、发布与公网验收保持开放。此前银行流水及原件整理不等于这些项目已完成;2026-10-07 的生产空存量结论仅适用于该查询时点。
### R4/AC5 本次补充的凭证验收边界
本小节已随 N1–N2 获准实施,完成状态以 implement 的验证结果为准;其余 R1–R6 和原 AC 编号保持不变。
- 明确注明非最终依据、仅受理/处理中,或凭证性质不明的材料,可以留存,不能仅因金额、账户、状态字段匹配而核销。机器未提取出限制说明不等于原件没有该说明;普通人工录入或关联确认不能覆盖已知限制。
- 正式银行回单是否证明实际付款,应根据已核验格式的记账方向、记账/交易事实和关键字段共同判断。不能仅凭标题推定成功,也不能要求经办补写原件不存在的“交易成功”。正式借入回单的公司入账方向不能当作公司还本的付款方向。
- 原件足以证明付款而机器未能提全时,保留有依据的人工核对路径;经办录入原件实际信息、确认人按既定模式核对,记录原件及判断依据。原件不足、交易归属不明、字段冲突或重复交易仍不能放行。自动与人工结论分开记录。
- 核验、人工证据重建及最终核销须消费同一份仍有效的凭证依据;旧记录缺少新判断依据时不得直接沿用为自动通过,不能回写已发生的付款历史。验收必须包含最终资金动作及失败后本金/占用未变化,不能止于匹配函数。
## 2026-10-08 两人办理关联方还款(本地实施与合成验证完成,已授权本地提交及正式验证)
- 用户确认:实际经办为一名财务兼人事行政;马经理为股东、个人出借收款人,且有权代表公司批准还款。技术员工不参与复核、审批或见证,不增加财务权限,不作为候选、任务接收人或业务验收所需人员。
- 按用户“按照这个思路规划”的要求,采用“财务经办 + 马经理代表公司作关联方确认”。公司授权已明确,不再列为待决问题;其授权范围和真实身份在业务启用时留存。该模式具有两名操作者的分工,不具备无利益关联的独立审批,页面、凭据和审计必须如实标明。
- 原独立模式在创建时排除出借收款人,按实际人员配置无法办理该笔还款;该默认规则保留。新增关联模式覆盖正常付款及归属、人工回单、提交清单、失败/终态释放、补证恢复、晚到成功、追回和误报关闭,实施验证记录见 implement 顶部。
- 新模式只豁免指定确认人的“收款人关联”冲突,不豁免制单、提交、导出、上传、录入或提案等经办冲突。财务可承担多项经办工作;同一真实身份不能通过多个账号或角色自审。Q6“人工确认未提交”在此模式下不启用,原双独立复核条件不降低。
- 回单 OCR 已实现,普通回单按实际文件识别和匹配,无需先向银行咨询。银行终态证据与普通 OCR 验收分开;OCR 或两人的确认均不能补足缺失的交易归属,也不能从“没有回单”推断没有付款。
- 用户已明确“开始实施”,本轮已完成 RP1–RP4 的本地实现及可执行验证;随后明确授权将 39 项本地改动提交,并运行新候选正式门禁,执行安排见 implement 顶部。AC20–AC26 有本轮合成证据;AC27 的数据库部分已验,独立代码复核及真实材料验收仍待完成。新候选门禁结论以该候选回执为准,旧候选 `4c37fcee` 的通过回执不用于证明新模式;未授权推送、部署或本轮生产查询。
## 2026-10-07 本地阶段状态(历史时点,现状见 Current Status)
S4–S8 已本地提交 `431c36ea`;补齐剩余界面后合成回归为 81 迁移、HTTP 95、浏览器 19、数据库约束 9 组通过。应用代码沿用修复后的同模型只读静态复核,本轮只补测试与记录。S0 生产只读查询确认 OA 借款模块当前记录为 0,73 个已应用迁移校验值一致,待执行 8 个;不代表银行或线下没有付款。人员、真实建行材料和业务独立验收仍未完成,正式发布门禁尚待执行;不据此勾选整体真实还款验收或声明已部署。完整证据与限制见 implement.md 顶部。
## 2026-09-17 实施接续
用户明确要求借款尽快完成,沿本PRD与design既有个人出借人/CNY本金范围推进本地T1–T4,取代此前暂缓实施的优先级;不扩大为利息、备用金或通用付款。真实资料、余额和账户仍须正式录入核实,本地只用合成样例。风险与独立复核在交付/上线前保持未完成,不通过读取生产密钥或重跑旧恢复为本地开发解阻。
## Goal
让财务能按已核实凭据查清公司向个人借入的未还本金,并完成申请、有权审批、网银付款、回单留存和业务本金核销。默认保留独立审批;本公司已授权、身份及借款范围明确的关联方还款,按 R3 采用财务经办与公司有权人的关联方确认。OA管理业务台账及付款证据,代账系统负责原负债科目记账,不把借款还本变成费用报销。
## Background
- 用户提出历史两笔借入合并一次归还的真实需求;聊天提供的历史日期、金额和“本年无借还”尚未由本任务核验原始凭据,不据此创建真实余额或付款。
- 立项时仅有 reimbursement/travel_order 付款来源,创建依赖已有来源单;本任务后来新增借款还本来源,仍不开放自由填写收款人和用途的通用付款。
- 立项时建行用途/备注按报销生成,回单 OCR 及人工核对未覆盖借款。本地已有显式适配,实际材料的识别与银行接受性仍须分别验证。
- 本 task 于 2026-09-17 获准规划,独立于报销收尾任务;后续实施授权与证据见 design/implement。目前为 in_progress,本轮已本地实现关联方模式,不扩大真实录入或付款授权。
## Scope
首期仅个人出借人(可为股东、非员工)的公司借入本金台账和人民币本金归还,沿现有建行付款支持范围;一张还款申请关联同一公司、同一出借人、同币种的一条或多条已确认借款,对应一笔银行付款。支持部分偿还,不建设任意用途的通用付款平台。
## Requirements
### R1 历史及后续借入登记
财务登记出借人、公司主体、借入本金、实际到账日期、协议/确认资料、原入账凭证及核对截止时点。历史登记与当前收款分开,不产生虚假的新增现金流。余额未经财务与代账确认时只能标待核实,不能用于还款;已在系统外偿还的本金须有依据并单列确认,不能重复冲减。出借人不必是员工,银行资料沿现有加密/授权查看/审计要求。
### R2 余额与还款申请
列表区分未还本金、已占用待付款额、可申请额及核对截止日期,资料覆盖不全时不得回答“已结清”。财务选择借款及本次分配金额,正数、两位小数且合计等于付款额;不得跨公司/出借人/币种合并。并发申请不能超额,已付、取消及有银行在途的状态必须分别处理。
### R3 有权审批与明确的关联方例外
财务创建并提交,沿付款批次完成决定,不新增重复的通用审批链。默认 `independent` 模式沿现有经理/CEO独立复核,排除制单/提交人和出借收款人对应的OA身份,无合格人时阻止提交。不得使用 admin 通配、虚建非员工出借人或按姓名猜身份绕过。
新增 `related_party` 模式,限定公司、真实个人出借人、其关联员工及授权覆盖的已确认借款。财务登记实际公司授权与范围,指定有权的马经理确认;不要求技术员工或第三名员工参与。还款创建时由服务端核定并冻结模式、授权版本和身份;客户端不能自行切换,历史独立批次不能自动转为关联模式。
马经理作出每个新决定时,须当前在职、有相应经理/CEO业务权限、具备覆盖该事项的公司授权;仅豁免其作为本笔收款人的利益关联。经办、提交、导出、证据上传、人工录入和提案冲突继续拒绝,按真实员工身份判断,同一人兼任角色也不能消除冲突。关联模式的经办入口提前禁止指定确认人参与这些经办动作;其公司授权确认或债权/收款声明不记作独立复核。
付款申请可由公司代表填写理由退回;退回决定与授权留痕不可改,原申请不得继续批准或导出。退回不直接释放占用,由财务按未发送取消规则取消后重新申请,不修改原申请的付款快照。
付款前核对当前权限、授权、版本与启用状态;付款后的原审批与出借人资格按当时快照判断。新的银行事实确认仍核对当前确认人的资格。停止新付款不抹掉历史授权、不阻止银行事实留存或符合条件的已付核销;停止后续对账决定单独记录。具体时点及最终动作检查见 design 顶部。
### R4 付款与回单证据
审批只占用额度,不减少未还本金。财务在网银实际付款,用途为“还款”,短备注按借款年份/本金语义生成,受现有银行长度校验;详细原借款对应关系留在OA,不硬塞进银行备注。原件可先留存,但金额、币种、付款/收款账户、交易成功状态及唯一身份不满足时不得登记已付。
复用现有回单核对的自动匹配/人工例外边界,显式支持借款来源;真实样本未验证前不宣称真实识别已验收。普通回单直接沿已有 OCR 处理实际文件,不先向银行询问字段。OCR不清或不可用时,原件留存、经办录入和按 R3 模式作出的人工决定不能伪称机器核实或银行验真;明确失败、受理中、账户/金额不符及重复交易不得靠普通理由放行。独立模式排除收款人和提案人;关联模式仅豁免指定收款人关联,上传/录入/提案等经办冲突继续排除,读取及最终消费人工证据同样执行该规则。
### R5 核销、异常与会计交接
只有符合既有付款登记证据门禁并由财务明确登记成功时,才在同一事务内占用交易身份、核销分配本金并更新付款事实;同一请求重试幂等,跨批次/跨报销复用交易拒绝。取消须满足相应安全取消或逐提交终态证据门禁;有导出或银行提交后,不能凭口头“没有付款”释放额度。银行状态未知/在途时不能直接释放后重付。付款已登记后的错误处置保留原事实,另审纠错,不删除或覆盖记录。
付款成功与代账记账分开,记录凭证编号/记账确认及材料交接,不由OA自动生成会计分录。材料包括原借入凭证、协议/确认书、余额核对、审批及还款回单;本金不要求费用发票,不进入费用报销统计或费用预算。关键材料按适用访问权限留存,历史余额/分配不得无审计改写。
### R6 关联方模式的对账接续与留痕
R3 的模式同时作用于付款审批、提交清单、成功/失败归属、人工回单、银行终态、失败确认、SR补证、晚到成功、误报关闭和追回;需要人工决定的事项由财务登记、马经理作关联方确认,最终核销/释放/补记/解冻仍重验各自证据和资金条件。成功回单完全满足自动核验时,不增加一次无必要的人工回单确认。两人确认、时间相近、金额或账户相同均不能替代指令归属、终态或到账证据。
每次决定记录模式、公司授权及版本、实际决定人与关联身份、材料快照和理由;后续读取、重建、最终消费均使用同一语义。Q6保持两名独立复核人的现有合同,在关联模式下服务端拒绝发起、复核和释放,页面说明不可用;无可用终态证据仍保持占用。旧独立记录及报销/差旅权限不因此放宽。
## 2026-10-07 S4–S8 本地接续(历史时点)
用户要求沿已确定工作直接执行。S4–S8 的本地实现和验证继续推进,阶段证据在 implement 顶部;AC9–AC19 不因后端或合成测试通过而自动勾为整体验收通过。新银行事件均标明人工核对,不伪称真实银行/OCR 已验;生产查询、推送、部署仍未执行。
## Acceptance Criteria
勾选表示该项已取得所要求的软件及流程证据,不代替 N5/N6 的真实材料录入与银行闭环验收。原勾选项保留独立模式基线,AC20–AC26 另有关联模式合成证据;AC8、AC27 的独立代码复核、固定候选门禁及本次部署证据现已补齐,既有回退限制继续有效。AC9–AC19 中一般“复核/确认”按 R3 区分独立复核与关联方确认,具体消费者见 design;AC12 的双独立复核不适用此转换。
- [x] AC1:合成历史两笔借入可登记并确认余额;未确认/重复登记/无凭据不进入还款,历史录入不被统计成当天新增收款。
- [x] AC2:同一出借人两笔借款合并一笔付款、部分偿还正确;超额、跨主体/出借人/币种、重复提交和并发占用均拒绝或幂等,金额用精确小数。
- [x] AC3(既有独立模式):财务不能自审,收款人即使持CEO/manager或多角色也不能批准自己的还款;无合格审批人、身份关联缺失/变动拒绝,无管理通配旁路。新关联模式的限定例外另按 AC20–AC27 验收,不以此勾选代替。
- [x] AC4:审批/导出/上传回单均不会单独减少本金;处理中保持占用,确定失败/安全取消释放,明确成功登记与分配核销原子完成,数据库异常整体回滚。
- [ ] AC5:正确回单可匹配新来源,错金额/账户/币种、失败/受理、同额歧义、重复交易、晚到版本及人工自审分别受阻;真实样本未覆盖的自动识别仍明确待验。
- [x] AC6:付款完成可追到原借款分配和会计交接状态;余额查询标明截止/核对状态,不把OA无记录说成银行无还款,不把本金计入费用。
- [x] AC7:报销/差旅既有付款、独立复核、制单、回单和权限回归通过;PC/手机沿既有交互,机密字段默认脱敏,普通员工不能读全台账。
- [x] AC8:迁移与回退影响、独立只读复核、恢复风险处置和发布前条件完整;本地合成通过不替代真实银行接受性或部署,真实录入/付款另批。2026-10-09 本次发布证据见 implement 顶部;未新增恢复演练或自动回退授权。
- [ ] AC9(对账,design 3.1/3.3):制单导出与银行提交尝试分别落表并关联;提交清单须经相应模式的确认;确认失败只计未作废附件,但作废的成功或处理中回单仍按事实阻断;确认失败按批次冻结快照核对,出借员工离职不阻断原审批效力;新的事实决定仍须有当前合格确认人;一条指令的终态不能推定其他提交已结束。
- [ ] AC10(失败归属,3.1):存在同金额候选时,确认失败须有已复核、写明覆盖哪些指令的失败归属;未确认时保持占用。
- [ ] AC11(银行终态释放,3.2;2026-10-07 补充:同一指令的终态事实可了结该指令此前的处理中回单,其他提交不能代替;最终取消释放的事务须重验全部条件,并与新提交、晚到回单串行;终态证据与付款回单分开存放,作废或被替换后不能继续作为依据):每次已登记提交均有能唯一定位指令、经相应模式确认的终态证据,且无未解决的成功或处理中事实,才可转 `confirmed_not_paid` 并释放;对账单、截图、时间依据与等待期均不能单独放行;释放后禁止再导出。
- [ ] AC12(人工确认未提交,3.2a,用户 2026-10-06 确认支持):仅独立模式在全部证据加两名不同的独立复核人满足时转 `confirmed_not_submitted`,记录与页面标为人工确认;人员不足或材料缺失时继续占用。关联模式不启用 Q6。
- [ ] AC13(冻结,3.5):冻结按原因记录;拦截新申请及其他在途申请的复核与导出,不拦事实登记;误报经相应模式确认后关闭不补记;证据不确定继续冻结;全部原因关闭才解冻。
- [ ] AC14(晚到成功,3.4):只增不改并标记原结论被推翻;按冻结快照与历史审批核对;覆盖已释放与已确认失败未释放;逐笔先处理占用冲突再按差额结清,余额列待追回;补记不生成可导出指令,整笔超额也完整记录;同一交易不能两次使用。
- [ ] AC15(追回,3.5):凭到账证据经相应模式确认登记,支持部分追回;仅登记不解冻;本期不支持冲抵。
- [ ] AC16(存量):历史批次保留已知的导出次数,新增“历史导出汇总”标明已知与待核实信息;它不是一次真实导出或银行提交,不能据此放行额度;上线前须核实生产存量(S0)。
- [ ] AC17(补证恢复,SR1–SR3;既有实现验证见 implement):已确认失败或未付款且本金仍全部占用时,可补充有效证据并重新按相应模式确认;原结论与依据不可改,旧证据/复核可追溯;恢复不得重开付款、导出或改变本金,不适用于已释放/已结清、成功事实或 Q6 人工未提交。
- [ ] AC18(恢复批准有效性,SR2–SR4;既有实现验证见 implement):材料、核验版本、提交清单、归属或同额候选变化使旧恢复批准失效;新建再撤回、换回同一流水号、撤回/驳回恢复均不能复活旧批准或回退原释放依据;补证后能重新送审,不永久卡死;当前确认人合格且不属于任何相关经办身份,关联模式仅例外允许指定收款人身份。
- [ ] AC19(最终恢复释放,SR3–SR5;后端验证见 implement):确认与最终取消均满足 S3 全部条件及等待期;最终事务重验最新恢复批准与证据,释放、取消、消费批准、审计原子且幂等;与证据/提交/核验/候选变化确定性交错时不错误释放;成功事实转对账、未知继续占用。PC/手机完整操作与真实银行接受性分别验收。
- [x] AC20(关联范围):仅经登记确认的公司、个人出借人、关联员工及借款范围可新建关联模式还款;模式由服务端核定并冻结,伪造模式/授权/公司/借款、身份未核实或范围不符均拒绝;旧独立批次、报销与差旅不变。
- [x] AC21(两人分工):财务可合并经办角色;指定马经理可以代表公司确认本人的还款,但不能兼任本批经办/提交/导出/上传/录入/提案人。分别测试各冲突与多角色、多账号;不能把其从所有排除列表整体删除,技术员工始终无审批及敏感读取权限。
- [x] AC22(真实留痕):所有人工决定及审计记录模式、授权版本、确认人的关联身份和证据快照;详情、待办和最终证据重建一致,不把关联方确认显示为独立复核;已决定记录不可改、不可删除、不可事后换模式或授权。
- [x] AC23(完整接续):以财务和收款经理两个合成身份贯通付款、提交清单、成功/失败归属、人工回单、失败/终态释放、SR、晚到补记、误报关闭及部分/全额追回;确认入口、材料读取与最终消费均可执行。缺证、同额归属不明、冲突或重复交易仍拒绝,拒绝后本金、占用和冻结保持正确。
- [x] AC24(Q6边界):关联模式的 Q6 发起、双审及最终释放均由服务端拒绝,页面说明不启用;直接调用或伪装旧独立批准也不能绕过。原独立模式双审反例仍通过,无回单不能释放占用。
- [x] AC25(资格时点与并发):新申请/批准/导出校验当前付款授权;新的对账决定及最终释放校验当前对账授权;已付核销/已确认银行事实入账使用有效的历史审批与证据,不因停止新付款或原审批人事后离职而失败。新授权不能改写旧模式;授权停止、材料变化与确认/导出/释放按确定性交错验证,先后结果有明确语义。
- [x] AC26(页面与访问):电脑和手机以现有组件走通两人流程;财务无自审按钮,经理无经办按钮,必要材料按本批范围及用途审计读取;技术员工不获候选、待办、通知或材料。前端隐藏不能替代服务端鉴权。
- [x] AC27(数据与回退):仅新增型迁移,历史记录明确归为独立模式且不伪造授权;新字段、外键、模式/关联身份及不可变约束在数据库验收。新增关联决定后禁止不经评估降回不理解该模式的旧代码;最终候选重新验证并按规则只读复核,不沿用旧门禁宣称通过。数据库合成验收、独立代码复核及 `beb9f02c` 完整门禁已取得,生产已应用 82/82 迁移。
## Out of Scope
- 不处理利息、工资/分红、员工向公司借备用金、资本金、债转股、机构借款、外币、一般退款或债务冲销;仅保留本任务已定义的超额还款实际追回,不做冲抵后续本金。
- 不做银行直连、流水自动导入、AI自然语言财务问答、自动会计凭证/税务、跨系统重复审批或全量ERP。
- 不伪造报销单承载本金,不改现有报销一单一笔付款规则,不解冻其他低频模块,不引入新视觉设计体系。
- 不索取聊天中的完整账号或真实凭证,不读取/轮换生产密钥,不沿用旧恢复/部署/真实付款授权。
## Test Plan
真实Fastify路由与隔离PostgreSQL覆盖资金、身份、并发和事务回滚;前端沿现有Vitest/Playwright验证PC/手机。独立模式保留合成财务、独立审批人、收款人的基线;关联模式使用财务与收款经理两名真实角色的合成身份,技术员工只作无权访问反例,不让实际员工参与财务复核。跨业务重复交易与报销回归单列;OCR沿真实识别/归一化/匹配链,仅替换云端返回,不用预签身份替代正式认证全链。关键资金守卫配定向变异和确定性交错,按 implement 的 RP1–RP4 执行。执行端承担软件验证,不让用户制造真实还款来代测。
## Current Status
当前线上及 `origin/main` 为 `beb9f02c`;N3 独立复核和 N4 本次发布检查已完成,实际发布过程及证据见 implement 顶部。完整门禁为 82 迁移、服务端 4558 通过/1 项既有可选跳过、浏览器 372 全通过且零失败/跳过/重试;生产迁移、部署后复核、公网基础检查及合成 PDF 解析已核对。本轮只更新任务文档,未重跑应用测试或操作生产。
整体任务保持 `in_progress`。真实 OA 台账及关联授权尚未登记,首笔真实还款的网银提交、正式回单、核销及会计交接尚未验收;AC5 及未覆盖的真实材料边界继续开放。无需重新索取已确认的借款事实或要求技术员工参与;真实录入和付款仍按各自授权执行,不从未还本金推定本次全额支付。
### 2026-10-08 N1–N2 完成时点(历史记录)
N1–N2 在 `ce11dea9` 基线上完成本地实现和主会话检查,31 项改动未提交,无新增迁移。最新验证为 82 个迁移、116 组借款 HTTP、9 组数据库约束、18 组关联电脑/手机操作、38 组共享回单数据库/真实认证及 24 项共享报销页面限定重验通过;回单/报销最新定向 292 项通过,9 个资金守卫变异全部捕获。服务端全量为 4554 通过、1 项既有可选跳过,随后合成数据及零页详情的改动由上述最新定向覆盖,不虚报重新全量。Prisma、前端类型/构建及合同检查通过,准确时点和回执见 implement 顶部。
六份真实材料的本地分类及既有正式支出样本的内存人工录入预验已完成;未用真实借款执行核销,也未验证真实银行提交对应。当前不用用户补材料。独立代码复核、新候选正式门禁、获准发布/真实台账与授权登记、首笔真实还款闭环仍未完成;AC5、AC8、AC27 及整体业务验收不据本地结果勾选。原候选的正式门禁不覆盖当前差异,没有本轮提交、推送、部署、生产访问或真实写入。
### 关联方模式收尾记录(历史时点,最新状态见上文)
本地已有 A/B/C、S1–S8、SR恢复及电脑/手机界面,本轮另完成关联方模式 RP1–RP4 的实现与可执行验证,已获准本地提交及新候选正式验证。最新借款专项为82迁移、HTTP 109、浏览器33、数据库约束9组通过;关联模式单列14组HTTP及电脑/手机各7组浏览器,13个有效守卫变异均捕获。报销付款、付款权限和导航35项通过,现行差旅冻结保护另2项通过;一次误选封存差旅整链的403失败保留,未恢复差旅权限。服务端全量4519通过、1项原有跳过,后续小改的77项定向验证通过,详细先后和证据见implement。AC20–AC26仅完成本地合成验收;AC5、AC8、AC27及其余整体业务验收保持开放。
较早候选 `4c37fcee` 的正式门禁 PASS 只证明旧独立模式;本轮提交后单独生成 `verify-candidate` 回执,不提前宣称通过,主会话检查也不等同独立代码复核。不得以测试数字推定真实银行接受性或生产已经应用。
生产曾于2026-09-27上线早期版本;上述后续本地提交尚未推送或部署。2026-10-07 22:08–22:09获准只读核实时,OA借款相关记录为0,已应用73迁移;这不是银行/线下无付款的结论,发布前仍需重新获准核对存量及迁移差集。人员条件现已明确为本节两人安排,独立模式无人可办理本笔还款;后续为本轮独立代码复核、真实材料及授权录入验收、固定候选门禁和获准发布,不再将关联模式、S8或SR列为未实现。
## Planning Status(历史时点,已由顶部实施接续替代)
本task已形成PRD/design/implement待审方案,本日追加源码消费者地图与T1–T4技术切片,无产品实现。实际借款余额、收款账户、审批人资格及银行样本属于录入/上线前的证据门禁,不把聊天转述视作已核实。08-23关键恢复及09-05治理的准入判断见09-08顶部优先级表;未取得本task方案实施批准前不得start。无必须现在向用户索取的秘密或真实资料。