docs(test): expand matrix deep-test report with I/O analysis verdicts

Rewrite the promote report so each Wave case records input, system
output, analysis, and evaluation against FEATURE-MATRIX evidence.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
weichen
2026-09-16 05:37:16 +00:00
co-authored by Cursor
parent 794b1f43b7
commit 68455faa94
@@ -1,94 +1,550 @@
# FEATURE-MATRIX 深度测试与 test 晋升报告
# FEATURE-MATRIX 深度测试与 test 环境晋升 — 详细测试报告
**报告日期**: 2026-09-16
**执行分支**: `feature/matrix-deep-test-promote-test` → 合入 `dev` → 晋升 `test`
**候选 Tag**: `rc-v1.0.0-beta.2`
**证据目录**: [`.doc/test-reports/assets/2026-09-16-matrix-deep-test/`](./assets/2026-09-16-matrix-deep-test/)
**SSOT**: [FEATURE-MATRIX](../status/FEATURE-MATRIX.md) · [CURRENT](../ops/CURRENT.md) · [gap-matrix](../remediation/gap-matrix.md)
---
## 一、 测试背景 (Background)
`production_ready=yes` 后需按 FEATURE-MATRIX 对已实现模块做分层深度回归,并将本地 `dev` 晋升到 `test`(`rc-v1.0.0-beta.2`)以支撑长期实测。不重跑完整 28min 三工作流 PI;以短测全量 + 定向包 + live API + 一次真实 PI 抽样为门禁。
在 `production_ready=yes` 且三环境 schema 已对齐 47 的前提下,需要证明:
1. FEATURE-MATRIX 中**已实现**模块在当前代码上仍可运行(非仅历史报告);
2. 本地 `dev` 可安全晋升并部署到 `test`(`:8081`),供后续人工/长期实测。
此前发布门禁 B1–B4 已签,但矩阵行多为「历史证据链接」。本轮以分层深度回归补**当日可复现**证据,并完成 `rc-v1.0.0-beta.2` 晋升。
**刻意不做**:完整 28min 三工作流 PI 重跑;Round20 全量 Playwright;纯软件项目自举(`planned`);合入 `main`;改写项目 143。
---
## 二、 测试目标 (Test Objectives)
- 矩阵已实现行均有自动化或 live PASS 证据
- 真实 PI 抽样可用(typed-result dual-track)
- `test` 分支合并 `dev`,tag `rc-v1.0.0-beta.2`,`:8081` rebuild 冒烟 PASS,schema=47
| # | 目标 | 成功标准 |
|---|------|----------|
| T1 | 门禁基线全绿 | `go vet` / `go test -short` / arch-check / npm / prod-bundle exit 0 |
| T2 | 矩阵模块定向包全绿 | intent/chat/squad/workflow/authz/doc*/agent/events 定向 `ok` |
| T3 | 治理 PG 集成可复现 | 隔离库上 `TestWorkflowGovernance_PG_*` + `TestE2E_WorkflowGovernance_*` PASS |
| T4 | live 关键路径可用 | health、真实闲聊、会话授权、版本冲突、终止 preview、demo 无污染 |
| T5 | 真实 PI runner 可用 | typed-result dual-track 四子测 PASS |
| T6 | test 可更新部署 | `test` 合入 `dev`、tag、rebuild、smoke + 轻量 live PASS,schema=47 |
---
## 三、 测试方案与环境 (Test Plan & Environment)
| 层级 | 环境 | 说明 |
|------|------|------|
| Wave 1 | 本地 Go/npm | unset 污染 env;隔离库 `agent_gov_matrix@5434` |
| Wave 2 | dev `:8080` | pi-agent;项目 6367 |
| Wave 3 | runner `:18865` | MiniMax-M2.7-highspeed |
| Wave 4 | test `:8081` | events `:8089`;pi `:18866`;项目 3 |
### 3.1 分层方案
产物目录:`.doc/test-reports/assets/2026-09-16-matrix-deep-test/`
```text
Wave 1 自动化(短测 + 定向 + 隔离治理 PG)
Wave 2 live API(dev :8080,真实 pi-agent)
Wave 3 真实 PI 抽样(runner :18865;FAIL 才升格三链)
Wave 4 晋升 test + rebuild + smoke + live :8081
Wave 5 报告归档 + SSOT 注记修正
```
### 3.2 环境指纹
| 环境 | 端口 | schema | agent_backend | 备注 |
|------|------|--------|---------------|------|
| shared KB | 5432 | — | — | 共享知识库 |
| **dev** | **8080** / events 8088 / pi **18865** | **47** | **pi-agent** | Wave 2/3 |
| **test** | **8081** / events 8089 / pi **18866** | **47** | **pi-agent** | Wave 4 |
| main | 8000 | 47 | pi-agent | 本轮只读对照,不晋升 |
健康探针样例(dev):
```json
{"status":"ok","env":"dev","agent_backend":"pi-agent","schema_version":47,"schema_ready":true,"task_store_ready":true}
```
### 3.3 用例矩阵设计
| 矩阵模块 (mutex) | 验证手段 | 主要资产 |
|------------------|----------|----------|
| intent / intent-plan | short 定向包 | `modules.txt` |
| chat / ctxmgr | short + live 闲聊/window/guest | `modules.txt` + `live-8080.json` |
| squad | short | `modules.txt` |
| workflow | 治理 PG + live SavePlan/冲突/激活/preview | `governance-pg-verbose.txt` + live JSON |
| IAM / authz | live login / guest 403 / members | live JSON |
| docgov / docrevision | short 包(不重跑 Round20 UI) | `modules.txt` |
| web | npm + bundle + live 冲突恢复路径 | `npm.txt` / `bundle.txt` / live |
| pi-agent | short + node result-v1 + live typed-result | `modules.txt` / `pi-sample-typed.txt` |
| infra | health/ready/smoke | `dev-health.json` / `test-env-smoke.txt` |
| CI / E2E | 治理 PG 复跑 | `governance-pg*.txt` |
| events | short E0–E2 相关包 | `modules.txt` |
| 纯软件自举 | — | **N/A(planned)** |
---
## 四、 预期结果 (Expected Results)
各 Wave exit 0 / overall=PASS;`纯软件项目自举` 记 N/A。
| Wave | 预期 |
|------|------|
| W1 | 全部命令 exit 0;治理 PG ≥2 用例 PASS |
| W2 | `live-8080.json` `overall=PASS`;闲聊为真实模型回复;guest=`SESSION_FORBIDDEN`;冲突码=`ERR_CONCURRENT_SWITCH`;`can_terminate=true` |
| W3 | typed-result 四子测 PASS;**不**强制跑三工作流 PI |
| W4 | tag `rc-v1.0.0-beta.2`;`:8081` schema=47;smoke SUCCESS;`live-8081.json` overall=PASS |
| 矩阵 | 已实现行全部 PASS 或 N/A;无 FAIL 阻挡晋升 |
---
## 五、 实际测试结果与判定 (Actual Results & Evaluation)
### Wave 1 — 自动化
> 每个典型用例固定四段:**测试输入 → 系统输出 → 分析 → 评价判定**。耗时一并给出。
| 用例 | 输入 | 实际输出 | 判定 |
|------|------|----------|------|
| go vet | `go vet ./...` | exit 0(`vet.txt`) | PASS |
| go test -short | 全包 short | exit 0(`short.txt`) | PASS |
| arch-check | `--mode block` | production gate passed | PASS |
| npm test + bundle | `npm test`;`check-prod-bundle.sh` | 376+32 pass;bundle PASS | PASS |
| 模块定向 | intent/chat/squad/workflow/authz/doc*/agent/events | 全部 ok(`modules.txt`) | PASS |
| 治理 PG | `TestWorkflowGovernance_PG_|TestE2E_WorkflowGovernance` | 2 PASS(`governance-pg-verbose.txt`) | PASS |
---
### Wave 2 — live `:8080`
### 5.1 Wave 1 — 门禁基线与模块定向
- **输入**: health/login/create/chat/guest403/conflict/termination/demo(`zhanggong` 已停用,改用 `lizhuguan`)
- **实际输出**: 项目 **6367**,`overall=PASS`(`live-8080.json`)
- **判定**: PASS
#### 用例 W1-01:`go vet ./...`
### Wave 3 — PI 抽样
- **测试输入 (Input)**
```bash
env -u TEST_DATABASE_URL -u DATA_DIR go vet ./...
```
- **系统输出 (Actual Output)**
- 无诊断输出;`vet_exit=0`(见 `vet.txt`)
- **分析 (Analysis)**
- 清空 `TEST_DATABASE_URL`/`DATA_DIR` 避免上一轮 PI 隔离库与工作区路径污染编译/静态检查上下文。
- 无 vet 告警说明当前合入点类型与可疑构造检查通过。
- **评价判定 (Evaluation)**:**PASS**
- **耗时**:秒级
- **输入**: `RUN_PI_E2E=1 go test ./internal/agent -run TestPiAgentTypedResult_LiveDualTrack`
- **实际输出**: success/fail/cancel/timeout 均 PASS,3.28s(`pi-sample-typed.txt`)
- **判定**: PASS(未升格三链)
#### 用例 W1-02:`go test -short ./...`
### Wave 4 — 晋升 test
- **测试输入 (Input)**
```bash
env -u TEST_DATABASE_URL -u DATA_DIR -u KB_DB_PORT go test -short ./...
```
- **系统输出 (Actual Output)**(摘自 `short.txt` 尾部)
```text
ok chat-agent-system/internal/server 10.668s
ok chat-agent-system/internal/squad (cached)
...
short_exit=0
```
- **分析 (Analysis)**
- 全仓 short 回归覆盖业务主路径单元/httptest 层。
- `internal/server` ~10.7s 为最重包之一,仍在可接受范围内。
- 历史踩坑:保留 `TEST_DATABASE_URL` 时,resume 类 PG 用例会误连隔离库并因缺用户 FK 失败;本轮强制 unset 后稳定。
- **评价判定**:**PASS**
- **耗时**:约 92s(全量 short 墙钟)
- **输入**: `git merge --no-ff dev` → tag `rc-v1.0.0-beta.2` → `env-service.sh test rebuild` → smoke + live
- **实际输出**: health schema **47**;`test-env-smoke.sh` SUCCESS;live 项目 **3** overall PASS(`live-8081.json`)
- **注记**: `git-workflow-helper.sh promote-to-test` 的 `pull --rebase origin test` 曾触发危险 rebase,已 `rebase --abort` 后改为本地 merge;勿对已分叉的本地 `test` 盲目 rebase
- **判定**: PASS
#### 用例 W1-03:架构边界门禁
### 矩阵行汇总
- **测试输入 (Input)**
```bash
./scripts/arch-check.sh --mode block
```
- **系统输出 (Actual Output)**(`arch-check.txt`)
```text
arch-check mode=block
boundaries=.../module-boundaries.yaml
ok chat-agent-system/internal/archtest 0.138s
arch-check block: production gate passed
arch_exit=0
```
- **分析 (Analysis)**
- block 模式失败即阻断晋升;本轮模块边界契约未回退。
- **评价判定**:**PASS**
| 模块 | 判定 | 证据 |
|------|------|------|
| 意图 / intent-plan | PASS | modules + short |
| 对话 / ctxmgr | PASS | live-8080 chat/window/guest |
| squad | PASS | modules |
| 工作流治理 | PASS | governance-pg + live conflict/activate/preview |
| 纯软件自举 | N/A | planned |
| IAM | PASS | live authz guest 403 + create/members |
| docgov / docrevision | PASS | short packages(未重跑 Round20 UI) |
| 前端工作台 | PASS | npm + B4 路径 live |
| PI Runner | PASS | typed-result sample |
| 三环境运维 | PASS | health 三环境 47;test smoke |
| CI / E2E | PASS | governance PG + 既有门禁证据 |
| 事件解耦 | PASS | events short packages |
#### 用例 W1-04:前端 `npm test` + 生产包扫描
- **测试输入 (Input)**
```bash
cd web && npm test
./scripts/check-prod-bundle.sh
```
- **系统输出 (Actual Output)**
```text
ℹ tests 376
ℹ pass 376
ℹ fail 0
Test Files 3 passed (3) # vitest
Tests 32 passed (32)
✓ built in 7.44s
PASS: prod bundle scan (.../web/dist)
npm_exit=0 / bundle_exit=0
```
- **分析 (Analysis)**
- tsx node:test 与 vitest 双轨均绿。
- prod bundle 扫描确认 demo seeds 默认关闭(与 `DEMO-WEB-SEEDS` 门禁一致)。
- **评价判定**:**PASS**
- **耗时**:npm ~0.8s + build ~7.4s
#### 用例 W1-05:FEATURE-MATRIX 模块定向包
- **测试输入 (Input)**
按模块分组执行(见 `modules.txt`),例如:
```bash
go test -short -count=1 ./internal/intent ./internal/coordinator \
./internal/app/intentflow ./internal/app ./internal/events ./internal/server \
-run 'TestSplitPlan|TestPlanProposal|...|IntentPlan|TestIntentRecognition|...'
go test -short -count=1 ./internal/ctxmgr ./internal/app/chatflow ./internal/chat
go test -short -count=1 ./internal/squad/...
go test -short -count=1 ./internal/projectinstance ./internal/workflowdef \
./internal/auth ./internal/authz ./internal/docgov ./internal/docrevision
go test -short -count=1 ./internal/agent
node --test deploy/pi-agent/result-v1.test.mjs
go test -short -count=1 ./internal/events ./internal/app/docnotify \
./internal/app/docadvance ./internal/app/docproject ./internal/app/docflow
```
- **系统输出 (Actual Output)**(摘要)
| 分组 | 结果 |
|------|------|
| intent/intent-plan | 6 包 ok,`intent_exit=0` |
| chat | 3 包 ok,`chat_exit=0` |
| squad | ok,`squad_exit=0` |
| workflow/authz/doc* | 6 包 ok,`waf_exit=0` |
| pi-agent Go | ok 3.459s |
| pi-agent node result-v1 | **3 pass / 0 fail** |
| events E0–E2 | 5 包 ok,`events_exit=0` |
- **分析 (Analysis)**
- 定向包把 FEATURE-MATRIX 行映射到可执行命令,避免「只引用旧报告」。
- docrevision 本轮仅 short;完整 UI Round20 不在范围,但短测未暴露回归。
- **评价判定**:**PASS**
#### 用例 W1-06:治理 PG 集成(BUG-08 复跑)
- **测试输入 (Input)**
```bash
# 隔离库(禁止 agent_system_dev/test/main)
CREATE DATABASE agent_gov_matrix;
export TEST_DATABASE_URL='postgres://app:***@127.0.0.1:5434/agent_gov_matrix?sslmode=disable'
go test ./internal/server/ -run 'TestWorkflowGovernance_PG_|TestE2E_WorkflowGovernance' \
-timeout 20m -count=1 -v
```
- **系统输出 (Actual Output)**(`governance-pg-verbose.txt`)
```text
=== RUN TestE2E_WorkflowGovernance_CompleteAndReplan
goose: no migrations to run. current version: 47
--- PASS: TestE2E_WorkflowGovernance_CompleteAndReplan (0.31s)
=== RUN TestWorkflowGovernance_PG_ActivateApproveAdvanceChain
--- PASS: TestWorkflowGovernance_PG_ActivateApproveAdvanceChain (0.35s)
PASS
ok chat-agent-system/internal/server 0.663s
```
- **分析 (Analysis)**
- 迁移链停在 **47**,与共享环境一致。
- KB DSN 空配置触发离线降级日志,**不构成失败**(治理链路不依赖共享 KB)。
- 覆盖「完成再规划」与「激活→批准→推进」两条治理主链。
- **评价判定**:**PASS**
- **耗时**:约 0.66s(库已迁完后复跑)
---
### 5.2 Wave 2 — live API 抽检(dev `:8080`)
**会话元数据**:项目 **6367** / `sess-p6367-u11` / `overall=PASS`(完整 JSON:[`live-8080.json`](./assets/2026-09-16-matrix-deep-test/live-8080.json))
#### 用例 W2-01:健康与后端真实性
- **测试输入**
`GET /api/v1/health`、`GET /api/v1/ready`
- **系统输出**
```json
{"status":"ok","env":"dev","agent_backend":"pi-agent","schema_version":47,"schema_ready":true,"task_store_ready":true}
```
- **分析**
- `agent_backend=pi-agent` 排除 stub 冒充验收。
- schema 47 与 goose 最新迁移一致。
- **评价判定**:**PASS**(6ms)
#### 用例 W2-02:登录与账号可用性
- **测试输入**
尝试 `zhanggong/123456` → 失败后改用 `lizhuguan`(owner)、`wangzong`(reviewer)、`admin`(approver)、`guest`
- **系统输出**
- `zhanggong`:**403**「账号已被停用,禁止登录」
- 有效账号:owner_id=11,reviewer_id=12,approver_id=9,guest_id=13
- **分析**
- 停用账号 fail-closed,符合 IAM 预期。
- 活验账号切换已写入证据 note,避免误用历史脚本默认用户。
- **评价判定**:**PASS**(账号策略正确;替代账号可用)
#### 用例 W2-03:Demo 污染防护(项目列表)
- **测试输入**
`GET /api/v1/projects`(Bearer owner)
- **系统输出**
- http=200;列表 count=7;`polluted=[]`(无 id 6001–6010)
- **分析**
- 与 goose 00046/00047 `demo_retired` + 列表过滤一致;演示十项目未回流列表。
- **评价判定**:**PASS**
#### 用例 W2-04:新建项目与交付物洁净
- **测试输入**
```http
POST /api/v1/projects
{"name":"矩阵深度抽检-051808","code":"mtx-051808",
"device_type":"超声软组织手术吸引设备",...}
GET /api/v1/projects/6367/documents
```
- **系统输出**
- 创建:**201**,`project_id=6367`
- 文档:http=200,`doc_count=0`,`mock_ids=[]`
- **分析**
- 新建项目无 mock/seed 交付物污染(`DEMO-WEB-SEEDS`/`DEMO-DB-SEED` 防线仍有效)。
- **评价判定**:**PASS**(create 20ms)
#### 用例 W2-05:真实 PI 闲聊
- **测试输入**
```http
POST /api/v1/chat
session_id=sess-p6367-u11
message=先记录一下:本项目是超声软组织吸引设备立项摸底,请用一两句话确认你已记住设备类型
```
- **系统输出**
- http=**200**,耗时 **8101ms**
- 回复摘录:
> 好的,已记住——本项目是**超声软组织吸引设备**(即超声软组织手术吸引设备)的立项摸底。…
- **分析**
- 延迟与语义均符合真实 MiniMax 链路,非 stub 瞬时模板。
- 设备类型被正确回指,满足「记忆确认」意图抽检。
- **评价判定**:**PASS**
#### 用例 W2-06:刷新窗口与分类一致性
- **测试输入**
`GET /api/v1/chat/messages/window?session_id=sess-p6367-u11&days=7`
`GET /api/v1/chat/categories?session_id=...`
- **系统输出**
- window http=200,`window_msgs=2`
- categories http=200
- **分析**
- 一轮 user+assistant 后窗口至少 2 条,符合刷新可读预期(CHAT-HISTORY-REFRESH 相关契约)。
- **评价判定**:**PASS**(3ms)
#### 用例 W2-07:双用户负例(guest)
- **测试输入**
guest token 读取同一 `session_id` 的 window
- **系统输出**
- http=**403**,`error_code=SESSION_FORBIDDEN`
- **分析**
- 非会话 owner fail-closed;跨用户不可枚举他人对话。
- **评价判定**:**PASS**
#### 用例 W2-08:工作流规划保存
- **测试输入**
拉取 `workflow-plan/default?workflow_key=main` → 填充三权职责 →
`PUT .../workflow-plan`(`expected_plan_revision=0`,`expected_selection_version=1`)
- **系统输出**
- http=**200**;`lifecycle_status=planning`;`workflow_plan_revision=1`
- **分析**
- 成员已 upsert 后 SavePlan 成功(避免历史 `DUTY_ASSIGNEE_NOT_ACTIVE_MEMBER`)。
- **评价判定**:**PASS**(5ms)
#### 用例 W2-09:版本冲突(乐观锁)
- **测试输入**
使用正确 `plan_revision`,但 `expected_selection_version=999` 再次 PUT
- **系统输出**
- http=**409**
- 嵌套业务码:`ERR_CONCURRENT_SWITCH`(HTTP 信封外层可为 `VERSION_CONFLICT`)
- **分析**
- 前端已能解包嵌套业务码并映射 `retry_after_switch`;本用例验证后端冲突契约仍在。
- **评价判定**:**PASS**(1ms)
#### 用例 W2-10:激活 + 终止 preview
- **测试输入**
`POST .../activation-preview` → `POST .../workflow-instances/activate` →
`GET /api/v1/workflow-instances/{id}/termination-preview`
- **系统输出**
- activate http=**200**
- preview http=**200**;`instance_id=262`;`can_terminate=true`
- keys: `pending_documents`, `in_progress_task_runs`, `can_terminate`, `impact`
- **分析**
- 激活后实例可查询终止影响面,满足治理「先 preview 再终止」门禁。
- **评价判定**:**PASS**
**Wave 2 总评**:**PASS**(12/12 子用例)
---
### 5.3 Wave 3 — 真实 PI 抽样
#### 用例 W3-01:`TestPiAgentTypedResult_LiveDualTrack`
- **测试输入**
```bash
RUN_PI_E2E=1 \
PI_AGENT_RUNNER_URL=http://127.0.0.1:18865 \
PI_AGENT_RUNNER_AUTH_TOKEN=<from container> \
DATA_DIR=.../data/dev \
go test ./internal/agent -run TestPiAgentTypedResult_LiveDualTrack -timeout 15m -v -count=1
```
Runner 健康(`pi-runner-dev-health.json`):
`ok=true`,`model_id=MiniMax-M2.7-highspeed`,`has_token=true`
- **系统输出**(`pi-sample-typed.txt`)
```text
--- PASS: TestPiAgentTypedResult_LiveDualTrack (3.28s)
--- PASS: .../failure_empty_prompt (0.00s)
--- PASS: .../timeout (0.00s)
--- PASS: .../cancel (0.30s)
--- PASS: .../success (2.97s)
pi_sample_exit=0
```
- **分析**
- 覆盖成功路径与失败/超时/取消,证明 runner 鉴权、typed-result 编解码与取消语义可用。
- 抽样已 PASS,按计划**不升格**完整三工作流 PI E2E(节约 ~28min,风险可控)。
- **评价判定**:**PASS**
- **耗时**:3.28s
---
### 5.4 Wave 4 — 晋升并部署 test
#### 用例 W4-01:Git 晋升与 Tag
- **测试输入**
1. 首次执行 `./scripts/git-workflow-helper.sh promote-to-test rc-v1.0.0-beta.2`
2. 因 `git pull --rebase origin test` 触发大规模 rebase 冲突 → `git rebase --abort`
3. 改为:`git checkout test && git merge --no-ff dev` + `git tag -a rc-v1.0.0-beta.2`
- **系统输出**
- Tag 存在:`rc-v1.0.0-beta.2`
- `test` 先端含 promote merge + 后续 closeout sync
- **分析**
- 本地 `test` 与 `origin/test` 分叉时,rebase 会重放数百提交,属**工具风险**而非产品缺陷。
- 已加固 `scripts/git-workflow-helper.sh`:本地晋升默认不再 `pull --rebase origin test`。
- **评价判定**:**PASS**(晋升目标达成;工具缺陷已修)
#### 用例 W4-02:test 容器 rebuild / 健康
- **测试输入**
```bash
./scripts/env-service.sh test rebuild
# 中间误用 compose 导致 PG 端口绑到 5433 冲突后,改用 env-service start 恢复
curl -sf http://127.0.0.1:8081/api/v1/health
curl -sf http://127.0.0.1:8081/api/v1/ready
curl -sf http://127.0.0.1:8089/health
curl -sf http://127.0.0.1:18866/health
```
- **系统输出**
- health/ready:`env=test`,`schema_version=47`,`agent_backend=pi-agent`
- events:`{"env":"test","owner":"events-1","status":"ok"}`
- pi-agent:`ok=true`,model `MiniMax-M2.7-highspeed`
- **分析**
- `.env` 中 `SYSTEM_DB_PUBLISH_PORT=5433` 会被裸 `docker compose` 覆盖 test 默认 5434;**必须**走 `env-service.sh test *`。
- schema 与 dev 对齐 47,具备同构实测条件。
- **评价判定**:**PASS**
#### 用例 W4-03:`test-env-smoke.sh`
- **测试输入**
`./scripts/test-env-smoke.sh`(默认 `:8081` + pi `:18866`)
- **系统输出**(`test-env-smoke.txt`)
```text
[PASS] test app SPA /
[PASS] test app deep link /projects
[PASS] pi-agent /health
[SUCCESS] test env smoke passed
```
- **分析**
- SPA/深链/runner 冒烟通过,说明前端静态资源与路由回退可用。
- **评价判定**:**PASS**
#### 用例 W4-04:test 轻量 live(隔离库)
- **测试输入**
- test 库初始仅 `admin`;经 SQL 注入 `mtx_owner/reviewer/approver`(复用 admin 密码哈希)
- admin 创建项目(具备 `project:create`)→ 成员 upsert → SavePlan → 冲突 PUT → Activate → termination-preview
- **禁止**读取 `data/dev`
- **系统输出**([`live-8081.json`](./assets/2026-09-16-matrix-deep-test/live-8081.json))
| 步骤 | HTTP / 结果 |
|------|-------------|
| health | schema=47,env=test |
| create_project | **201**,`project_id=3`,code=`tst-052432` |
| save_plan | **200**,`workflow_plan_revision=1` |
| conflict | **409**,`ERR_CONCURRENT_SWITCH` |
| activate | **200**,`lifecycle_status=active`,`active_workflow_key=main`,instance id=1 |
| termination_preview | **200**,`can_terminate=true` |
| **overall** | **PASS** |
- **分析**
- 项目 id=3 说明 test 业务库与 dev(6367)**严格隔离**。
- 冲突/激活/preview 契约与 dev 一致,证明晋升镜像行为正确。
- 副作用:`mtx_*` 为测试账号种子,可保留供后续实测。
- **评价判定**:**PASS**
**Wave 4 总评**:**PASS**
---
### 5.5 FEATURE-MATRIX 行级评价汇总
| 模块 | 状态(矩阵) | 本轮验证 | 评价 |
|------|------------|----------|------|
| 意图识别 L1 | partial | W1 定向 | **PASS(功能可用)**;U9–U12 仍为 backlog |
| 多意图持久计划 | partial | W1 定向 | **PASS(U1–U8 短测)**;schema 注记已改为 47 |
| 对话 / ctxmgr | partial | W1+W2 | **PASS** |
| 智能体小队 | done | W1 | **PASS** |
| 工作流治理 | partial | W1-06+W2+W4 | **PASS** |
| 纯软件项目自举 | planned | — | **N/A** |
| IAM / 鉴权 | partial | W2/W4 | **PASS**(含停用账号与 guest 负例) |
| 文档治理 | done | W1 short | **PASS(短测)**;未重跑 UI Round20 |
| 文档版本与修改认知 | partial | W1 short | **PASS(短测)**;change-report 仍 fallback |
| 前端工作台 | partial | W1 npm + W2 冲突路径 | **PASS** |
| PI Runner | done | W1+W3 | **PASS** |
| 三环境运维 | done | W2/W4 health | **PASS** |
| CI / E2E | partial | W1-06 | **PASS(治理 PG)**;`-race` flake 仍为基建债 |
| 模块解耦与事件 | partial | W1 events | **PASS(短测)** |
---
## 六、 自动化测试套件汇总 (Test Suite Execution)
```text
go vet ./... → exit 0
go test -short ./... → exit 0
./scripts/arch-check.sh --mode block → PASS
cd web && npm test → 376 + 32 PASS
./scripts/check-prod-bundle.sh → PASS
治理 PG(agent_gov_matrix) → 2 PASS
PI typed-result live → 4/4 PASS
./scripts/test-env-smoke.sh → SUCCESS
```
| 命令 | 结果 | 证据 |
|------|------|------|
| `go vet ./...` | exit 0 | `vet.txt` |
| `go test -short ./...` | exit 0 | `short.txt` |
| `./scripts/arch-check.sh --mode block` | PASS | `arch-check.txt` |
| `cd web && npm test` | 376 + 32 PASS | `npm.txt` |
| `./scripts/check-prod-bundle.sh` | PASS | `bundle.txt` |
| 模块定向套件 | 全组 exit 0 | `modules.txt` |
| 治理 PG(`agent_gov_matrix`) | 2 PASS | `governance-pg-verbose.txt` |
| PI typed-result live | 4/4 PASS | `pi-sample-typed.txt` |
| `./scripts/test-env-smoke.sh` | SUCCESS | `test-env-smoke.txt` |
| live `:8080` / `:8081` | overall PASS | `live-8080.json` / `live-8081.json` |
**通过率(本轮门禁用例)**:Wave 1–4 关键用例 **100% PASS**;矩阵已实现行 **无 FAIL**;planned 行 **N/A**。
---
## 七、 测试结论与后续优化建议 (Conclusion & Next Steps)
- FEATURE-MATRIX 已实现能力深度回归 **PASS**;本地 `test` 已部署 `rc-v1.0.0-beta.2`(schema 47)。
- 建议修正 `git-workflow-helper.sh promote-to-test`:对本地晋升跳过 `pull --rebase`,或改为 `pull --ff-only`/`merge`。
- 远端推送 `test`/tag 需用户明确授权后再执行 `./scripts/git-push-dev.sh test`。
### 7.1 结论
1. **系统可正常运作**:短测、模块定向、治理 PG、dev/test live 与真实 PI 抽样均 PASS。
2. **FEATURE-MATRIX 已实现能力**在本轮证据下可判定为**可用/未回归**;planned 的「纯软件项目自举」不纳入本轮验收。
3. **test 服务端已更新部署**:本地 `test` @ `rc-v1.0.0-beta.2`,`:8081` schema=47,smoke + 轻量 live PASS。
4. **总评价**:**达到晋升与深度回归目标,建议作为当前 test 实测基线。**
### 7.2 风险与后续
| 项 | 说明 | 建议 |
|----|------|------|
| 完整三工作流 PI | 本轮仅抽样 | 夜间 `RUN_PI_E2E=1` 或发版前补跑 |
| Round20 UI | 未重跑 | 文档修订大改动时再跑 Playwright |
| `zhanggong` 停用 | dev 默认脚本用户失效 | 更新活验脚本默认账号 |
| test 缺种子用户 | 仅 admin | 晋升后补 demo/业务用户种子或文档化 SQL 种子步骤 |
| 远端同步 | 未 push | 用户授权后 `./scripts/git-push-dev.sh test` 并推送 tag |
| promote 工具 | 已修默认 rebase | 继续避免对分叉 `test` 做 origin rebase |
### 7.3 关键产物索引
| 文件 | 内容 |
|------|------|
| `assets/.../live-8080.json` | dev 全链路抽检 |
| `assets/.../live-8081.json` | test 晋升后抽检 |
| `assets/.../pi-sample-typed.txt` | 真实 PI 抽样 |
| `assets/.../governance-pg-verbose.txt` | 治理 PG |
| `assets/.../short.txt` / `modules.txt` / `npm.txt` | 自动化基线 |
| `assets/.../test-env-smoke.txt` | test 冒烟 |