docs(test): archive PU8 U9–U12 flags scaffolding report

Record default-off flag gates, unit evidence, and FEATURE-MATRIX partial status.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
weichen
2026-09-16 15:42:49 +00:00
co-authored by Cursor
parent 0611b1f24f
commit 6087d0bdef
12 changed files with 143 additions and 26 deletions
+1
View File
@@ -13,6 +13,7 @@
| owner | task | branch | worktree | mutex | status |
|-------|------|--------|----------|-------|--------|
| Cursor | 2026-09-16-pu8-u9-u12-flags | feature/pu8-u9-u12-flags | /tmp/wt-pu8 | intent-plan | done |
| Cursor | 2026-09-16-full-backlog-override | docs/override-nogo-full-backlog | - | architecture-docs | in_progress |
| Cursor | 2026-09-16-gitea-nightly-docker-datadir | fix/gitea-nightly-docker-datadir | - | ci | done |
| Cursor | 2026-09-16-gitea-nightly-host-tools | fix/gitea-nightly-host-tools | - | ci | done |
@@ -1,10 +1,10 @@
---
title: "PU8-U10 mutate — 获批后任务契约"
status: planned
status: in_progress
created: 2026-09-16
updated: 2026-09-16
owner: TBD
branch: feature/pu8-u10-mutate
owner: Cursor
branch: feature/pu8-u9-u12-flags
mutex: intent-plan
go_no_go: go
flag: MULTI_INTENT_U10_MUTATE
@@ -12,7 +12,7 @@ flag: MULTI_INTENT_U10_MUTATE
# PU8-U10 mutate
**go/no-go**:no-go。独立 flag;高风险动作绑定 expected revision + 显式确认 + 执行前再授权;不依赖 U9。
**go/no-go**:GO(覆盖授权)。独立 flag 默认 off;脚手架 dry-run + expected revision 门禁;不依赖 U9。
## 负例
@@ -1,10 +1,10 @@
---
title: "PU8-U11 docgov action — 获批后任务契约"
status: planned
status: in_progress
created: 2026-09-16
updated: 2026-09-16
owner: TBD
branch: feature/pu8-u11-docgov
owner: Cursor
branch: feature/pu8-u9-u12-flags
mutex: docgov
go_no_go: go
flag: MULTI_INTENT_U11_DOCGOV
@@ -12,4 +12,4 @@ flag: MULTI_INTENT_U11_DOCGOV
# PU8-U11 docgov
**go/no-go**:no-go。独立 flag/mutex;按钮与自然语言同一 owner command;项目 143 只读纪律不变。
**go/no-go**:GO(覆盖授权)。独立 flag 默认 off;脚手架 dry-run + revision 门禁;项目 143 只读纪律不变。
@@ -1,10 +1,10 @@
---
title: "PU8-U12 workflow/run-control — 获批后任务契约"
status: planned
status: in_progress
created: 2026-09-16
updated: 2026-09-16
owner: TBD
branch: feature/pu8-u12-workflow-run-control
owner: Cursor
branch: feature/pu8-u9-u12-flags
mutex: workflow
go_no_go: go
flag: MULTI_INTENT_U12_RUN_CONTROL
@@ -12,4 +12,4 @@ flag: MULTI_INTENT_U12_RUN_CONTROL
# PU8-U12 workflow/run-control
**go/no-go**:no-go。独立 flag;双标签确认/取消仅一成功;投影停机时权威 GET 仍正确;回滚后计划可读/取消/finalize。
**go/no-go**:GO(覆盖授权)。独立 flag 默认 off;脚手架 dry-run;双标签确认/取消与投影权威仍待 live 接线。
@@ -1,10 +1,10 @@
---
title: "PU8-U9 segment proposal — 获批后任务契约"
status: planned
status: in_progress
created: 2026-09-16
updated: 2026-09-16
owner: TBD
branch: feature/pu8-u9-segment-proposal
owner: Cursor
branch: feature/pu8-u9-u12-flags
mutex: intent-plan
go_no_go: go
flag: MULTI_INTENT_U9_SEGMENT
@@ -12,7 +12,7 @@ flag: MULTI_INTENT_U9_SEGMENT
# PU8-U9 segment proposal
**go/no-go**:no-go。规则无法判断时才出 segment proposal;超时/越界 fail closed;非 U10–U12 默认前置。
**go/no-go**:GO(覆盖授权)。脚手架:`MULTI_INTENT_U9_SEGMENT` 默认 off;开启后 stub fail-closed(malformed/timeout/越界)。规则无法判断时才出 segment proposal;非 U10–U12 默认前置。
## 安全 stop gate
@@ -26,7 +26,7 @@ mutex: architecture-docs
3. [ ] P2 IAM inventory + 410 + R13
4. [ ] P3 Playwright intent-plan 双标签
5. [ ] P4 PU6 + PU7
6. [ ] P5 PU8 U9→U12
6. [x] P5 PU8 U9→U12(flag 脚手架:`feature/pu8-u9-u12-flags`;见 [报告](../../test-reports/2026-09-16-pu8-u9-u12-flags-test-report.md);未合 dev)
7. [ ] P6 SWBOOT-00…09(10 stub)
8. [ ] P7 FAV 增量
@@ -0,0 +1,48 @@
---
title: "P5 PU8 U9–U12 独立 flag 脚手架"
status: done
created: 2026-09-16
updated: 2026-09-16
owner: Cursor
branch: feature/pu8-u9-u12-flags
worktree: /tmp/wt-pu8
mutex: intent-plan
---
# P5 PU8 U9–U12 独立 flag 脚手架
## 目标
为多意图扩面 U9–U12 落地独立 env flag(默认 OFF)与 stub/dry-run 端口,不升 `MULTI_INTENT_PLAN_TIER`。
## 范围
- `MULTI_INTENT_U9_SEGMENT` / `U10_MUTATE` / `U11_DOCGOV` / `U12_RUN_CONTROL`
- U9 segment proposal port + fail-closed stub
- U10–U12 dry-run adapters + `BuildOwnerMux` 门控
- 单测证明默认 off 与 enable 路径不 panic
## 非目标
- 真实 LLM 分段 / 升 tier / 合入 `dev`
- 真实 docgov/workflow 副作用写路径
## 步骤
1. [x] 独立 flags + `.env.example`
2. [x] segment proposal + expansion adapters + mux 门控
3. [x] Assemble `BuildOwnerMux` 接线
4. [x] 单测 + 测试报告
5. [x] push(不合 `dev`)
## 验收标准
- [x] 四 flag 默认 off;开 flag 不升 PlanTier
- [x] flag off ≡ legacy(无 LLM proposal、无新 adapters)
- [x] flag on:U9 fail-closed;U10–U12 dry-run/guarded
- [x] 报告归档
## 相关链接
- Contracts: [u9](../long-term/2026-09-16-pu8-u9-segment-proposal-contract.md) … [u12](../long-term/2026-09-16-pu8-u12-workflow-run-control-contract.md)
- Test report: [../../test-reports/2026-09-16-pu8-u9-u12-flags-test-report.md](../../test-reports/2026-09-16-pu8-u9-u12-flags-test-report.md)
+1 -1
View File
@@ -49,7 +49,7 @@
|------|----------|------|----------|------|---------------------|-------|
| 意图识别 L1 | 18 类 Intent、三分支消解、写/只读分流、双标签 `DOC_BUSY`、intent 纯依赖边界 | done | non_blocker | [intent-recognition](../system-design/intent-recognition/);[审计](../audit/2026-09-13-conversation-intent-runtime-state.md);[报告](../test-reports/2026-09-13-conversation-intent-runtime-state-test-report.md);[双标签](../test-reports/assets/2026-09-15-conversation-intent-dual-tab/live.json);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U3](../test-reports/2026-09-15-multi-intent-u3-intentflow-pg-test-report.md) | **边界 before**:含 U9–U12 叙事混入 → **after**:U9–U12 迁至「多意图扩面」行。关闭:纯依赖边界回归即重开 | `intent` |
| 多意图持久计划(U1–U8 基线) | app/intentflow 生命周期、HITL、默认 `legacy`、U1–U8 代码与安全基线 | done | non_blocker(默认 legacy) | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U8](../test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md);[Wave2 真 PI](../test-reports/2026-09-16-wave2-real-pi-evidence-test-report.md) | U8 已签。**Playwright 双标签**:覆盖 no-go 后实施中(见总控);升 `confirm/full` 另开 | `intent-plan` |
| 多意图扩面(U9–U12) | U9 LLM 分段实验;U10 mutate;U11 docgov;U12 workflow/run-control | planned | deferred_enhancement | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[go/no-go GO](../ops/research/2026-09-16-wave3-pu6-pu8-go-no-go.md);[总控](../ops/short-term/2026-09-16-full-backlog-override.md) | **2026-09-16 覆盖授权 GO**:分项独立 flag;默认 legacy tier | `intent-plan` |
| 多意图扩面(U9–U12) | U9 LLM 分段实验;U10 mutate;U11 docgov;U12 workflow/run-control | partial | deferred_enhancement | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[go/no-go GO](../ops/research/2026-09-16-wave3-pu6-pu8-go-no-go.md);[总控](../ops/short-term/2026-09-16-full-backlog-override.md);[flags 脚手架](../test-reports/2026-09-16-pu8-u9-u12-flags-test-report.md) | **脚手架已落地**:四独立 flag 默认 off;U9 stub fail-closed;U10–U12 dry-run。未升 PlanTier;真实 PI/live adapter 后续 | `intent-plan` |
| 对话 / ctxmgr baseline | 多轮上下文、刷新/重登/重启恢复、授权同集正文与计数、U10 端口化停止扩面 | done | non_blocker | [multi-turn](../system-design/multi-turn-dialogue/);[刷新审计](../audit/2026-09-13-chat-history-refresh-disappears.md);[U10](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[门禁 B3](../test-reports/2026-09-16-chat-refresh-gate-test-report.md)(项目 6359) | **before**:语义摘要误标 D5 混入 → **after**:摘要迁「语义摘要 D3」;D7 数据治理独立。U10 停止扩面 | `chat` |
| 语义摘要(D3) | 授权后可见集合上的语义摘要;shadow → 可选替换 deterministic | planned | deferred_enhancement | [chat-agent-p6-backlog](../backlog/chat-agent-p6-backlog.md);[go/no-go GO](../ops/research/2026-09-16-wave3-pu6-pu8-go-no-go.md);[pu6](../ops/long-term/2026-09-16-pu6-semantic-summary-contract.md) | **覆盖授权 GO**:`SEMANTIC_SUMMARY_SHADOW` 默认 off | `chat` |
| 对话数据治理(D7) | 留存/删除口径、库·备份·日志控制、敏感字段加密边界 | deferred | deferred_enhancement(违规则升 blocker) | [计划](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) Scope Boundaries | 先数据分类与现状盘点;确认当前基线违规 → 立即写 gap-matrix | `chat` |
@@ -1,22 +1,70 @@
# PU8 U9–U12 独立 flag 测试报告
# PU8 U9–U12 独立 flag 脚手架 测试报告
## 一、 测试背景 (Background)
覆盖 no-go 全量 backlog 实施。
P5 覆盖授权后需为 U9–U12 提供分项独立 flag 与最小端口脚手架。默认必须 OFF,且不得升 `MULTI_INTENT_PLAN_TIER`;flag off 行为等于当前 legacy。
## 二、 测试目标 (Test Objectives)
见计划对应章节。
- 四 flag 默认 off;env 开启互不耦合 PlanTier
- U9:默认 disabled;开启后 malformed/timeout/越界 fail closed;正常路径不 panic
- U10–U12:默认不注册 adapters;开启后 dry-run/revision 门禁可用且不 panic
- 既有 intentflow 回归仍 PASS
## 三、 测试方案与环境 (Test Plan & Environment)
Go unit / flag default off。
| 项 | 值 |
|----|----|
| OS | linux |
| 分支 | `feature/pu8-u9-u12-flags`(自 `origin/dev@776b2b5`) |
| Go | `go test` 单元层 |
| 后端 | stub dry-run(无真实 LLM / 无领域写副作用) |
| 证据 | `.doc/test-reports/assets/2026-09-16-pu8-u9-u12-flags/` |
## 四、 预期结果 (Expected Results)
默认 off;开启路径 fail-closed 或 shadow。
| 场景 | 预期 |
|------|------|
| 空 env | 四 flag false;PlanTier=legacy |
| U9 off | `SEGMENT_PROPOSAL_DISABLED` |
| U9 on + 坏 schema / 超时 / 越界 | fail closed |
| U10–U12 off | `BuildOwnerMux` 不挂 Mutate/DocGov/RunControl |
| U10–U12 on | dry-run Execute 成功;缺 revision → `PLAN_ACTION_VERSION_CONFLICT` |
| 开 flag | PlanTier 仍为 legacy |
## 五、 实际测试结果与判定 (Actual Results & Evaluation)
- Verdict: PASS(单元)
### 5.1 Expansion flags / segment / dry-run
- **测试输入**:`go test ./internal/app/intentflow -run 'TestExpansion|TestActiveSegment|TestStubSegment|TestBuildOwner|TestDryRun|TestPlanTierIndependentOfExpansion' -count=1 -v`
- **实际输出**:见 [expansion-flags.txt](./assets/2026-09-16-pu8-u9-u12-flags/expansion-flags.txt)。8 用例全部 PASS。
- **评价判定**:PASS
- **性能与耗时**:约 9ms
### 5.2 intentflow 全包回归
- **测试输入**:`go test ./internal/app/intentflow -count=1`
- **实际输出**:`ok`(见 [intentflow-summary.txt](./assets/2026-09-16-pu8-u9-u12-flags/intentflow-summary.txt))
- **评价判定**:PASS
- **性能与耗时**:约 13ms
### 5.3 app 包(含 BuildOwnerMux 接线)
- **测试输入**:`go test -short ./internal/app -count=1`
- **实际输出**:`ok`(见 [app-short.txt](./assets/2026-09-16-pu8-u9-u12-flags/app-short.txt))
- **评价判定**:PASS
- **性能与耗时**:约 16ms
## 六、 自动化测试套件汇总 (Test Suite Execution)
见各 worktree `go test` 输出。
| 命令 | 结果 |
|------|------|
| `go test ./internal/app/intentflow -count=1` | PASS |
| `go test -short ./internal/app -count=1` | PASS |
| `go vet ./internal/app/intentflow ./internal/app` | PASS(无输出) |
本轮为 flag/端口脚手架验收,使用 stub dry-run;未升 tier,未 rebuild `:8080`,未跑真实 PI。
## 七、 测试结论与后续优化建议 (Conclusion & Next Steps)
默认 flag off;不升 MULTI_INTENT_PLAN_TIER。
脚手架达到分支交付标准(push `feature/pu8-u9-u12-flags`,**不合 `dev`**)。后续:U9 真实 PI eval;U10–U12 分项 live adapter + 授权负例;仍禁止默认升 `MULTI_INTENT_PLAN_TIER=full`。
@@ -0,0 +1 @@
ok chat-agent-system/internal/app 0.016s
@@ -0,0 +1,18 @@
=== RUN TestExpansionFlagsDefaultOff
--- PASS: TestExpansionFlagsDefaultOff (0.00s)
=== RUN TestExpansionFlagsEnvOn
--- PASS: TestExpansionFlagsEnvOn (0.00s)
=== RUN TestActiveSegmentProposerDisabledByDefault
--- PASS: TestActiveSegmentProposerDisabledByDefault (0.00s)
=== RUN TestStubSegmentProposerFailClosed
--- PASS: TestStubSegmentProposerFailClosed (0.01s)
=== RUN TestBuildOwnerMuxFlagOffNoExpansion
--- PASS: TestBuildOwnerMuxFlagOffNoExpansion (0.00s)
=== RUN TestBuildOwnerMuxEnablePathsNoPanic
--- PASS: TestBuildOwnerMuxEnablePathsNoPanic (0.00s)
=== RUN TestDryRunAdapterRejectsForeignKeys
--- PASS: TestDryRunAdapterRejectsForeignKeys (0.00s)
=== RUN TestPlanTierIndependentOfExpansionFlags
--- PASS: TestPlanTierIndependentOfExpansionFlags (0.00s)
PASS
ok chat-agent-system/internal/app/intentflow 0.009s
@@ -0,0 +1 @@
ok chat-agent-system/internal/app/intentflow 0.013s