chore(task): 归档问题盘点、制单与部署体检任务
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s

这个提交包含在:
2026-08-03 22:49:16 +08:00
父节点 7593daf9c6
当前提交 6d89fdd9da
共修改 35 个文件,包含 225 行新增和 20 行删除
@@ -75,7 +75,7 @@
- [x] 报销相关功能开关和工作流定义可用;无需差旅申请也能创建报销。 - [x] 报销相关功能开关和工作流定义可用;无需差旅申请也能创建报销。
- [x] 自动备份三项 timer 与日常巡检 timer 的 BUILD_SHA 均与活动 server 一致,且 timer 保持 enabled/active。 - [x] 自动备份三项 timer 与日常巡检 timer 的 BUILD_SHA 均与活动 server 一致,且 timer 保持 enabled/active。
- [x] timer 修复后生成一份新的成功异机批次,ARM 侧完整性/新鲜度检查通过;该门禁先于任何杨俊生产数据写入。 - [x] timer 修复后生成一份新的成功异机批次,ARM 侧完整性/新鲜度检查通过;该门禁先于任何杨俊生产数据写入。
- [ ] 目标员工完成一次真实企微登录并能看到报销入口;主管能看到相应审批入口。 - [x] 目标员工完成一次真实企微登录并能看到报销入口;主管能看到相应审批入口。
- [ ] 两个既有企微测试成员分别成功通过企微登录 OA;没有创建新的企微成员。 - [ ] 两个既有企微测试成员分别成功通过企微登录 OA;没有创建新的企微成员。
- [x] 两个测试成员均通过普通浏览器账号密码登录并完成首次改密;企微 SSO 仍保留为人工确认项。 - [x] 两个测试成员均通过普通浏览器账号密码登录并完成首次改密;企微 SSO 仍保留为人工确认项。
- [x] 测试员工仅有 `employee`,测试主管仅有 `employee + manager`,测试主管能看到测试员工提交的待办且执行“退回”。 - [x] 测试员工仅有 `employee`,测试主管仅有 `employee + manager`,测试主管能看到测试员工提交的待办且执行“退回”。
@@ -32,6 +32,6 @@
".trellis/spec/hyb-oa/wecom-boundary.md", ".trellis/spec/hyb-oa/wecom-boundary.md",
".trellis/spec/hyb-oa/deployment-trialrun.md" ".trellis/spec/hyb-oa/deployment-trialrun.md"
], ],
"notes": "", "notes": "真实报销已提交并完成主管审批、财务复核与付款批次复核;当前旧快照批次按既定安全口径永久不支持制单,剩余业务动作仅为人工转账、上传回单、登记付款完成。该任务同时承接付款完成通知与 executed 状态的首次真实观察,不取消重建批次。",
"meta": {} "meta": {}
} }
@@ -21,6 +21,6 @@
"children": [], "children": [],
"parent": null, "parent": null,
"relatedFiles": [], "relatedFiles": [],
"notes": "用户将首次企微免密登录设为硬性要求:OA 账户须通过 userid 或唯一企业邮箱预绑定/自动补绑定,不允许首次输入 OA 密码。已有 binding 快路径及 userid/企微企业邮箱精确匹配既有 active OA 账户的事务补绑定已实现,本地后端全量测试、前端构建、E2E 与治理验证通过;姓名不作为键,缺失/无匹配/inactive/冲突/API 失败全部关闭,不自动创建账户或改角色。等待生产部署和存量映射 dry-run/apply 的独立批准。", "notes": "首次企微免密登录代码已随最新主干版本进入生产;姓名不作为键,缺失、无匹配、inactive、冲突和 API 失败均失败关闭,不自动创建账户或改角色。剩余工作是先做存量映射只读 dry-run,结果干净后另行批准 apply,再由 2–3 名同事完成真实企微登录与小范围报销试用。",
"meta": {} "meta": {}
} }
@@ -27,6 +27,6 @@
"server/src/routes/invoicePool.js", "server/src/routes/invoicePool.js",
"client/src/pages/ReimbursementDetailPage.tsx" "client/src/pages/ReimbursementDetailPage.tsx"
], ],
"notes": "", "notes": "指南、差旅补助费用类型、附件修复和腾讯 OCR 生产启用均已完成;当前唯一未关闭项是由负责人在腾讯云控制台确认高级版免费包到账、后付费关闭以及费用或余额告警已启用。",
"meta": {} "meta": {}
} }
@@ -0,0 +1,27 @@
# 当前问题与功能组合盘点设计
## 证据层级
1. 用户现场确认和当前生产只读证据用于判断真实完成状态。
2. 当前代码的导航、路由、功能开关和权限用于判断“存在什么能力、谁能看到”。
3. `docs/` 业务事实源用于判断模块边界和既有产品口径。
4. Trellis task 和历史提交用于追溯实施状态,但未勾选项不能单独证明生产未完成。
## 分类方法
- **保留并优先验证**:资金、审批、身份、审计、备份或已发生真实使用的核心能力。
- **保留但简化**:有业务价值,但小团队不需要复杂配置或专业系统深度的能力。
- **默认隐藏**:低频、可替代或尚无真实使用证据,不应占用日常导航。
- **冻结开发**:保留现状,不追加功能,等待真实需求和数据证明。
- **退役前调研**:方向已不符合当前路线,但删除前必须确认生产数据、审计引用、迁移和回滚边界。
## 安全与变更边界
- 盘点仅写当前任务目录,不修改业务事实源、功能开关、导航、权限、schema 或生产数据。
- 不执行需要生产凭据的查询;既有现场事实仅以脱敏结论引用。
- 任何实际隐藏、停用或退役都必须另建 Trellis task,先做生产只读数据和依赖审计,再获得明确批准。
## 输出
- `research/portfolio-review.md`:完整问题清单、模块矩阵、优先级和下一任务建议。
- 聊天交接摘要:可直接复制到新对话,不依赖当前聊天历史。
@@ -0,0 +1,56 @@
# 当前问题与功能组合盘点
## Goal
为下一个开发对话提供一份可直接使用的交接摘要:准确说明当前已完成能力、未完成问题、生产人工流程进度,并对现有业务模块给出“保留 / 简化 / 隐藏 / 冻结 / 退役调研”建议,避免不到 10 人的内部 OA 继续扩张低价值功能。
## Background
- PC 企业微信扫码登录已完成实现、生产部署、真实扫码、审计和回滚验收。
- 真实差旅报销已由员工提交,后续主管、财务、付款和复核进度不得靠 Trellis 勾选状态猜测。
- 用户已明确反馈 PC 登录卡片过窄,视觉上像手机页。
- 用户关注现有“团队、周报等”功能是否真正需要,希望对全部模块做一次价值盘点。
- 本任务以只读代码、配置、文档和已有生产证据为主,不因盘点结论直接删除数据或修改生产开关。
## Requirements
- R1:列出当前问题,区分真实业务阻断、生产待人工验收、已知技术债、产品体验问题和不紧急待办。
- R2:盘点用户可见主导航、备用导航、管理入口、移动页和功能开关,不只按文档名称猜测。
- R3:每个模块至少按实际使用人、使用频率、失败成本、无替代性、数据/审计价值和维护成本做判断。
- R4:给出“保留并优先验证 / 保留但简化 / 默认隐藏 / 冻结开发 / 退役前调研”分类及理由。
- R5:明确团队、周报、考勤/在岗、公告、待办、项目、采购、合同、资产、薪资、绩效、库存盘点、企微归档等已有能力的去留建议,并检查是否还有漏项。
- R6:输出一份可直接粘贴到新对话的交接摘要,包含已完成、当前问题、推荐顺序、不可越过的生产边界和下一对话建议首个任务。
## Scope
- 只读检查客户端主导航、备用导航、管理入口、移动入口和直达路由。
- 只读检查服务端导航注册表、工作区显隐、功能开关、权限门禁和已有业务事实源。
- 将结论写入当前 Trellis task 的研究材料,并在聊天中提供独立交接摘要。
- 不启动任务实施阶段;本任务没有业务代码、生产配置或数据写入。
## Acceptance Criteria
- [x] 问题清单能区分“已解决但待记录”与“真正未完成”,不重复打开已闭环任务。
- [x] 功能清单与当前导航、功能开关、后端路由和业务文档一致,每项有证据而非仅凭名称。
- [x] 团队、周报及其他低频模块有明确的保留/隐藏/冻结/退役建议和取舍。
- [x] 不将未授权的生产查询、开关修改、数据删除、依赖升级或功能退役当作盘点必要步骤。
- [x] 交接摘要可脱离当前聊天独立理解,并给出下一对话可直接执行的推荐首任务。
## Planning Result
- 详细证据和建议见 `research/portfolio-review.md`。
- 总体策略:没有真实使用证据的非核心模块默认隐藏并冻结开发;保留代码和数据,未经单独调研不直接退役。
- 本轮不进入实施,不修改生产功能开关或导航。
## Out of Scope
- 本轮不删除功能、数据表、历史文档或业务数据。
- 本轮不修改生产功能开关、导航、角色、审批规则或组织数据。
- 本轮不直接修复 PC 登录页桌面布局或服务端依赖告警;只记录、排序并给出后续任务建议。
## Test Plan
- 对照客户端导航注册、React 路由、服务端导航注册、功能开关和权限要求,检查模块清单是否漏项。
- 对照管理员手册、业务规约、当前 Trellis tasks 和最近归档提交,区分已完成事项与未完成事项。
- 运行 `task.py validate`、Trellis governance 和 `git diff --check`。
- 检查研究材料不含密码、Secret、完整账号、真实票据、银行资料、完整本地路径或原始 payload。
@@ -0,0 +1,87 @@
# 当前问题与功能组合盘点
## 1. 判断口径
本次盘点只依据当前代码入口、功能开关、权限边界、业务事实源和用户现场反馈,不以历史任务未勾选项单独推断生产状态。
对不到 10 人的内部 OA,功能保留优先级依次看:是否承载真实资金或责任链、是否需要审计留痕、是否没有更低成本替代、是否已有真实使用、失败是否会影响业务。存在代码但没有真实使用价值的模块,不立即删除数据或路由,先隐藏入口并冻结开发。
## 2. 已完成且不要重复开启
- 应用健康监控已建立独立站外探测和企业微信告警,不再是“应用零监控”。
- 自动异机备份曾因附件宿主挂载漂移失败,严格守卫成功阻断错误备份;unit 已刷新,补跑成功并收到恢复通知。
- 企业微信成员可预绑定或按唯一企业邮箱补绑定,不再要求首次输入 OA 密码后手工绑定。
- 企业微信工作台免登和普通 PC 浏览器企业微信扫码登录均已部署并经真实用户验证。
- 腾讯通用票据 OCR 已切到真实接口,住宿电子普通发票和铁路电子客票均完成真实样票验收;不再使用 mock。
- 差旅报销指南、火车票/住宿支付截图、伙食补助 100 元/天、市内交通补助 80 元/天及包干口径已经落文档和费用类型。
- PC 报销补充附件 1–5 个、中文文件名附件打开失败已经修复和部署;本次真实报销因员工改用手机提交,PC 现场复验顺延到下次。
- CEO、系统管理员和财务职责已纠正:公司负责人不是系统管理员的业务上级;负责人本人报销由非本人财务兜底,不允许自审。
## 3. 当前真正存在的问题
### P0:先完成真实业务闭环
1. 首笔真实差旅报销已经由员工用手机提交,但主管审批、财务复核、付款批次、银行回单和最终复核的现场进度尚未确认。下一步不是继续开发报销新能力,而是让真实处理人按职责走完并逐步反馈。
2. PC 多附件与中文文件名修复虽已部署,但尚无真实员工在 PC 上复验;不阻塞当前手机单据,列入下一笔报销的验收清单。
### P1:近期应单独建任务处理
1. PC 登录页卡片宽度约 460px,在桌面上仍像手机页面。扫码能力已正常,问题是桌面登录布局,不是认证链路。
2. OCR 已能识别金额,但系统尚未把“明细金额大于全部已绑定有效发票金额”形成可持久化、财务可见的警告;当前仍靠员工说明和财务人工核对。
3. 差旅补助仍由员工手写“天数 × 单价”,系统没有结构化天数字段,也不能按日标准计算。现有费用标准只按单条金额比较,直接录 100/80 元会误报多日补助,不能用作临时替代。
4. 腾讯 OCR 免费额度耗尽或云账户异常缺少主动运维提示。后付费已关闭,因此主要风险是 OCR 静默不可用,而不是失控扣费。优先确认腾讯控制台可用的额度/费用告警;确有 API 可安全读取时再考虑 OA timer,避免为一个低频依赖自建复杂监控。
5. 全员企微免登虽已有可用机制,但仍应逐人记录一次真实登录;账号密码回退、忘记密码“新验证码使旧验证码失效”的提示,以及邮箱验证码登录后首次改密仍要求旧密码的问题尚未整体收口。
### P2:技术债和治理项
1. 服务端生产依赖审计存在 16 个存量高危、0 个严重;客户端没有高危/严重。需单独做兼容性和回归充分的依赖治理,不能在业务任务里顺手升级。
2. 部署后自动备份/WARCH3 等 systemd unit 仍依赖部署收尾时显式刷新或核对。检查清单已有门禁,但尚不是完全自动的部署步骤,仍有再次漂移的操作风险。
3. 新员工账号启用还不是完整产品流程:通讯录资料、OA 账户、唯一 binding、主管、角色、首次免登、密码回退和审计应形成一套可重复门禁。
4. 文档和 QA 治理规模偏重,历史上仍有未登记文档 warning。只在不削弱资金、权限、备份和认证门禁的前提下逐步裁剪。
## 4. 功能组合建议
| 能力 | 当前产品位置/边界 | 建议 | 理由 |
| --- | --- | --- | --- |
| 工作台、通知 | 主入口 | 保留并简化 | 只聚合本人待办、报销进度和少量异常,不做大而全门户。 |
| 待我处理/统一审批 | 主导航,按审批角色显示 | 保留并优先验证 | 资金和责任链核心;与普通“待办”不是同一类能力。 |
| 报销、发票、OCR | 主导航/财务入口 | 保留并优先验证 | 已有真实业务,是当前第一主线。 |
| 付款批次、应付账款、银行回单 | 仅财务/复核角色 | 保留并优先验证 | 构成财务闭环和 maker-checker,不向普通员工开放。 |
| 审计日志、备份、健康监控 | 管理/运维 | 保留 | 高失败成本、不可替代;继续低频后台化。 |
| 账号、角色、组织、直属主管 | 管理入口 | 保留并简化 | 是所有审批和免登的基础;避免重复的“人员/账号/部门/组织”日常入口。 |
| 主数据、审批规则、费用标准、报销模板 | 管理入口 | 保留 | 直接支撑报销和审批;只由管理员按需维护。 |
| 采购 | 主导航,按权限显示 | 保留但按需使用 | 有金额、附件和审批留痕价值;真实采购发生时使用,不继续做复杂招采。 |
| 合同台账 | 主导航,受项目权限限制 | 保留但简化 | 保存关键字段、到期提醒和附件关联;不建设电子签章或完整合同系统。 |
| 项目 | 主导航,feature flag 控制 | 保留但简化 | 只做项目主档、关键状态和报销/采购/合同关联,不替代专业项目管理工具。 |
| 资产台账 | 主导航,按资产权限显示 | 保留但低频 | 对电脑、账号、电子资料和离职交接有审计价值;不做重型资产系统。 |
| 资产盘点 | “更多”/管理员 | 默认隐藏,按季度启用 | 有资产台账后才有价值,不应占日常导航。 |
| 企业微信审批历史、统一考勤摘要 | “更多”,只读留存 | 保留但后台化 | 企业微信主办,OA 做历史、审计和兜底;不重造企微打卡。 |
| 请假记录 | 当前主导航 | 建议降到“更多”或个人页 | 日常申请在企业微信完成,OA 只需历史和关联,不应和报销并列为 OA 主办入口。 |
| 团队状态 | 当前主导航候选,presence flag | 默认隐藏、冻结开发 | 10 人以内可由企微状态/群沟通替代;只有负责人明确每天使用时再打开。 |
| 周报 | 当前“更多”,weekly flag | 默认隐藏、冻结开发 | 若没有固定周会和阅读责任人,容易变成重复填报;项目关键进展可直接记在项目或周会纪要。 |
| 普通待办板 | 有路由和 flag,但默认隐藏 | 继续隐藏,退役前调研 | 与审批待办、企微消息和项目事项重复;先确认无真实数据,再考虑退役。 |
| 公告 | 当前“更多”,announcement flag | 默认隐藏,必要时临时启用 | 少人数用企微群即可;只有制度发布、签收留痕或长期可检索通知才值得保留。 |
| 数据看板 | “更多”候选,默认隐藏 | 冻结开发 | 当前数据量太小,统计容易产生伪价值;积累 2–3 个月真实数据后再评估。 |
| 完整差旅申请/统付/对账 | “更多”候选 | 冻结开发 | 当前差旅可由事前口头/简化审批加报销完成,不继续扩成旅行平台。 |
| 预算管理/预算硬控 | “更多”候选 | 冻结开发 | 公司当前预算池和成本中心尚未形成稳定使用;报销/采购审批先满足控制需要。 |
| 薪资 | 有受限直达路由,无正式导航 | 默认隐藏,退役前调研 | 高敏、低频且通常由财务/代账处理;没有明确内部发薪流程和真实数据就不应启用。 |
| 绩效 | 有受限直达路由,无正式导航 | 默认隐藏,退役前调研 | 10 人以下更适合负责人直接反馈;无固定绩效周期时维护成本大于价值。 |
| 人员生命周期 | 管理页内能力 | 保留最小版 | 保留入职、在职、离职、主管和企微映射;冻结复杂 HR 套件。 |
| 流程定义编辑器 | 管理入口但 flag 默认关闭 | 冻结 | 固定流程更适合当前团队,避免把审批引擎变成管理员负担。 |
| ERP、AI 助手、切换控制台、OA 原生打卡 | 代码/历史入口,默认关闭 | 退役前调研 | ERP 已明确不接;AI 无核心场景;切换控制台属于迁移期工具;OA 打卡与企微重复。确认无生产数据和审计依赖后再分批退役。 |
| 全局搜索、代理委托、涉密引用 | 辅助/直达能力 | 保留代码、默认隐藏 | 数据量或实际场景出现后再开启,不进入近期开发主线。 |
## 5. 推荐执行顺序
1. 让首笔真实报销走完主管、财务、付款和复核,遇到阻断立即修真实 bug。
2. 单独修 PC 登录页桌面布局,不改已经通过的企微扫码认证链路。
3. 做全员免登和账号回退验收,形成新员工启用清单。
4. 为 OCR 金额差异增加可持久化、员工和财务都可见的 warn;不先做 block。
5. 增加结构化补助天数和按日标准计算。
6. 处理腾讯 OCR 额度/故障告警和服务端高危依赖。
7. 另建“导航瘦身”任务,把默认隐藏策略真正落到生产;先隐藏,不删除代码或数据。
## 6. 下一对话建议首任务
如果真实报销链没有出现阻断,首个开发任务建议为“PC 登录页桌面布局优化”。它边界清楚、用户已明确反馈、与已验证认证链解耦。若真实报销链任一步出现阻断,则应暂停布局任务,优先修复该真实业务阻断。
@@ -0,0 +1,33 @@
{
"id": "current-issues-feature-portfolio-review",
"name": "current-issues-feature-portfolio-review",
"title": "当前问题与功能组合盘点",
"description": "只读盘点当前问题、导航、功能开关与模块价值,形成小团队功能去留建议和新对话交接摘要。",
"status": "completed",
"dev_type": "docs",
"scope": "只读审查客户端导航与路由、服务端功能开关与权限、现有业务事实源和当前 Trellis 状态;仅写当前任务规划与研究材料。",
"package": null,
"priority": "P2",
"creator": "shunli",
"assignee": "shunli",
"createdAt": "2026-07-30",
"completedAt": "2026-08-03",
"branch": null,
"base_branch": "main",
"worktree_path": null,
"commit": null,
"pr_url": null,
"subtasks": [],
"children": [],
"parent": null,
"relatedFiles": [
"client/src/features/navigation/schema.ts",
"client/src/components/navigation/NavLinks.tsx",
"client/src/router/index.tsx",
"server/src/services/workspaceSettings.js",
"server/src/services/featureFlags/index.js",
"docs/管理员手册.md"
],
"notes": "只读问题与功能组合盘点已完成并形成后续执行顺序;本任务未授权也未实施业务代码、生产配置或数据写入,当前整理以新的真实试用与任务收口决策为准。",
"meta": {}
}
@@ -3,7 +3,7 @@
"name": "production-secret-recovery-env-externalization", "name": "production-secret-recovery-env-externalization",
"title": "生产密钥恢复与环境文件外置", "title": "生产密钥恢复与环境文件外置",
"description": "分阶段建立生产环境配置恢复合同,并在另行批准后将生产 env 迁出源码同步树。", "description": "分阶段建立生产环境配置恢复合同,并在另行批准后将生产 env 迁出源码同步树。",
"status": "in_progress", "status": "completed",
"dev_type": null, "dev_type": null,
"scope": "Phase 1: 脱敏恢复分类与恢复卡;Phase 2: 生产 env 外置代码合同及另行批准的迁移", "scope": "Phase 1: 脱敏恢复分类与恢复卡;Phase 2: 生产 env 外置代码合同及另行批准的迁移",
"package": null, "package": null,
@@ -11,7 +11,7 @@
"creator": "shunli", "creator": "shunli",
"assignee": "shunli", "assignee": "shunli",
"createdAt": "2026-08-01", "createdAt": "2026-08-01",
"completedAt": null, "completedAt": "2026-08-03",
"branch": "main", "branch": "main",
"base_branch": "main", "base_branch": "main",
"worktree_path": null, "worktree_path": null,
@@ -21,6 +21,6 @@
"children": [], "children": [],
"parent": null, "parent": null,
"relatedFiles": [], "relatedFiles": [],
"notes": "", "notes": "获批的 Phase 1 恢复分类、恢复卡、环境合同校验与规约已交付。Phase 2 生产环境文件外置、旧副本删除和密钥轮换从未获得实施批准,本次明确作为未来独立任务暂缓,不把未执行的生产迁移计入本任务完成声明。",
"meta": {} "meta": {}
} }
@@ -3,7 +3,7 @@
"name": "reimbursement-notification-progress-clarity", "name": "reimbursement-notification-progress-clarity",
"title": "报销通知与处理进度简化", "title": "报销通知与处理进度简化",
"description": "诊断报销审批通知投递,统一审批动作中文映射,并按小团队实际职责简化付款阶段展示。", "description": "诊断报销审批通知投递,统一审批动作中文映射,并按小团队实际职责简化付款阶段展示。",
"status": "in_progress", "status": "completed",
"dev_type": null, "dev_type": null,
"scope": "报销审批通知只读诊断、审批动作标签去重、付款阶段文案与必要通知;不削弱付款 maker-checker", "scope": "报销审批通知只读诊断、审批动作标签去重、付款阶段文案与必要通知;不削弱付款 maker-checker",
"package": null, "package": null,
@@ -11,7 +11,7 @@
"creator": "shunli", "creator": "shunli",
"assignee": "shunli", "assignee": "shunli",
"createdAt": "2026-08-01", "createdAt": "2026-08-01",
"completedAt": null, "completedAt": "2026-08-03",
"branch": null, "branch": null,
"base_branch": "main", "base_branch": "main",
"worktree_path": null, "worktree_path": null,
@@ -21,6 +21,6 @@
"children": [], "children": [],
"parent": null, "parent": null,
"relatedFiles": [], "relatedFiles": [],
"notes": "", "notes": "通知、付款入口、批次状态文案、付款资料门禁与详情进度实现已完成并进入生产,后续详情页统一任务又收敛了共享阶段语义与操作区。唯一尚未发生的真实业务观察是杨俊批次登记付款完成后的通知与 executed 状态,已转由 07-27-yang-jun-reimbursement-readiness 承接;本任务不再保留重复等待。",
"meta": {} "meta": {}
} }
@@ -3,7 +3,7 @@
"name": "corporate-bank-account-payment-order", "name": "corporate-bank-account-payment-order",
"title": "企业银行账户与付款制单", "title": "企业银行账户与付款制单",
"description": "建立法人主体企业银行账户、员工受控收款信息、冻结付款快照与建设银行 BIFF8 制单能力。", "description": "建立法人主体企业银行账户、员工受控收款信息、冻结付款快照与建设银行 BIFF8 制单能力。",
"status": "in_progress", "status": "completed",
"dev_type": "feature", "dev_type": "feature",
"scope": "公司付款账户、员工收款资料、付款批次冻结快照与建设银行 BIFF8 制单", "scope": "公司付款账户、员工收款资料、付款批次冻结快照与建设银行 BIFF8 制单",
"package": "hyb-oa", "package": "hyb-oa",
@@ -11,7 +11,7 @@
"creator": "shunli", "creator": "shunli",
"assignee": "shunli", "assignee": "shunli",
"createdAt": "2026-08-02", "createdAt": "2026-08-02",
"completedAt": null, "completedAt": "2026-08-03",
"branch": null, "branch": null,
"base_branch": "main", "base_branch": "main",
"worktree_path": null, "worktree_path": null,
@@ -21,6 +21,6 @@
"children": [], "children": [],
"parent": null, "parent": null,
"relatedFiles": [], "relatedFiles": [],
"notes": "本地实现与自动化验证完成;等待 Excel/WPS 人工打开、生产迁移与配置、部署和公网/可选网银验证。", "notes": "公司付款账户、员工规范银行标识、冻结快照与建行 BIFF8 制单已部署;Excel 人工验收、生产迁移、公网检查、公司付款账户和杨俊银行机构配置均完成。下一张自然形成的新批次再做离线制单验证;只有网银存在明确的仅校验不提交环节才进行可选导入,该运营触发不继续占用开发任务。",
"meta": {} "meta": {}
} }
@@ -0,0 +1 @@
{"_example": "Fill with {\"file\": \"<path>\", \"reason\": \"<why>\"}. Put spec/research files only — no code paths. Run `python3 .trellis/scripts/get_context.py --mode packages` to list available specs. Delete this line once real entries are added."}
@@ -0,0 +1 @@
{"_example": "Fill with {\"file\": \"<path>\", \"reason\": \"<why>\"}. Put spec/research files only — no code paths. Run `python3 .trellis/scripts/get_context.py --mode packages` to list available specs. Delete this line once real entries are added."}
@@ -3,7 +3,7 @@
"name": "deployment-preflight-backup-contract-refresh", "name": "deployment-preflight-backup-contract-refresh",
"title": "部署前聚合体检与备份合同自动刷新", "title": "部署前聚合体检与备份合同自动刷新",
"description": "新增只读聚合部署体检,并通过独立 forced-command root 身份自动刷新部署后的备份构建合同。", "description": "新增只读聚合部署体检,并通过独立 forced-command root 身份自动刷新部署后的备份构建合同。",
"status": "in_progress", "status": "completed",
"dev_type": "infra", "dev_type": "infra",
"scope": "deploy/trialrun 与部署安全合同", "scope": "deploy/trialrun 与部署安全合同",
"package": "hyb-oa", "package": "hyb-oa",
@@ -11,7 +11,7 @@
"creator": "shunli", "creator": "shunli",
"assignee": "shunli", "assignee": "shunli",
"createdAt": "2026-08-02", "createdAt": "2026-08-02",
"completedAt": null, "completedAt": "2026-08-03",
"branch": null, "branch": null,
"base_branch": "main", "base_branch": "main",
"worktree_path": null, "worktree_path": null,
@@ -21,6 +21,6 @@
"children": [], "children": [],
"parent": null, "parent": null,
"relatedFiles": [], "relatedFiles": [],
"notes": "", "notes": "聚合只读体检、root forced-command 收尾、四个 unit 构建合同自动刷新及回归已部署;后续真实部署连续通过 13/13 体检与合同刷新,并在一次错误 SSH 别名尝试中于任何写操作前成功阻断,任务目标已由生产实战验证。",
"meta": {} "meta": {}
} }