From bbbaf40bfd6def126c993781f840a24d39183d27 Mon Sep 17 00:00:00 2001 From: weichen Date: Mon, 21 Sep 2026 02:21:07 +0000 Subject: [PATCH] =?UTF-8?q?docs(test):=20test=20=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=97=E6=8E=A7=E6=96=87=E6=A1=A3=E6=87=92=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=AB=AF=E5=88=B0=E7=AB=AF=E9=AA=8C=E8=AF=81=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 验证「激活后 0 受控文档」为懒创建设计预期:激活只建实例,文档在任务运行时由 bizdev service CreateOrGetDocument 落库 - 真实 PI Agent(MiniMax-M2.7-highspeed)跑通 bd_intake 小队任务 3m45s completed - 三重证据:document_records 0→1 行、documents API 计数翻转、正文 7729 字符 SHA-256 与账本一致 - short-term 任务与 CURRENT 认领登记;证据资产归档 assets/ Co-authored-by: Cursor --- ...26-09-21-test-env-lazy-doc-verification.md | 64 +++++++++ ...izdev-lazy-doc-verification-test-report.md | 122 ++++++++++++++++++ .../01-login.json | 1 + .../02-create-project.json | 1 + .../03-activation-preview.json | 1 + .../04-default-plan.json | 1 + .../05-plan-save.json | 1 + .../06-add-members.json | 3 + .../07-activation-preview.json | 1 + .../08-activate.json | 1 + .../09-documents-baseline.json | 1 + .../10-taskrun-create.json | 1 + .../11-mtx-owner-login.json | 1 + .../12-run-final.json | 1 + .../13-sql-document-records.txt | 5 + .../14-documents-after.json | 1 + .../15-controlled-content.json | 1 + .../16-output-summary.txt | 20 +++ 18 files changed, 227 insertions(+) create mode 100644 .doc/ops/short-term/2026-09-21-test-env-lazy-doc-verification.md create mode 100644 .doc/test-reports/2026-09-21-test-env-bizdev-lazy-doc-verification-test-report.md create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/01-login.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/02-create-project.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/03-activation-preview.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/04-default-plan.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/05-plan-save.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/06-add-members.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/07-activation-preview.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/08-activate.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/09-documents-baseline.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/10-taskrun-create.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/11-mtx-owner-login.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/12-run-final.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/13-sql-document-records.txt create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/14-documents-after.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/15-controlled-content.json create mode 100644 .doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/16-output-summary.txt diff --git a/.doc/ops/short-term/2026-09-21-test-env-lazy-doc-verification.md b/.doc/ops/short-term/2026-09-21-test-env-lazy-doc-verification.md new file mode 100644 index 00000000..3252b4f9 --- /dev/null +++ b/.doc/ops/short-term/2026-09-21-test-env-lazy-doc-verification.md @@ -0,0 +1,64 @@ +--- +title: "test 环境真实任务验证受控文档懒创建" +status: done +created: 2026-09-21 +updated: 2026-09-21 +owner: Cursor +branch: docs/lazy-doc-verification-2026-09-21 +worktree: "-" +mutex: infra+docs +--- + +# test 环境真实任务验证受控文档懒创建 + +## 目标 + +在 test 环境(8081)用真实 PI Agent 跑通一次 intake 任务,证明「激活后 0 文档是懒创建预期」:任务完成 → `document_records` 落 1 行 → documents API 返回 1 份受控文档。 + +## 背景 + +用户在 test 环境观察到「商务对接工作流已激活但流程受控文档数量为 0」。诊断确认: + +- 激活事务(`projectinstance/store.go activateInstanceTx`)只写实例表,不写 `document_records` +- 受控文档唯一生产创建点是任务运行时 `internal/bizdev/service.go:629` → `docgov.CreateOrGetDocument` +- test 库实测:`document_records` 全表 0 行;仅有的 2 条 `task_runs` 均为激活前 `blocked_pending_governance` +- beta6 报告 §5.3(项目 6)同样验证过「激活 0 文档 → 跑 intake 后 1 行」 + +## 范围 + +- test 环境新建验证专用项目 `lazy-doc-verify-20260921` +- 激活 main(商务对接)工作流 +- 跑一次真实 PI intake 任务(`backend=pi-agent`,非 stub) + +## 非目标 + +- 不修改现有项目 2/3/5 与项目 143 +- 不改代码逻辑(纯验证) +- 不合 `test`/`main` 分支 + +## 步骤 + +1. [x] 诊断并确认根因(懒创建设计) +2. [x] admin 登录 test,创建验证项目并激活 main 工作流 +3. [x] 激活后记录基线:documents API 返回 `[]` +4. [x] `POST /api/v1/tasks/runs` `task_key=bd_intake` `backend=pi-agent` +5. [x] 轮询至 completed(实测 3m45s) +6. [x] SQL + API + output.md 三重验证 +7. [x] 归档测试报告与资产 + +## 验收标准 + +- [x] 任务 `completed`,`output.md` 7729 字符(≥1500) +- [x] `document_records` 对项目 7 新增 1 行 `task_key='bd_intake'` +- [x] documents API 返回 1 份且 `is_template_only=false`、SoD 职责注入 +- [x] 报告归档 `.doc/test-reports/2026-09-21-test-env-bizdev-lazy-doc-verification-test-report.md` + +## 相关链接 + +- 背景:beta6 验证报告 §5.3(`.doc/test-reports/2026-09-20-test-env-beta6-assistant-squad-test-report.md`) +- 链路关键代码:`internal/bizdev/service.go:629`、`internal/docgov/engine.go:183`、`internal/docgov/project_docs.go:55` + +## 证据 / 备注 + +- 诊断 SQL 取样时间:2026-09-21 09:30 前后(test 库 5434) +- 任务执行使用真实 PI Agent + MiniMax-M2.7-highspeed 容器,符合交付铁律 diff --git a/.doc/test-reports/2026-09-21-test-env-bizdev-lazy-doc-verification-test-report.md b/.doc/test-reports/2026-09-21-test-env-bizdev-lazy-doc-verification-test-report.md new file mode 100644 index 00000000..5f4a42b0 --- /dev/null +++ b/.doc/test-reports/2026-09-21-test-env-bizdev-lazy-doc-verification-test-report.md @@ -0,0 +1,122 @@ +# test 环境商务对接受控文档懒创建验证 — 测试报告 + +**报告日期**: 2026-09-21 +**执行分支**: `docs/lazy-doc-verification-2026-09-21`(纯验证,无代码变更) +**证据目录**: [`.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/) +**关联任务**: [short-term/2026-09-21-test-env-lazy-doc-verification](../ops/short-term/2026-09-21-test-env-lazy-doc-verification.md) · [beta6 报告 §5.3](./2026-09-20-test-env-beta6-assistant-squad-test-report.md) + +--- + +## 一、 测试背景 (Background) + +用户在 test 环境观察到「项目已激活商务对接工作流,但流程受控文档数量为 0」。 + +静态诊断结论:这是**懒创建设计的预期表现**,非缺陷—— + +- 工作流激活事务(`internal/projectinstance/store.go activateInstanceTx`)只写 `projects / project_workflow_instances / project_stage_instances / project_doc_task_instances`,不写 `document_records`; +- 受控文档账本唯一生产创建点是任务运行时 `internal/bizdev/service.go:629` 调用 `docGov.CreateOrGetDocument`(`internal/docgov/engine.go:183` INSERT); +- 前端「共 N 份受控文档」计数来自 `GET /api/v1/projects/:id/documents?category=workflow` → `ListWorkflowDocumentsByProject`(`internal/docgov/project_docs.go:55`,查 `task_key <> ''`)。 + +诊断时 test 库实测:`document_records` 全表 0 行;仅有的 2 条 `task_runs`(项目 2 intake、项目 5 user_requirements)均为激活前发起的 `blocked_pending_governance`,从未有任务跑完。本报告通过端到端实测闭环验证该结论。 + +## 二、 测试目标 (Test Objectives) + +| # | 目标 | 成功标准 | +|---|------|----------| +| T1 | 激活后基线 | 新建项目激活 main 工作流后,documents API 返回 `[]`、`document_records` 为 0 行、`project_doc_task_instances` 全 `pending` | +| T2 | 真实 Agent 产出 | `POST /api/v1/tasks/runs` `task_key=bd_intake` `backend=pi-agent`(真实 MiniMax-M2.7-highspeed,非 stub)跑至 `completed` | +| T3 | 懒创建落库 | 任务完成后 `document_records` 对该项目新增 1 行(`task_key='bd_intake'`) | +| T4 | API 计数翻转 | documents API 返回 1 份、`is_template_only=false`、职责(author/reviewer/approver)与 SoD 分配一致 | +| T5 | 正文完整性 | 受控正文 ≥1500 字符;文件 SHA-256 与账本 `content_sha256` 一致 | + +## 三、 测试方案与环境 (Test Plan & Environment) + +| 项 | 值 | +|----|----| +| OS | Linux 7.0.0-31-generic | +| 目标环境 | test `:8081` / pi-agent `:18866` / pg `:5434`(`agent_system_test`) | +| Agent | `pi-agent` + `MiniMax-M2.7-highspeed`(真实 token,容器日志确认 provider=minimax) | +| 数据隔离 | 新建验证专用项目 id=7 `lazy-doc-verify-20260921`,不触碰既有项目 2/3/5 与只读项目 143 | +| SoD 职责 | author=26 `mtx_owner` / reviewer=27 `mtx_reviewer` / approver=28 `mtx_approver`(beta6 同款) | +| 层级 | 激活两步确认(plan save → preview → activate)→ 真实小队任务 → SQL/API/正文三重验证 | + +**测试用例矩阵**: + +| 用例 | 输入 | 判定分支 | +|------|------|----------| +| C1 激活基线 | preview + activate main v2 | lifecycle=active、实例 7 个 pending、文档 0 行 | +| C2 真实任务 | `bd_intake` + `backend=pi-agent` | status=completed、无 stub 痕迹 | +| C3 账本落库 | 任务完成后 SQL | `document_records` 1 行、state=drafting、version=1 | +| C4 API 计数 | documents API | 1 份、职责齐备、`duty_policy=separated` | +| C5 正文完整性 | docgov content API | SHA-256 对齐、字数达标 | + +## 四、 预期结果 (Expected Results) + +- C1:激活成功(instance id、`plan_hash` 返回),API `[]`、SQL 0 行——证明「激活不建文档」; +- C2:HTTP 202 → `running` → 小队四步(01_organize → 02_draft → 03_review → leader 整合)→ `completed`,参考 beta6 约 5.5min; +- C3/C4:`document_records` 与 API 同时出现 1 行/1 份,`author_name=矩阵负责人` 等 SoD 职责注入; +- C5:`output.md`(leader 终稿)≥1500 字符,SHA-256 与账本一致(无完整性漂移)。 + +## 五、 实际测试结果与判定 (Actual Results & Evaluation) + +### C1 激活后基线 — **PASS** + +- **测试输入 (Input)**:admin(4) 创建项目 7 → 加成员 26/27/28 → `PUT /workflow-plan`(plan_revision=1)→ `POST /activation-preview` → `POST /workflow-instances/activate` +- **实际输出 (Actual Output)**: + - 激活返回:`{"project_id":7,"lifecycle_status":"active","active_workflow_key":"main","instance":{"id":5,"workflow_version_id":13,...}}`([`08-activate.json`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/08-activate.json)) + - 基线 API:`[]`([`09-documents-baseline.json`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/09-documents-baseline.json)) + - 基线 SQL:`proj7_doc_records = 0`;`project_doc_task_instances` 7 个全部 `pending` +- **评价判定 (Evaluation / Verdict)**:**PASS**——激活只建实例不建账本,与诊断一致。 +- **性能与耗时 (Duration & Latency)**:全流程约 4s。 + +### C2 真实 PI Agent 任务 — **PASS** + +- **测试输入 (Input)**:`mtx_owner`(26) `POST /api/v1/tasks/runs`:`task_key=bd_intake`、`backend=pi-agent`、`session_id=sess-p7-u26`([`10-taskrun-create.json`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/10-taskrun-create.json)) +- **实际输出 (Actual Output)**: + - HTTP 202:`{"run_id":"run_1789956764008461988","status":"running"}` + - pi-agent 容器日志:依次 `Starting pi run in workspace: .../bd_intake_1789956764023617458/tasks/01_organize` → `02_draft` → `03_review` → `repair_1`(model: MiniMax-M2.7-highspeed, Provider: minimax) + - 终态([`12-run-final.json`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/12-run-final.json)):`"Status":"completed"`,`ErrorMessage=""`,`WorkspaceID=/app/data/workspaces/bizdev/bd_intake_1789956764023617458` +- **评价判定 (Evaluation / Verdict)**:**PASS**——真实 Agent 全链路(含一次 quality repair),无 stub。 +- **性能与耗时 (Duration & Latency)**:02:12:44 → 02:16:29,约 **3 分 45 秒**。 + +### C3 账本懒创建落库 — **PASS** + +- **测试输入 (Input)**:任务完成后 SQL 查询 `document_records WHERE project_id=7` +- **实际输出 (Actual Output)**([`13-sql-document-records.txt`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/13-sql-document-records.txt)): + + ```text + doc_id | project_id | task_key | current_state | is_template_only | version + -------------------+------------+-----------+---------------+------------------+--------- + doc_proj7_bd_intake | 7 | bd_intake | drafting | f | 1 + ``` + +- **评价判定 (Evaluation / Verdict)**:**PASS**——任务运行时 `CreateOrGetDocument` 落库,0 → 1。 +- **性能与耗时 (Duration & Latency)**:随任务 finalize 同步落库。 + +### C4 API 计数翻转与职责注入 — **PASS** + +- **测试输入 (Input)**:`GET /api/v1/projects/7/documents?category=workflow` +- **实际输出 (Actual Output)**([`14-documents-after.json`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/14-documents-after.json)):1 份;`title=用户初始需求收集表`;`lifecycle_state=drafting`;`author=矩阵负责人(26)` / `reviewer=矩阵审核(27)` / `approver=矩阵批准(28)`;`duty_policy=separated`;`is_template_only=false` +- **评价判定 (Evaluation / Verdict)**:**PASS**——前端大盘将由「共 0 份」变「共 1 份」。 +- **性能与耗时 (Duration & Latency)**:接口响应即时。 + +### C5 正文完整性 — **PASS** + +- **测试输入 (Input)**:`GET /api/v1/docgov/documents/doc_proj7_bd_intake/content` +- **实际输出 (Actual Output)**([`15-controlled-content.json`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/15-controlled-content.json) / [`16-output-summary.txt`](./assets/2026-09-21-test-env-bizdev-lazy-doc-verification/16-output-summary.txt)):`markdown_chars=7729`(≥1500);本地重算 SHA-256 与账本 `content_sha256=da4423df…` **完全一致**;首行 `# 用户初始需求收集表` +- **评价判定 (Evaluation / Verdict)**:**PASS**——账本与产物无完整性漂移。 +- **性能与耗时 (Duration & Latency)**:接口响应即时。 + +## 六、 自动化测试套件汇总 (Test Suite Execution) + +本次为只读性质的端到端验证(无代码变更),未重跑 `go test`。最近全量回归基线见 [rdev-seed-hotfix 报告 §6](./2026-09-20-rdev-seed-hotfix-test-report.md)(`go vet` PASS;`go test -short` 中 2 处既知环境依赖用例失败与本验证无关)。 + +## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) + +**结论**:用户观察到的「激活后流程受控文档数量为 0」是懒创建设计的预期表现,**非缺陷、无数据丢失**。完整证据链闭环:激活成功(0 份基线)→ 真实 PI 任务 3m45s 完成 → 账本落 1 行 → API 计数翻转 → 正文哈希对齐。系统行为符合 `internal/bizdev/service.go:629` 懒创建契约,beta6 报告 §5.3 结论在本轮得到独立复现。 + +**后续建议**: + +1. **产品口径**:前端可在受控文档大盘为 0 且工作流已激活时,增加「暂无受控文档,发起首个文档任务后生成」的引导文案,降低同类困惑(现 Demo 模板槽与真实账本并存易混淆)。 +2. **运维口径**:遇到「0 文档」先查 `task_runs` 是否存在终态任务,再看 `document_records`;激活前发起的任务会以 `blocked_pending_governance` 停住,不计入文档生成。 +3. **测试债务**(引用既有结论):`go test -short` 中默认连库的 notification/docgov 用例应改为无库即跳过。 diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/01-login.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/01-login.json new file mode 100644 index 00000000..b8304551 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/01-login.json @@ -0,0 +1 @@ +{"token":"442f2523ab4a6400bd11a529ffdb0ea05bc5274dac4a6114","user":{"id":4,"username":"admin","name":"系统管理员","status":"active","must_change_password":false,"role_id":"role-admin","position":"系统管理员","employee_id":"SYS-000","department":"系统运维部","created_at":"2026-09-16 01:02:33","updated_at":"2026-09-16 01:02:33"},"must_change_password":false,"env":"test"} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/02-create-project.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/02-create-project.json new file mode 100644 index 00000000..442d38d2 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/02-create-project.json @@ -0,0 +1 @@ +{"id":7,"code":"lazy-doc-ver-0b9c8bdd","name":"lazy-doc-verify-20260921","customer_name":"内部验证","device_type":"医疗软件","intended_use":"验证受控文档懒创建链路","target_market":"国内","product_domain":"medical_device","current_stage":"V0.1_triage","environment":"dev","status":"active","creator_user_id":4,"lifecycle_status":"planning","active_workflow_key":"","workflow_selection_version":1,"workflow_plan_revision":0,"created_at":"2026-09-21T02:06:16.562519815Z","updated_at":"2026-09-21T02:06:16.562519815Z"} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/03-activation-preview.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/03-activation-preview.json new file mode 100644 index 00000000..b14e2a41 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/03-activation-preview.json @@ -0,0 +1 @@ +Method Not Allowed diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/04-default-plan.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/04-default-plan.json new file mode 100644 index 00000000..a90169bd --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/04-default-plan.json @@ -0,0 +1 @@ +{"workflow_definition_key":"main","workflow_version":2,"workflow_version_id":13,"stages":[{"stage_key":"V0.1_triage","stage_name":"V0.1 需求摸底","enabled":true,"doc_tasks":[{"task_key":"bd_intake","task_title":"用户初始需求收集表","enabled":true,"approval_configurable":true,"duties":{}}]},{"stage_key":"V0.5_feasibility","stage_name":"V0.5 方案与可行性","enabled":true,"doc_tasks":[{"task_key":"bd_research","task_title":"调研报告","enabled":true,"approval_configurable":true,"duties":{}},{"task_key":"bd_feasibility_dev","task_title":"设计开发可行性评估报告","enabled":true,"approval_configurable":true,"duties":{}},{"task_key":"bd_feasibility_reg","task_title":"注册路径可行性评估报告","enabled":true,"approval_configurable":true,"duties":{}},{"task_key":"bd_user_requirements","task_title":"用户需求表","enabled":true,"approval_configurable":true,"duties":{}},{"task_key":"bd_prelim_design","task_title":"系统初步设计方案","enabled":true,"approval_configurable":true,"duties":{}}]},{"stage_key":"V1.0_quoting","stage_name":"V1.0 商务报价","enabled":true,"doc_tasks":[{"task_key":"bd_cdo_quote","task_title":"CDO 报价单","enabled":true,"approval_configurable":true,"duties":{}}]}]} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/05-plan-save.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/05-plan-save.json new file mode 100644 index 00000000..84b414ed --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/05-plan-save.json @@ -0,0 +1 @@ +{"project_id":7,"lifecycle_status":"planning","active_workflow_key":"","workflow_selection_version":1,"workflow_plan_revision":1,"plan":{"workflow_definition_key":"main","workflow_version":2,"workflow_version_id":13,"stages":[{"stage_key":"V0.1_triage","stage_name":"V0.1 需求摸底","enabled":true,"doc_tasks":[{"task_key":"bd_intake","task_title":"用户初始需求收集表","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]},{"stage_key":"V0.5_feasibility","stage_name":"V0.5 方案与可行性","enabled":true,"doc_tasks":[{"task_key":"bd_feasibility_dev","task_title":"设计开发可行性评估报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_feasibility_reg","task_title":"注册路径可行性评估报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_prelim_design","task_title":"系统初步设计方案","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_research","task_title":"调研报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_user_requirements","task_title":"用户需求表","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]},{"stage_key":"V1.0_quoting","stage_name":"V1.0 商务报价","enabled":true,"doc_tasks":[{"task_key":"bd_cdo_quote","task_title":"CDO 报价单","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]}]},"planning_instance":{"id":5,"project_id":7,"workflow_version_id":13,"instance_no":1,"status":"planning","config_revision":1,"plan_hash":"ef3660d12bca9ca2d4cbb7e7a063ea00a47fc7ff3c95fc696bd89c937b769f1c","config_snapshot":{"workflow_definition_key":"main","workflow_version":2,"workflow_version_id":13,"stages":[{"stage_key":"V0.1_triage","stage_name":"V0.1 需求摸底","enabled":true,"doc_tasks":[{"task_key":"bd_intake","task_title":"用户初始需求收集表","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]},{"stage_key":"V0.5_feasibility","stage_name":"V0.5 方案与可行性","enabled":true,"doc_tasks":[{"task_key":"bd_feasibility_dev","task_title":"设计开发可行性评估报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_feasibility_reg","task_title":"注册路径可行性评估报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_prelim_design","task_title":"系统初步设计方案","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_research","task_title":"调研报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_user_requirements","task_title":"用户需求表","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]},{"stage_key":"V1.0_quoting","stage_name":"V1.0 商务报价","enabled":true,"doc_tasks":[{"task_key":"bd_cdo_quote","task_title":"CDO 报价单","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]}]},"created_by":4,"created_at":"2026-09-21T02:10:13.209144Z","updated_at":"2026-09-21T02:10:13.209144Z"},"can_edit_plan":true,"can_activate":true,"published_workflows":[{"definition_key":"main","definition_name":"商务对接流程","latest_version":2,"workflow_version_id":13,"product_domain":"medical_device"},{"definition_key":"product_manager","definition_name":"智能产品经理流程","latest_version":2,"workflow_version_id":14,"product_domain":"medical_device"},{"definition_key":"rdev","definition_name":"研发设计控制流程","latest_version":1,"workflow_version_id":16,"product_domain":"medical_device"},{"definition_key":"software_bootstrap","definition_name":"软件项目自举流程","latest_version":1,"workflow_version_id":17,"product_domain":"non_medical_software"},{"definition_key":"software_delivery","definition_name":"软件交付迭代流程","latest_version":1,"workflow_version_id":18,"product_domain":"non_medical_software"},{"definition_key":"test_manager","definition_name":"智能测试工程师流程","latest_version":2,"workflow_version_id":15,"product_domain":"medical_device"}],"author_only_policy":{"allowed":true,"revision":1}} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/06-add-members.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/06-add-members.json new file mode 100644 index 00000000..37e2a45c --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/06-add-members.json @@ -0,0 +1,3 @@ +{"success":true} +{"success":true} +{"success":true} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/07-activation-preview.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/07-activation-preview.json new file mode 100644 index 00000000..4417d217 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/07-activation-preview.json @@ -0,0 +1 @@ +{"confirmation_token":"0177b89078ad15cbd54f87f9a2b4726397605c7eb6108811","plan_hash":"ef3660d12bca9ca2d4cbb7e7a063ea00a47fc7ff3c95fc696bd89c937b769f1c","expected_project_version":1,"expected_plan_revision":1,"summary":{"workflow_name":"商务对接流程","workflow_version":2,"enabled_stages":3,"enabled_doc_tasks":7,"governed_doc_tasks":7,"unmanaged_doc_tasks":0,"assigned_duties":21,"first_stage_key":"V0.1_triage","first_stage_name":"V0.1 需求摸底"},"validation":{"valid":true,"issues":[]},"expires_at":"2026-09-21T02:25:24.536441249Z"} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/08-activate.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/08-activate.json new file mode 100644 index 00000000..0029c677 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/08-activate.json @@ -0,0 +1 @@ +{"project_id":7,"lifecycle_status":"active","active_workflow_key":"main","instance":{"id":5,"project_id":7,"workflow_version_id":13,"instance_no":1,"status":"active","config_revision":1,"plan_hash":"ef3660d12bca9ca2d4cbb7e7a063ea00a47fc7ff3c95fc696bd89c937b769f1c","config_snapshot":{"workflow_definition_key":"main","workflow_version":2,"workflow_version_id":13,"stages":[{"stage_key":"V0.1_triage","stage_name":"V0.1 需求摸底","enabled":true,"doc_tasks":[{"task_key":"bd_intake","task_title":"用户初始需求收集表","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]},{"stage_key":"V0.5_feasibility","stage_name":"V0.5 方案与可行性","enabled":true,"doc_tasks":[{"task_key":"bd_feasibility_dev","task_title":"设计开发可行性评估报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_feasibility_reg","task_title":"注册路径可行性评估报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_prelim_design","task_title":"系统初步设计方案","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_research","task_title":"调研报告","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}},{"task_key":"bd_user_requirements","task_title":"用户需求表","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]},{"stage_key":"V1.0_quoting","stage_name":"V1.0 商务报价","enabled":true,"doc_tasks":[{"task_key":"bd_cdo_quote","task_title":"CDO 报价单","enabled":true,"approval_configurable":true,"duties":{"author_user_id":26,"reviewer_user_id":27,"approver_user_id":28}}]}]},"activated_by":4,"activated_at":"2026-09-21T02:10:47.385173Z","created_by":4,"created_at":"2026-09-21T02:10:13.209144Z","updated_at":"2026-09-21T02:10:47.385173Z"}} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/09-documents-baseline.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/09-documents-baseline.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/09-documents-baseline.json @@ -0,0 +1 @@ +[] diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/10-taskrun-create.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/10-taskrun-create.json new file mode 100644 index 00000000..9d5eba3d --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/10-taskrun-create.json @@ -0,0 +1 @@ +{"run_id":"run_1789956764008461988","status":"running"} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/11-mtx-owner-login.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/11-mtx-owner-login.json new file mode 100644 index 00000000..896555be --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/11-mtx-owner-login.json @@ -0,0 +1 @@ +{"token":"2456a8f96aea223a453229197b9c8c6ba9364367bab75e6f","user":{"id":26,"username":"mtx_owner","name":"矩阵负责人","status":"active","must_change_password":false,"role_id":"role-se","position":"系统工程师","created_at":"2026-09-16 05:23:29","updated_at":"2026-09-16 05:23:29"},"must_change_password":false,"env":"test"} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/12-run-final.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/12-run-final.json new file mode 100644 index 00000000..cffea2dd --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/12-run-final.json @@ -0,0 +1 @@ +{"RunID":"run_1789956764008461988","SessionID":"sess-p7-u26","ProjectID":7,"UserID":26,"ClientTurnID":"lazydoc-verify-1789956763","IdempotencyKey":"turn:sess-p7-u26:lazydoc-verify-1789956763","TaskKey":"bd_intake","Stage":"","WorkflowInstanceID":5,"StageInstanceID":22,"WorkflowStageKey":"V0.1_triage","Status":"completed","WorkspaceID":"/app/data/workspaces/bizdev/bd_intake_1789956764023617458","AssistantMsgID":14,"WorkerID":"","LeaseExpiresAt":null,"CreatedAt":"2026-09-21T02:12:44.008565725Z","UpdatedAt":"2026-09-21T02:16:29.611941639Z","ErrorMessage":"","Attempt":1,"resumable":false} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/13-sql-document-records.txt b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/13-sql-document-records.txt new file mode 100644 index 00000000..767e9187 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/13-sql-document-records.txt @@ -0,0 +1,5 @@ + doc_id | project_id | task_key | current_state | is_template_only | sha_len | work_dir | version | updated_at +---------------------+------------+-----------+---------------+------------------+---------+-----------------------------------------------------------+---------+------------------------------- + doc_proj7_bd_intake | 7 | bd_intake | drafting | f | 64 | /app/data/workspaces/bizdev/bd_intake_1789956764023617458 | 1 | 2026-09-21 02:16:29.602463+00 +(1 row) + diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/14-documents-after.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/14-documents-after.json new file mode 100644 index 00000000..008f1555 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/14-documents-after.json @@ -0,0 +1 @@ +[{"doc_id":"doc_proj7_bd_intake","project_id":7,"task_key":"bd_intake","title":"用户初始需求收集表","lifecycle_state":"drafting","is_template_only":false,"content_sha256":"da4423dfae764db1abe11da7419cdb29cc9343532364447ba1fae7897d42ec95","work_dir":"/app/data/workspaces/bizdev/bd_intake_1789956764023617458","version":1,"updated_at":"2026-09-21T02:16:29Z","author_id":26,"author_name":"矩阵负责人","reviewer_id":27,"reviewer_name":"矩阵审核","approver_id":28,"approver_name":"矩阵批准","duty_policy":"separated"}] diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/15-controlled-content.json b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/15-controlled-content.json new file mode 100644 index 00000000..16fb1922 --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/15-controlled-content.json @@ -0,0 +1 @@ +{"doc_id":"doc_proj7_bd_intake","version":1,"content_sha256":"da4423dfae764db1abe11da7419cdb29cc9343532364447ba1fae7897d42ec95","markdown":"# 用户初始需求收集表\n\n- **项目名称**: lazy-doc-verify-20260921\n- **文档状态**: 终稿\n- **审核角色**: leader(商务对接负责人)\n- **快照时间**: 2026-09-21\n- **前序依赖**: `tasks/02_draft/output.md`(writer 草稿)\n\n---\n\n## 结论\n\n本项目为内部验证项目,名称 `lazy-doc-verify-20260921`,客户标识为「内部验证」。产品类型登记为医疗软件,预期用途文字描述为「验证受控文档懒创建链路」,目标市场标注为国内。\n\n**当前材料不足以开跑正式设计控制(DHF)链路下游任务。** 已确认字段仅包含项目全局基线的 5 项基本信息(项目名、客户名、产品类型、预期用途、目标市场),缺乏任何实质性产品技术文档、监管分类界定文件、注册里程碑计划及预算时间约束。\n\n**本表最大的待澄清项**是预期用途的实质内涵:当前描述「验证受控文档懒创建链路」是一种**内部工程验证行为**,而非面向患者或使用者的临床/技术预期用途。这与产品类型「医疗软件」及目标市场「国内」的监管框架之间存在语义张力——若本项目意在验证一套可用于未来医疗软件注册文档生产的工具链,则需要明确该工具链自身是否作为医疗器械管理;若仅为内部流程验证,则当前的监管合规框架适用性存疑。**该问题属于阻塞性缺口,下游任务在此明确前无法推进。**\n\n---\n\n## 产品与使用场景\n\n### 结论句\n\n产品类型已登记为「医疗软件」,但产品实质——即该软件的功能范围、适应症、目标用户、使用环境与操作流程——**全部未提供**,属于本阶段最高优先级阻塞缺口。\n\n### 已知事实汇总\n\n| 字段 | 内容 | 来源 |\n|------|------|------|\n| 产品类型 | 医疗软件 | `project.md` |\n| 预期用途(文字) | 验证受控文档懒创建链路 | `project.md` |\n| 目标市场 | 国内 | `project.md` |\n| 项目名称 | lazy-doc-verify-20260921 | `project.md` |\n\n### 缺失信息清单\n\n以下所有子项均属「待确认」,无任何现有材料支撑:\n\n**1. 适应症(Indications)**\n未提供。该软件拟辅助、监测、诊断、治疗或预防任何疾病或病况的内容完全缺失。\n\n**2. 目标用户**\n未提供。软件的最终操作用户群体(临床医生、工程师、监管人员、患者等)未知。\n\n**3. 使用环境**\n未提供。软件预期部署的医疗环境(医院、诊所、家庭、门诊、基层医疗机构等)或非医疗环境未知。\n\n**4. 操作流程**\n未提供。软件从启动到完成核心任务的完整操作步骤、关键输入与输出、异常处理逻辑均未知。\n\n**5. 核心痛点**\n未提供。用户当前的文档创建痛点、现有替代方案、效率瓶颈等背景信息缺失。\n\n### 解读\n\n从 `project.md` 的描述「验证受控文档懒创建链路」来看,本项目当前披露的信息侧重于**工程验证**(即验证文档自动生成工具链的可运行性),而非面向最终产品的注册需求。这与 `user.md` 中用户关注的「法规标准合规与审评审批风险」之间存在逻辑断链:如果工具链本身不构成医疗器械,则审评审批风险评估不适用;如果工具链的输出(即受控文档模板)是用于支持另一款医疗器械注册,则需明确该目标产品的分类与注册路径。\n\n对本项目而言,当前无法判断产品是否属于《医疗器械监督管理条例》及《医疗器械软件注册审查指导原则》〔NMPA〕的管辖范围,亦无法评估是否需要符合 GB/T 25000 系列软件质量标准。需要用户补充产品实质描述后,方可确定监管分类路径。\n\n---\n\n## 客户诉求与约束\n\n### 结论句\n\n当前仅知客户名称为「内部验证」,其余诉求(时间、预算、已有资料、特殊约束)**全部未提供**,属于非阻塞性但影响商务方案排期的缺口。\n\n### 已知客户诉求\n\n| 维度 | 内容 | 状态 |\n|------|------|------|\n| 客户名称 | 内部验证 | ✅ 已确认 |\n| 预期用途(文字) | 验证受控文档懒创建链路 | ✅ 已确认(语义含义待澄清,见待确认清单) |\n| 目标市场 | 国内 | ✅ 已确认 |\n| 时间要求 | 未提供 | 待确认 |\n| 预算范围 | 未提供 | 待确认 |\n| 已有资料清单 | 未提供(无上传材料) | 待确认 |\n| 特殊约束 | 未提供 | 待确认 |\n\n### 已知用户偏好与关注点\n\n根据 `user.md` 的记载,用户有以下明确偏好:\n\n**沟通风格**:偏好结构精炼、结论先行,答复宜短而清,优先摘要与下一步,避免冗长铺垫。\n\n**重点关注事项**:\n- 法规标准合规与审评审批风险\n- 关键研发排期\n- 型检周期与备料冗余\n\n### 解读\n\n用户偏好「结论先行」直接影响了本文档的写作结构——结论节已置于文首,摘要节提供快速入口。\n\n用户对「法规标准合规与审评审批风险」的关切,与本项目当前产品实质不明之间形成张力:**若产品属于医疗器械软件监管范畴**(如第二类/第三类医疗器械软件),则需遵循《医疗器械软件注册审查指导原则(2022年修订版)》〔NMPA〕、GB/T 25000.51-2016《软件产品质量要求和测试细则》〔GB〕以及 YY/T 0664-2020《医疗器械软件 软件生存周期过程》〔YY〕等标准,合规论证工作量和审评审批风险均较高;**若产品定性为内部工具/验证性项目**,则上述法规框架不适用,但「审评审批风险」的关切便失去对象。用户需明确本项目的定性边界,以便下游任务匹配正确的合规框架。\n\n---\n\n## 已有材料摘要\n\n### 结论句\n\n本窗口**无用户上传的附加材料**;所有已确认信息均来自项目上下文文件(`project.md`、`user.md`、`blackboard.json`)及前序整理产出(`01_organize/output.md`)。\n\n### 材料清单\n\n#### 材料一:项目全局基线(`context/project.md`)\n\n| 属性 | 内容 |\n|------|------|\n| 文件性质 | 上下文权威文件(authoritative) |\n| 关键事实 | 项目名称、客户名称、产品类型、预期用途、目标市场共 5 项字段 |\n| 与本阶段关系 | 提供了本收集表的最小事实集,是唯一包含产品类型与预期用途文字描述的来源 |\n| 矛盾点 | 无 |\n\n#### 材料二:用户个性化工作偏好(`context/user.md`)\n\n| 属性 | 内容 |\n|------|------|\n| 文件性质 | 上下文权威文件(authoritative) |\n| 关键事实 | 用户沟通偏好(结论先行、结构精炼);重点关注事项(法规合规、审评风险、研发排期、型检周期) |\n| 与本阶段关系 | 约束本文档写作风格(结论先行);提示下游报告需覆盖法规合规与排期风险 |\n| 矛盾点 | 无 |\n\n#### 材料三:黑板事实与缺口记录(`blackboard.json`)\n\n| 属性 | 内容 |\n|------|------|\n| 文件性质 | 前序专员产出的结构化事实 |\n| 关键事实 | 与 `project.md` 一致的 5 项字段回填;gaps 数组为空(缺口未结构化记录) |\n| 与本阶段关系 | 确认了 `project.md` 的内容无歧义,但未能补充实质缺口清单(缺口分散记录在 `01_organize/output.md` 中) |\n| 矛盾点 | 无 |\n\n#### 材料四:资料整理报告(`tasks/01_organize/output.md`)\n\n| 属性 | 内容 |\n|------|------|\n| 文件性质 | 前序专员产出(primary_evidence) |\n| 关键事实 | 7 项事实清单(F-01 至 F-07);5 项缺口清单(3 项阻塞、2 项非阻塞);无矛盾 |\n| 与本阶段关系 | 为本文「已有材料摘要」和「待确认清单」提供了缺口结构化框架 |\n| 矛盾点 | 无 |\n\n#### 材料五:原始材料目录说明(`context/materials_text/README.md`)\n\n| 属性 | 内容 |\n|------|------|\n| 文件性质 | 说明文件 |\n| 关键事实 | 明确声明:本项目当前**未提供独立的附加文本材料**,所有事实依据以 project.md、user.md 和 knowledge/hits.md 为准 |\n| 与本阶段关系 | 直接说明为何本表缺乏实质性产品技术文档;解释了材料来源的局限性 |\n| 矛盾点 | 无 |\n\n### 综合评估\n\n**已知材料能够支撑的工作**:完成本表的字段快照、建立待确认清单框架、为PIR报告提供最小字段集。\n\n**已知材料无法支撑的工作**:\n\n- 任何设计控制文档(DHF)的设计输入\n- 监管分类论证(需 NMPA 分类界定文件或告知书)\n- 注册路径规划(需目标产品技术要求、型检计划等)\n- 商务方案报价与排期(需时间节点、预算范围)\n\n---\n\n## 阻塞性缺口分析\n\n### 结论句\n\n本阶段存在 **2 项阻塞性缺口**(产品实质描述、预期用途语义澄清)和 **3 项非阻塞但影响深远的缺口**(监管分类、注册计划、商务参数)。阻塞缺口不清除,下游设计控制任务和PIR报告均无法实质性启动。\n\n### 阻塞性缺口详情\n\n#### 缺口 A:产品实质描述完全缺失(最高优先级)\n\n| 属性 | 内容 |\n|------|------|\n| 缺口描述 | 产品功能范围、适应症、目标用户、使用环境、操作流程全部未提供 |\n| 影响范围 | 无法确定产品是否属于医疗器械监管范畴;无法支撑设计控制输入(DHF);PIR报告无法展开「产品与使用场景」章节 |\n| 已有尝试 | 材料说明文件(`materials_text/README.md`)确认无附加材料上传 |\n| 解决路径 | 需用户提供:产品技术要求/规格书(至少含功能概述、输入输出定义)或需求文档(SRS) |\n| 是否阻塞下游 | **是——阻塞所有设计控制任务(rd_*)及PIR报告的实质撰写** |\n\n#### 缺口 B:预期用途语义张力(高优先级)\n\n| 属性 | 内容 |\n|------|------|\n| 缺口描述 | 「验证受控文档懒创建链路」被登记为「预期用途」,但该描述指向**工程验证行为**而非**临床/技术预期用途**。若本项目为工具链自身验证,则不涉及医疗器械监管;若工具链的输出文档用于支持某医疗器械注册,则需明确该目标产品的分类与路径 |\n| 影响范围 | 决定了本项目整体适用的监管框架(医疗器械软件合规 vs. 内部工具评估);影响用户关注的「审评审批风险」是否实际存在 |\n| 已有尝试 | `project.md` 和 `blackboard.json` 均以该文字描述作为 `intended_use` 字段值,无歧义性标注 |\n| 解决路径 | 用户需明确:① 本项目的直接目的(自用工具验证 or 医疗器械注册文档生产);② 若为后者,工具链的目标输出产品是什么 |\n| 是否阻塞下游 | **是——阻塞监管路径确定,进而阻塞注册可行性评估与PIR报告合规章节** |\n\n### 非阻塞缺口(影响商务与排期)\n\n| 缺口编号 | 缺口描述 | 影响范围 | 阻塞状态 |\n|----------|----------|----------|----------|\n| C-01 | 监管分类界定依据缺失 | 无法确定产品属于哪一类医疗器械(第二类/第三类/不作为器械) | 非阻塞(待 A、B 澄清后补充) |\n| C-02 | 注册里程碑计划缺失(型检、临床、申报节点) | 无法支撑项目排期与用户关注的「型检周期」评估 | 非阻塞 |\n| C-03 | 预算与时间要求缺失 | 无法支撑商务方案与资源配置 | 非阻塞 |\n| C-04 | 已有资料清单未归档 | 商务端不清楚用户侧已有哪些文档积累 | 非阻塞 |\n\n---\n\n## 待确认清单汇总\n\n\u003e 以下清单覆盖本阶段所有经识别但未解决的缺口,按优先级和阻塞性分组。\n\n### 阻塞项(必须在下一阶段前由用户提供)\n\n| 编号 | 待确认项 | 缺失原因 | 建议获取方式 |\n|------|----------|----------|--------------|\n| BLK-01 | **产品实质描述**:功能范围、适应症、目标用户、使用环境、操作流程 | `materials_text/` 无上传材料;`project.md` 仅含字段标签 | 用户补充产品技术要求/规格书或需求文档(SRS) |\n| BLK-02 | **预期用途语义澄清**:本项目是「医疗器械注册文档生产工具的内部验证」还是「面向注册的医疗器械软件开发验证」 | `intended_use` 字段文字描述与医疗器械监管框架之间的语义关系未明确 | 用户确认项目定性(工程验证 vs. 注册产品)及工具链的目标输出产品(如有) |\n\n### 非阻塞项(影响深度评估与商务方案,不阻塞基础信息收集)\n\n| 编号 | 待确认项 | 缺失原因 | 影响 |\n|------|----------|----------|------|\n| NBK-01 | 医疗器械分类界定依据(NMPA分类界定文件或分类界定告知书) | 无上传材料 | 影响监管路径确定 |\n| NBK-02 | 注册里程碑计划(型检、临床、申报节点) | 无上传材料 | 影响项目排期与型检周期评估(用户关注项) |\n| NBK-03 | 预算范围与时间节点 | 无上传材料 | 影响商务方案与资源配置 |\n| NBK-04 | 用户已有资料清单(已有哪些文档积累) | 商务侧未归档 | 影响需求调研策略与重复工作量判断 |\n\n---\n\n## 下一步行动建议\n\n### 立即行动(需用户决策)\n\n1. **澄清项目定性**:请用户明确本项目是「内部工程验证」还是「医疗器械注册导向产品开发」,以便匹配正确的监管框架与合规路径。\n\n2. **补充产品实质信息**:请用户提供产品技术要求、规格书或需求文档,至少包含功能概述、输入输出定义、目标用户和使用环境描述。\n\n### 后续任务(待上述澄清后启动)\n\n- **PIR报告撰写**:待 BLK-01、BLK-02 澄清后,可启动项目初始化报告(PIR),展开产品分类论证、监管路径规划与注册里程碑建议。\n- **DHF链路验证**:若项目定性为医疗器械注册导向,工具链验证将作为内部质量体系文档生产工具的验证,可支撑 DHF 设计控制流程的受控文档创建环节。\n- **商务方案制定**:待 NBK-02、NBK-03 澄清后,方可制定详细的项目排期与资源配置方案。\n\n### 无需决策项\n\n- 无\n\n---\n\n## 文末附录\n\n### 字段快照\n\n| 字段 | 值 | 来源 |\n|------|-----|------|\n| 项目名称 | lazy-doc-verify-20260921 | `project.md` |\n| 客户名称 | 内部验证 | `project.md` |\n| 产品类型 | 医疗软件 | `project.md` |\n| 预期用途 | 验证受控文档懒创建链路 | `project.md`(语义含义待澄清,见 BLK-02) |\n| 目标市场 | 国内 | `project.md` |\n\n### 引用来源索引\n\n| 编号 | 来源文件 | 权威级别 | 文中引用位置 |\n|------|----------|----------|-------------|\n| S-01 | `context/project.md` | authoritative | 结论、产品与使用场景、客户诉求、字段快照 |\n| S-02 | `context/user.md` | authoritative | 客户诉求与约束(用户偏好)、写作风格约束 |\n| S-03 | `blackboard.json` | primary_evidence | 结论(事实一致性核验) |\n| S-04 | `tasks/01_organize/output.md` | primary_evidence | 已有材料摘要、缺口结构化参考 |\n| S-05 | `context/materials_text/README.md` | primary_evidence | 已有材料摘要(无上传材料说明) |\n| S-06 | `context/agent.md` | authoritative | 写作纪律引用 |\n\n### 法规与标准引用(知识库未命中说明)\n\n本阶段未引用具体法规条文,理由如下:\n\n- `knowledge/hits.md` 文件不存在(`ENOENT`),无知识库命中快照可供引用。\n- 当前已确认事实中无涉及具体法规条款适用的场景(如产品分类、性能要求、临床评价路径)。\n- 当预期用途语义澄清后(BLK-02),下一阶段应重新检索并引用:《医疗器械监督管理条例》〔国务院令第739号〕、《医疗器械软件注册审查指导原则(2022年修订版)》〔NMPA〕、GB/T 25000.51-2016、YY/T 0664-2020 等标准。\n\n\u003e **(分析判断,无直接条文依据)**:在预期用途语义澄清前,无法确定具体适用的监管框架,故暂不引用。\n\n---\n\n## 阻塞信息\n\n| 字段 | 内容 |\n|------|------|\n| 客户名称 | 内部验证 |\n| 产品类型/器械分类 | 医疗软件 |\n| 预期用途 | 验证受控文档懒创建链路(语义含义待澄清,见 BLK-02) |\n| 目标市场/注册区域 | 国内 |\n\n## 非阻塞信息\n\n| 字段 | 内容 | 状态 |\n|------|------|------|\n| 时间要求 | 未提供 | 待确认 |\n| 预算 | 未提供 | 待确认 |\n| 已有资料 | 未提供(无上传材料) | 待确认 |\n| 特殊约束 | 未提供 | 待确认 |\n\n---\n\n*本文档为终稿,由商务对接负责人审核整合 writer 草稿后产出。所有结论与数据以各来源专员标注为准。*\n","is_template_only":false,"consistency":"aligned","record_sha256":"da4423dfae764db1abe11da7419cdb29cc9343532364447ba1fae7897d42ec95","file_sha256":"da4423dfae764db1abe11da7419cdb29cc9343532364447ba1fae7897d42ec95","head_sha256":"da4423dfae764db1abe11da7419cdb29cc9343532364447ba1fae7897d42ec95"} diff --git a/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/16-output-summary.txt b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/16-output-summary.txt new file mode 100644 index 00000000..aa8c9daf --- /dev/null +++ b/.doc/test-reports/assets/2026-09-21-test-env-bizdev-lazy-doc-verification/16-output-summary.txt @@ -0,0 +1,20 @@ +doc_id: doc_proj7_bd_intake +markdown_chars: 7729 +version: 1 +--- first 12 lines --- +# 用户初始需求收集表 + +- **项目名称**: lazy-doc-verify-20260921 +- **文档状态**: 终稿 +- **审核角色**: leader(商务对接负责人) +- **快照时间**: 2026-09-21 +- **前序依赖**: `tasks/02_draft/output.md`(writer 草稿) + +--- + +## 结论 + +--- last 3 lines --- +--- + +*本文档为终稿,由商务对接负责人审核整合 writer 草稿后产出。所有结论与数据以各来源专员标注为准。* \ No newline at end of file