From 8e0222b87295ed23f93c4b03069d4a09b49d043f Mon Sep 17 00:00:00 2001 From: shunli Date: Tue, 11 Aug 2026 17:58:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3(08-11-admin-manual-contract-?= =?UTF-8?q?attachment-boundary):=20=E7=BA=A0=E6=AD=A3=E5=90=88=E5=90=8C?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E8=83=BD=E5=8A=9B=E5=8F=A3=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../check.jsonl | 1 + .../implement.jsonl | 1 + .../prd.md | 50 +++++++++++++++++++ .../task.json | 28 +++++++++++ docs/管理员手册.md | 2 +- 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 .trellis/tasks/08-11-admin-manual-contract-attachment-boundary/check.jsonl create mode 100644 .trellis/tasks/08-11-admin-manual-contract-attachment-boundary/implement.jsonl create mode 100644 .trellis/tasks/08-11-admin-manual-contract-attachment-boundary/prd.md create mode 100644 .trellis/tasks/08-11-admin-manual-contract-attachment-boundary/task.json diff --git a/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/check.jsonl b/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/check.jsonl new file mode 100644 index 00000000..9dd3234a --- /dev/null +++ b/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/check.jsonl @@ -0,0 +1 @@ +{"_example": "Fill with {\"file\": \"\", \"reason\": \"\"}. 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."} diff --git a/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/implement.jsonl b/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/implement.jsonl new file mode 100644 index 00000000..9dd3234a --- /dev/null +++ b/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/implement.jsonl @@ -0,0 +1 @@ +{"_example": "Fill with {\"file\": \"\", \"reason\": \"\"}. 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."} diff --git a/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/prd.md b/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/prd.md new file mode 100644 index 00000000..4c7739dc --- /dev/null +++ b/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/prd.md @@ -0,0 +1,50 @@ +# 管理员手册合同附件能力纠偏 + +## Goal + +纠正 `docs/管理员手册.md:442` 把合同附件上传与下载审计写成当前可用能力的误导表述,使首个真实合同用户看到的手册与已上线产品一致:当前可录入合同台账字段、线下归档位置和资料索引,但尚无合同附件上传入口或下载审计能力。 + +## Background and Confirmed Facts + +- 手册现句把“可录入合同台账字段”和“非涉密材料可上传并留下下载审计”并列,普通读者会理解为同批当前能力。 +- 已归档 `08-05-contract-detail-workspace` 明确裁剪本轮范围:证据区只展示归档位置、离线档案号和涉密资料索引,不提供非涉密附件上传、预览、下载或附件审计。 +- 附件能力是后续独立能力,不是永久禁止;因此手册既不能继续承诺当前可用,也不应写成永远不支持。 + +## Scope + +- 仅修改 `docs/管理员手册.md:442` 的合同台账现状说明。 +- 保留合同台账已纳入首批真实使用、可录入字段、线下归档和敏感资料边界。 +- 将非涉密合同附件上传与下载留痕明确标为尚未提供的后续能力。 + +## Requirements + +- 当前能力必须用肯定、可操作的口径描述:合同负责人可录入既有台账字段、线下归档位置或外部归档编号。 +- 未上线能力必须明确写成“当前尚未提供”,不能只加含混的路线图括号让用户继续寻找入口。 +- 不承诺交付日期,不新增附件功能设计,不改变涉密合同正文、报价、成本和客户敏感资料不得上传到在线 OA 的边界。 +- 不改产品代码、测试、运行配置或其他业务文档。 + +## Acceptance Criteria + +- [x] AC1:`docs/管理员手册.md:442` 不再声称非涉密盖章页、验收单、归档证明当前可以上传或已有下载审计。 +- [x] AC2:修订后明确当前只提供合同台账字段、线下归档位置、外部归档编号和资料索引;附件上传与下载留痕为尚未提供的后续能力。 +- [x] AC3:涉密合同正文、敏感报价、成本细节和客户敏感资料不进入在线 OA 的安全边界保持不变。 +- [x] AC4:仅有当前 task 与管理员手册的预期文档改动;task validate、process contract、governance、sensitive scan 和 `git diff --check` 全部通过,docs registry audit 为 0 errors,仅保留既有 22 个未注册文件 warning。 + +## Out of Scope + +- 实现合同附件上传、预览、下载、删除、访问控制或留痕。 +- 全面重写管理员手册中的通用附件治理、路线图或其他模块口径。 +- 修改既有登录态验收 task 的合同 UI 事件触发条件。 + +## Open Questions + +- 无。仓库事实与用户判断已共同确认该句会被理解为当前能力,应按现状纠偏而不是只加模糊规划标记。 + +## Test Plan + +- `python3 ./.trellis/scripts/task.py validate 08-11-admin-manual-contract-attachment-boundary` +- `node scripts/qa/check-process-contract.mjs --baseline --json` +- `node scripts/qa/check-trellis-governance.mjs --json` +- `node scripts/qa/check-sensitive-content.mjs` +- `node scripts/qa/audit-docs.mjs --check-registry` +- `git diff --check` diff --git a/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/task.json b/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/task.json new file mode 100644 index 00000000..64fcf079 --- /dev/null +++ b/.trellis/tasks/08-11-admin-manual-contract-attachment-boundary/task.json @@ -0,0 +1,28 @@ +{ + "id": "admin-manual-contract-attachment-boundary", + "name": "admin-manual-contract-attachment-boundary", + "title": "管理员手册合同附件能力纠偏", + "description": "纠正管理员手册对合同附件当前能力的误导表述,不改产品实现。", + "status": "in_progress", + "dev_type": null, + "scope": "仅修订 docs/管理员手册.md:442 的合同附件现状说明", + "package": null, + "priority": "P2", + "creator": "shunli", + "assignee": "shunli", + "createdAt": "2026-08-11", + "completedAt": null, + "branch": null, + "base_branch": "main", + "worktree_path": null, + "commit": null, + "pr_url": null, + "subtasks": [], + "children": [], + "parent": null, + "relatedFiles": [ + "docs/管理员手册.md" + ], + "notes": "", + "meta": {} +} \ No newline at end of file diff --git a/docs/管理员手册.md b/docs/管理员手册.md index 17f4286d..b7b44511 100644 --- a/docs/管理员手册.md +++ b/docs/管理员手册.md @@ -439,7 +439,7 @@ bash scripts/qa/run-oa-real-use-daily.sh | 出纳/财务 | 创建付款批次、线下银行付款、上传银行回单、标记已付款、导出 AP/报销/票据资料 | OA 只记录付款闭环和证据;不接真实支付接口,不写 ERP | | 管理员 | 检查权限、审计日志、合同台账、项目关联和每日巡检报告 | 阻断当天建修复合同或暂停对应流程;非阻断体验问题进入反馈池 | -合同台账纳入首批真实使用:合同负责人可录入合同编号、合同名称、主体、金额、负责人、项目、状态和线下归档位置;非涉密盖章页、验收单、归档证明等可按权限上传并留下下载审计。涉密合同正文、敏感报价、成本细节、客户敏感资料不进入公网 OA;只记录线下归档位置或外部归档编号。 +合同台账纳入首批真实使用:合同负责人可录入合同编号、合同名称、主体、金额、负责人、项目、状态、线下归档位置和外部归档编号,并登记涉密资料索引。当前尚未提供非涉密盖章页、验收单、归档证明等附件的上传入口、预览下载和下载审计;这些属于后续能力。涉密合同正文、敏感报价、成本细节、客户敏感资料不进入公网 OA,只登记线下归档位置、外部归档编号或资料索引。 ### 3.6 ASSET1 统一资产台账