From 07ff3e45c478db85e78f0faefd9bb86b60e7dc30 Mon Sep 17 00:00:00 2001 From: weichen Date: Wed, 23 Sep 2026 15:19:29 +0000 Subject: [PATCH] docs(test): archive PI narrative closeout evidence Record the repaired MiniMax live path and update readiness copy before promoting docgov-pi-narrative to done. --- .../2026-09-16-pu7-pi-narrative-contract.md | 11 ++- .../2026-09-23-pi-narrative-final-closeout.md | 12 ++-- ...09-23-pi-narrative-closeout-test-report.md | 71 +++++++++++++++++++ .../live-minimax.txt | 5 ++ .../overlay-mode.txt | 28 ++++++++ internal/sysadmin/features.go | 2 +- 6 files changed, 119 insertions(+), 10 deletions(-) create mode 100644 .doc/test-reports/2026-09-23-pi-narrative-closeout-test-report.md create mode 100644 .doc/test-reports/assets/2026-09-23-pi-narrative-closeout/live-minimax.txt create mode 100644 .doc/test-reports/assets/2026-09-23-pi-narrative-closeout/overlay-mode.txt diff --git a/.doc/ops/long-term/2026-09-16-pu7-pi-narrative-contract.md b/.doc/ops/long-term/2026-09-16-pu7-pi-narrative-contract.md index c6edaad7..fcc0a901 100644 --- a/.doc/ops/long-term/2026-09-16-pu7-pi-narrative-contract.md +++ b/.doc/ops/long-term/2026-09-16-pu7-pi-narrative-contract.md @@ -2,7 +2,7 @@ title: "PU7 PI change-report 叙事 — 获批后任务契约" status: done created: 2026-09-16 -updated: 2026-09-17 +updated: 2026-09-23 owner: Cursor-Auto branch: feature/pu7-pi-narrative mutex: docgov @@ -13,6 +13,10 @@ go_no_go: go **go/no-go**:GO(用户覆盖授权,见 Wave3 research)。脚手架已合 `dev`;W3 live(产品 PI + digest 绑定)已接线,默认 flag 仍 off。 +## 2026-09-23 收口 + +修复后真实 MiniMax 复测 PASS(截断 hunk/impact 输入 + reasoning 目标落盘);报告见 [../../test-reports/2026-09-23-pi-narrative-closeout-test-report.md](../../test-reports/2026-09-23-pi-narrative-closeout-test-report.md)。FEATURE-MATRIX `docgov-pi-narrative` → `done`。默认 flag 仍 off;放量另授权。 + ## 目标 只读消费 immutable diff+lineage+risk floor 的 PI 叙事;任意 schema/超时/注入 → 全量 fallback。 @@ -27,11 +31,12 @@ go_no_go: go ## 路径 - `internal/docrevision/flags.go` / `narrative.go` / `service.go` -- `deploy/pi-agent/change-report-narrative-v1.mjs` +- `deploy/pi-agent/change-report-narrative-v1.mjs`;`runner.mjs` reasoning 目标落盘 - `web/.../ChangeReportPanel.tsx` / `changeReportView.ts` - 报告:[../../test-reports/2026-09-16-pu7-pi-narrative-test-report.md](../../test-reports/2026-09-16-pu7-pi-narrative-test-report.md) - W3 live:[../../test-reports/2026-09-17-w3-pi-change-report-narrative-test-report.md](../../test-reports/2026-09-17-w3-pi-change-report-narrative-test-report.md) -- short-term:[../short-term/2026-09-17-w3-pi-change-report-narrative.md](../short-term/2026-09-17-w3-pi-change-report-narrative.md) +- 收口:[../../test-reports/2026-09-23-pi-narrative-closeout-test-report.md](../../test-reports/2026-09-23-pi-narrative-closeout-test-report.md) +- short-term:[../short-term/2026-09-17-w3-pi-change-report-narrative.md](../short-term/2026-09-17-w3-pi-change-report-narrative.md);[../short-term/2026-09-23-pi-narrative-final-closeout.md](../short-term/2026-09-23-pi-narrative-final-closeout.md) ## 回滚 diff --git a/.doc/ops/short-term/2026-09-23-pi-narrative-final-closeout.md b/.doc/ops/short-term/2026-09-23-pi-narrative-final-closeout.md index f18879c9..746aaf21 100644 --- a/.doc/ops/short-term/2026-09-23-pi-narrative-final-closeout.md +++ b/.doc/ops/short-term/2026-09-23-pi-narrative-final-closeout.md @@ -47,18 +47,18 @@ remote_sync: not_requested ## 步骤与验收 1. [x] 建场并认领 mutex `docgov` -2. [ ] 补强 live 测试输入与 flag-on Resolve 断言 -3. [ ] 真实 PI 复测 + 前端分区 + vet/short/arch +2. [x] 补强 live 测试输入与 flag-on Resolve 断言 +3. [x] 真实 PI 复测 + 前端分区 + vet/short/arch(live PASS @ MiniMax-M2.7-highspeed 7.65s) 4. [ ] MATRIX → done;CURRENT/pu7/sysadmin 同步 -5. [ ] 测试报告归档;validate + queue enqueue;五态收口 +5. [ ] 测试报告归档;validate + integrate;五态收口 ## 验证与证据 | 范围 / 被测 SHA | 命令与环境 | 预期 | 实际 / 判定 | 证据 / 脱敏说明 | |---|---|---|---|---| -| live PI(进程 env flag) | `RUN_PI_E2E=1 … TestPiChangeReportNarrator_LiveMiniMax` | PASS;digest 原样;含截断差异 | pending | 报告 assets | -| 前端分区 | `overlayMode.test.ts` | PASS | pending | | -| 门禁 | `go vet` / `go test -short` / `arch-check --mode block` | 全绿 | pending | | +| live PI(进程 env flag) | `RUN_PI_E2E=1 … TestPiChangeReportNarrator_LiveMiniMax` | PASS;digest 原样;含截断差异 | PASS(7.65s) | [assets](../../test-reports/assets/2026-09-23-pi-narrative-closeout/live-minimax.txt) | +| 前端分区 | `overlayMode.test.ts` | PASS | PASS(14) | [overlay](../../test-reports/assets/2026-09-23-pi-narrative-closeout/overlay-mode.txt) | +| 门禁 | `go vet` / short narrative / `arch-check --mode block` | 全绿 | PASS | 收口报告 | ## 收口与交接 diff --git a/.doc/test-reports/2026-09-23-pi-narrative-closeout-test-report.md b/.doc/test-reports/2026-09-23-pi-narrative-closeout-test-report.md new file mode 100644 index 00000000..6815e637 --- /dev/null +++ b/.doc/test-reports/2026-09-23-pi-narrative-closeout-test-report.md @@ -0,0 +1,71 @@ +# PI change-report 叙事收口测试报告 + +## 一、 测试背景 (Background) + +`docgov-pi-narrative` 在 W3(2026-09-17)曾宣称 done,后因 2026-09-20 调研发现两处实质缺口回退 `partial`:`facts.json` 仅计数、`--no-tools` 仅为 prompt。缺口已先后补齐;2026-09-23 pi-runner response-size 与 reasoning 落盘路径变化触发本行重验。本轮补强 live 输入、修复 reasoning 目标落盘,并以真实 MiniMax 复测后升 `done`(默认 flag 仍 off)。 + +## 二、 测试目标 (Test Objectives) + +- live 路径携带截断 hunk/impact 文本;digest 原样回写 +- flag-on `ResolveChangeReport` → `analysis_status=complete` 且服务端 `rule_risk` 不被覆盖 +- runner reasoning 画像在 `--no-tools` 下将助手正文物化为 `narrative.md` +- 默认 `PI_CHANGE_REPORT_NARRATIVE=false` 保持 +- UI 分区回归仍 PASS + +## 三、 测试方案与环境 (Test Plan & Environment) + +| 项 | 值 | +|----|----| +| OS | Linux | +| Go | go1.x(本机) | +| 被测 SHA | `fdbefbac`(合入 local_dev 后) | +| Runner | `http://127.0.0.1:18865` / `MiniMax-M2.7-highspeed` / typed-result-v1 | +| Flag | 进程级 `PI_CHANGE_REPORT_NARRATIVE=true`(测后无残留;compose 默认 false) | +| 证据 | `assets/2026-09-23-pi-narrative-closeout/` | + +## 四、 预期结果 (Expected Results) + +- Live PASS;summary 引用具体阈值变更而非空泛计数 +- Resolve complete + medium risk 保留 +- overlay 14 pass;负例套件仍绿 + +## 五、 实际测试结果与判定 (Actual Results & Evaluation) + +### 5.1 真实 PI MiniMax(修复后输入) + +- **测试输入 (Input)**:`RUN_PI_E2E=1 PI_CHANGE_REPORT_NARRATIVE=true go test -count=1 ./internal/app -run TestPiChangeReportNarrator_LiveMiniMax -v` +- **实际输出 (Actual Output)**:见 `live-minimax.txt` + +```text +=== RUN TestPiChangeReportNarrator_LiveMiniMax + pi_narrative_test.go:158: elapsed=7.654s model=MiniMax-M2.7-highspeed raw={"schema_version":1,"schema_kind":"change_report_narrative_v1","input_digest":"5fbc5c7c082a6434802f442d03c1d92433e6f540715291f980b7bc6f28d6f88e","from_sha":"fromsha-closeout-20260923","to_sha":"tosha-closeout-20260923","summary":["性能指标中响应时间阈值从2秒收紧至1秒","验收口径调整,性能设计响应预算需复核"]} +--- PASS: TestPiChangeReportNarrator_LiveMiniMax (7.65s) +``` + +- **评价判定 (Evaluation / Verdict)**:PASS(digest 原样;summary 锚定 hunk 文本;Resolve complete) +- **性能与耗时 (Duration & Latency)**:7.65s + +### 5.2 前端分区 + +- **测试输入 (Input)**:`npx tsx --test src/features/documentRevision/overlayMode.test.ts` +- **实际输出 (Actual Output)**:14 pass(见 `overlay-mode.txt`) +- **评价判定 (Evaluation / Verdict)**:PASS +- **性能与耗时 (Duration & Latency)**:~97ms + +### 5.3 单测 / arch + +- `go test -short` narrative / Resolve / CreateAgentCandidate_Flag:PASS +- `node deploy/pi-agent/reasoning-materialize.test.mjs`:PASS +- `./scripts/arch-check.sh --mode block`:PASS + +### 5.4 默认 flag + +- compose / `.env.example` 仍为 false(未改动放量配置) + +## 六、 自动化测试套件汇总 (Test Suite Execution) + +本轮为能力成熟度收口(non_blocker),适用范围:narrative 包 + app live + overlay + arch。非产品全链路 PI nightly;全量 `go test ./...` **NOT REQUIRED**(依据验证契约:范围门禁已覆盖受影响包)。 + +## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) + +达到 FEATURE-MATRIX `docgov-pi-narrative` → `done`。默认 flag off;dev/test 常驻开启另授权。观察窗后评估放量。 diff --git a/.doc/test-reports/assets/2026-09-23-pi-narrative-closeout/live-minimax.txt b/.doc/test-reports/assets/2026-09-23-pi-narrative-closeout/live-minimax.txt new file mode 100644 index 00000000..d4fc15df --- /dev/null +++ b/.doc/test-reports/assets/2026-09-23-pi-narrative-closeout/live-minimax.txt @@ -0,0 +1,5 @@ +=== RUN TestPiChangeReportNarrator_LiveMiniMax + pi_narrative_test.go:158: elapsed=7.654s model=MiniMax-M2.7-highspeed raw={"schema_version":1,"schema_kind":"change_report_narrative_v1","input_digest":"5fbc5c7c082a6434802f442d03c1d92433e6f540715291f980b7bc6f28d6f88e","from_sha":"fromsha-closeout-20260923","to_sha":"tosha-closeout-20260923","summary":["性能指标中响应时间阈值从2秒收紧至1秒","验收口径调整,性能设计响应预算需复核"]} +--- PASS: TestPiChangeReportNarrator_LiveMiniMax (7.65s) +PASS +ok chat-agent-system/internal/app 7.660s diff --git a/.doc/test-reports/assets/2026-09-23-pi-narrative-closeout/overlay-mode.txt b/.doc/test-reports/assets/2026-09-23-pi-narrative-closeout/overlay-mode.txt new file mode 100644 index 00000000..02e5838d --- /dev/null +++ b/.doc/test-reports/assets/2026-09-23-pi-narrative-closeout/overlay-mode.txt @@ -0,0 +1,28 @@ +▶ document revision overlay modes + ✔ pure hides all decorations (0.542424ms) + ✔ manual only marks human hunks (0.091868ms) + ✔ all marks human and agent differently (0.068918ms) + ✔ same human hunk stays amber in manual and all (no pairwise style guarantee) (0.085537ms) + ✔ exposes needs-content error code for empty orphan docs (0.066098ms) + ✔ matches overlay hunks by section or text when ids differ (0.205044ms) + ✔ aligns client block ids from head_block_map by order (0.157785ms) +✔ document revision overlay modes (2.058258ms) +▶ toolbar refresh + report entry reachability + ✔ pickLatestChangeReportId prefers highest version with report (0.215954ms) + ✔ first squad run alone still exposes a reachable report id (0.099397ms) + ✔ second squad run keeps both history report entries and latest shortcut (0.127726ms) + ✔ revisionRefreshKey is an independent refresh signal from docId (0.090297ms) +✔ toolbar refresh + report entry reachability (0.732318ms) +▶ change report view model + ✔ surfaces risk items, project impact, doc impacts with advice, and open questions (0.403459ms) + ✔ marks complete analysis as PI narrative vs factual fields (0.164325ms) + ✔ preferReportId prioritizes pending over committed latest (0.056029ms) +✔ change report view model (0.730509ms) +ℹ tests 14 +ℹ suites 3 +ℹ pass 14 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 97.378459 diff --git a/internal/sysadmin/features.go b/internal/sysadmin/features.go index 44b13574..12496ef3 100644 --- a/internal/sysadmin/features.go +++ b/internal/sysadmin/features.go @@ -84,7 +84,7 @@ var featureMaturityCatalog = map[string]featureMaturity{ }, "PI_CHANGE_REPORT_NARRATIVE": { state: implShadow, adapter: adapterDegraded, - reason: "只读事实已含截断后的差异片段和影响说明,不含整篇文档。开关默认关闭。叙事请求已用 reasoning profile;pi-agent 经 bind-mount 已带 --no-tools。未授权打开前保持 shadow", + reason: "只读事实已含截断差异;reasoning/--no-tools 目标落盘与真实 MiniMax 链路已复测。开关默认关闭,待放量授权前保持 shadow", }, }