merge: feature/feature-matrix-production-readiness-plan

Wave 0 FEATURE-MATRIX calibration and IAM readonly verification docs.
This commit is contained in:
weichen
2026-09-16 08:32:43 +00:00
16 changed files with 892 additions and 44 deletions
@@ -0,0 +1,110 @@
---
title: "FEATURE-MATRIX production-ready 连续性审计"
status: done
created: 2026-09-16
updated: 2026-09-16
---
# FEATURE-MATRIX production-ready 连续性审计
## 结论
排除“纯软件项目自举”后,当前证据没有显示新的发布 blocker。`CURRENT.md`、`gap-matrix.md` 与 B1–B4 报告一致记录 `production_ready=yes`,dev/test/main 均为 schema 47。
`FEATURE-MATRIX.md` 仍需整改,但问题主要是状态语义混杂和证据漂移:同一个 `partial` 同时表示补证、首发后增强、实验、刻意关闭和真正的能力缺口。矩阵不能仅凭这些 `partial` 把 production-ready 回退,也不能据此宣称所有能力完整。
本轮只读核对文档和源码,没有运行测试、改业务代码、切换 feature flag 或操作共享环境。运行态事实仍以现有测试报告为准;后续状态提升必须重新验证。
## 审计边界
- 包含:除“纯软件项目自举”外的 `partial` 行、与这些行直接相关的 done/deferred 边界、发布门禁和证据链。
- 不包含:纯软件项目自举的实现方案、FAV 的实现审计、业务代码整改、部署或环境晋升。
- 权威关系:`FEATURE-MATRIX.md` 描述能力成熟度;`gap-matrix.md` 描述发布 blocker;`CURRENT.md` 描述当前协作与环境快照。
## 已确认事实
1. 发布门禁 B1–B4 已签,三环境 schema 为 47;U9–U12、FAV、完整 PI change-report 叙事和软件自举明确不挡当前首发。
2. 对话刷新、重登、重启和跨用户拒绝已有真实 PI/运行态证据。
3. 可靠事件 notify、workflow advance、projection 已 live,生产闭包 hook 已退出;FAV 仍保持 off。
4. 多意图 U1–U8 已合入默认 `legacy` 的安全基线,但 U8 真实 PI generate 在其报告中是 SKIP,不能写成真实生成闭环已签。
5. 工作流治理的设置页、DutyMode、动作级鉴权和三工作流真实 PI E2E 已签;full/none 文档长链的页面证据仍未完整覆盖。
6. 文档版本账本、人工修订、比较、通知和运行时 UI 已通过;change report 仍是明确标识的 deterministic fallback,不是完整 PI 叙事。
## 逐行核对
| 模块 | 当前判定 | 剩余工作 | 发布关系 |
|---|---|---|---|
| 意图识别 L1 | 当前行范围已具备改为 `done` 的条件 | 把 U9–U12 移出 L1 行;L1 只保留 18 类、三分支、读写分流和纯依赖边界 | 文档校准,不是 blocker |
| 多意图持久计划 | `partial` 合理 | 先补 U8 真实 PI + PG + browser + restart + 撤权证据;U9 独立实验;U10–U12 逐 action 扩面 | 默认 `legacy`,不挡首发 |
| 对话 / ctxmgr baseline | 当前冻结范围可改为 `done` | 语义摘要是 backlog D3,不是 D5;拆成独立 deferred/partial 行 | 文档校准,不是 blocker |
| 对话安全治理 D7 | `deferred` 独立行 | 数据分类,数据库/备份/日志控制盘点,留存删除口径和加密边界;若确认当前基线违规则升级 blocker | 待合规口径,不得无限期隐藏在普通 backlog |
| 工作流治理 | `partial` 合理 | full 文档真实 PI 人工审批长链;none 文档真实 PI 生成、免审批、账本持久化和阶段不阻塞长链 | 补证优先,不预设改代码 |
| IAM / 鉴权 | 现有缺口文字过时,模块仍应暂保 `partial` | 历史读取统一 owner/阶段授权已闭环;改为全路由 inventory、PG fail-closed、管理员例外、缓存失效和 410 退役决策 | 若发现现行旁路则升级 blocker |
| 文档版本与修改认知 baseline | 当前冻结范围可改为 `done` | 账本、人工修订、真实 diff+lineage 和 UI 已签;完整 PI narrative 拆成独立 deferred/partial 行 | 文档校准,不是 blocker |
| 前端工作台 | 当前行范围可改为 `done` | 其他 409 消费方复用信封解析应另列 hardening,不能让当前能力永久 `partial` | 文档校准,不是 blocker |
| CI / E2E | `partial` 合理 | 夜间 `RUN_PI_E2E=1`、失败分类与证据归档;修复全仓 race 的 TempDir 异步收口 flake | 阻止下一次晋升,不自动否定已发布版本 |
| Artifact promotion | `partial/deferred` 独立行 | 现状只证明同 commit 与各环境 digest 可追溯;要声明 same-image promotion,需一次构建、按 digest 晋升和可执行 receipt | 发布加固,不反向否定已签版本 |
| 模块解耦与可靠事件 | 当前核心范围可改为 `done` | 将 FAV 拆成独立 `deferred` 行;选择性后续解耦按收益触发 | FAV 保持 off,不挡首发 |
## 文档漂移
1. 多意图行仍写“共享环境 schema 45 待晋升”,与三环境 schema 47 冲突。
2. 对话行将语义摘要标成 D5;`chat-agent-p6-backlog.md` 中语义摘要实际为 D3,D5 是共享 KB 环境隔离评估。
3. IAM 行仍把已经闭环的历史读取 owner/阶段授权写成待办。
4. 前端行的“缺口/后续”没有未完成项,但状态仍是 `partial`。
5. 模块解耦行把已完成的事件核心和故意关闭的 FAV 混在同一状态中。
6. `2026-09-15-multi-intent-hitl-plan.md`、Phase 2 解耦方案、HTTP 信封方案和相关历史研究的头部状态或叙事已被后续报告部分或全部取代。
历史文档不得删除。应在原文增加 implemented/superseded 指针,或更新仍作为活方案的状态与证据链接。
## 风险发现
### IAM fail-open 潜在路径
`internal/auth/store_factory.go` 在 pool 为空或 IAM 表未就绪时回退 `MemoryStore`,没有按环境显式拒绝。当前 main schema 47 使该分支未被证实正在触发,因此本审计不直接翻转 production-ready;后续必须先只读核对部署实际选择,再把 fallback 改成仅 dev/test 加显式 opt-in 可用,空值、未知环境和 main/prod 一律 fail closed,并覆盖既有 session 的授权依赖中断负例。
### 状态提升越级
U8 的代码合入、默认 legacy 安全和真实 PI 放量是三件不同的事。矩阵若只写“U1–U8 完成”,会掩盖真实 PI stop-gate,并可能误导后续把 tier 升到 `confirm/full`。
### `none` 语义误写
`none` 表示不需要人工三权审批,不是“none 文档审批长链”。验收应证明真实 PI 生成、版本账本、审批动作不适用和阶段不阻塞。
### 证据失效
测试报告只证明其 commit、schema、镜像、runner/model/protocol 和环境。代码、迁移、compose、flag、runner 协议变化或环境晋升后,历史 PASS 不能单独证明新部署。
## 推荐状态模型
能力状态与发布状态必须正交:
- `done`:本行声明的能力边界已完成并有相应层级证据;不表示该领域永无后续。
- `partial`:已交付可用子集,行内列出尚未满足的关闭条件。
- `planned`:方案已存在但尚未实施。
- `deferred`:明确不进入当前路线,且不是发布 blocker。
- `blocked`:该行目标无法继续,必须给出 blocker 和恢复条件。
- `production_ready`:只由 `gap-matrix.md` 的发布门禁决定,不由所有能力行必须 `done` 推导。
## 重验触发器
发生以下任一变化时,受影响行必须重新验证,不能沿用旧 PASS:
- 授权谓词、owner port、会话或阶段作用域变化;
- schema、迁移、compose、镜像或环境晋升;
- feature flag/tier 从 off、legacy 或 shadow 升级;
- PI Runner URL、模型、typed-result 协议或 prompt/schema 变化;
- event consumer writer、lease、receipt、replay 或回滚路径变化;
- 浏览器用户流、SSE 恢复或持久化边界变化。
## 相关证据
- 能力矩阵:`status/FEATURE-MATRIX.md`
- 发布缺口:`remediation/gap-matrix.md`
- 当前环境:`ops/CURRENT.md`
- 发布门禁任务:`archive/ops/short-term/2026-09-16-production-ready-gates.md`
- 多意图设计与 U8:`system-design/2026-09-15-multi-intent-hitl-plan.md`、`test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md`
- 对话门禁:`test-reports/2026-09-16-chat-refresh-gate-test-report.md`
- 工作流 full/none 证据边界:`test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md`
- 文档版本:`test-reports/2026-09-14-document-revision-runtime-ui-test-report.md`
- 事件与解耦:`test-reports/2026-09-15-phase2-closeout-test-report.md`、`ops/research/2026-09-15-track-e-retrospective.md`
+8
View File
@@ -13,6 +13,14 @@
## 核心文档(按阅读顺序推荐)
### FEATURE-MATRIX production-ready 连续性审计(2026-09-16)
**文件**: [2026-09-16-feature-matrix-production-readiness-audit.md](./2026-09-16-feature-matrix-production-readiness-audit.md)
**结论**: 排除纯软件项目自举后没有新增发布 blocker;矩阵需要拆分能力成熟度、发布关系、补证、增强和 deferred 状态,并修复 schema、D3/D5、IAM、前端与 FAV 叙事漂移。
**整改**: [FEATURE-MATRIX Production-Ready Continuity - Plan](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md)
### 多意图与 HITL 方案复核(2026-09-15)
**文件**: [2026-09-15-multi-intent-hitl-plan-review.md](./2026-09-15-multi-intent-hitl-plan-review.md)
+9 -6
View File
@@ -5,14 +5,16 @@
## 焦点
1. **首发后 backlog**:多意图 U9–U12、软件项目自举、FAV、完整 PI change-report 叙事
2. **MULTI-INTENT HITL**:核心 U1–U8 已合入;U9–U12 不阻塞首版
3. **运维**:夜间 CI `RUN_PI_E2E=1`;`-race` TempDir flake 基建;`promote-to-test` 避免 origin rebase
1. **Wave 0**:FEATURE-MATRIX 校准合入 `dev`(IAM 只读未发现旁路)
2. **Wave 1 / backlog**:IAM fail-closed + race flake;多意图 U9–U12、FAV、PI 叙事、软件自举
3. **运维**:夜间 CI `RUN_PI_E2E=1`;`promote-to-test` 避免 origin rebase;promotion receipt(Wave 2B)
## 并行认领
| owner | task | branch | worktree | mutex | status |
|-------|------|--------|----------|-------|--------|
| Cursor | 2026-09-16-feature-matrix-wave0-calibration | feature/feature-matrix-production-readiness-plan | .worktrees/feature-matrix-production-readiness-plan | architecture-docs | done |
| Codex | 2026-09-16-feature-matrix-production-readiness-plan | feature/feature-matrix-production-readiness-plan | .worktrees/feature-matrix-production-readiness-plan | architecture-docs | done |
| Cursor-Auto | 2026-09-16-matrix-deep-test-promote-test | feature/matrix-deep-test-promote-test | - | infra | done |
| Cursor-Auto | 2026-09-16-production-ready-gates | docs/production-ready-flip | - | ci | done |
| Cursor-Auto | 2026-09-16-demo-seed-pollution | fix/demo-data-pollution-web | - | web | done |
@@ -95,7 +97,7 @@
| holder | phase | since | scope | queue |
|--------|-------|-------|-------|-------|
| - | idle | - | - | - |
| Cursor | merging | 2026-09-16 | Wave 0 FEATURE-MATRIX docs merge | - |
**phase**: `idle` | `merging` | `smoke` | `e2e`
@@ -114,8 +116,9 @@
| 类型 | 路径 |
|------|------|
| 文档总地图 | [../README.md](../README.md) |
| 模块完成度 | [FEATURE-MATRIX](../status/FEATURE-MATRIX.md) |
| 发布缺口 | [gap-matrix](../remediation/gap-matrix.md) |
| 模块完成度 | [FEATURE-MATRIX](../status/FEATURE-MATRIX.md)(Wave 0 已校准契约与冻结边界) |
| 发布缺口 | [gap-matrix](../remediation/gap-matrix.md)(`production_ready=yes`;Wave 0 IAM 只读未发现旁路) |
| 连续性审计/计划 | [audit](../audit/2026-09-16-feature-matrix-production-readiness-audit.md) · [remediation](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) · [Wave 0 任务](./short-term/2026-09-16-feature-matrix-wave0-calibration.md) |
| 测试报告 | [test-reports/](../test-reports/) |
| Agent 手册 | [AGENTS.md](../../AGENTS.md) |
| 意图双标签 busy 交接 | [./handoffs/2026-09-15-conversation-intent-dual-tab.md](./handoffs/2026-09-15-conversation-intent-dual-tab.md) |
@@ -0,0 +1,70 @@
---
title: "Wave 0 FEATURE-MATRIX 校准完成 → 待合 dev / Wave 1"
created: 2026-09-16
from: Cursor
to: next-agent
status: open
---
# 交接:FEATURE-MATRIX Wave 0 完成后
## 目标(下一位 Agent 应完成什么)
1. **经维护者确认后**占集成槽位,将 `feature/feature-matrix-production-readiness-plan` `--no-ff` 合入 `dev`(仅文档;冒烟可用轻量 link/diff check,无需业务 rebuild 除非策略要求)。
2. 开启 **Wave 1**:PU3 IAM fail-closed + PU5A TempDir race flake(独立 `fix/*` / `feature/*`,分 mutex)。
3. 勿把 Wave 0 的 `done` 行当作真实 PI 补证已完成;U8 / full-none 仍归 Wave 2。
## 已完成
- PU1:FEATURE-MATRIX 状态契约、行模板、status README
- PU2:按冻结边界收口 L1 / Chat baseline / DocRev baseline / 前端 / 可靠事件;拆出 D3、D7、PI 叙事、U9–U12、FAV、artifact promotion
- 修正漂移:schema 47、D3≠D5、IAM 历史缺口文案、事件与 FAV 拆行
- 历史指针:multi-intent 设计、Phase2 remediation、HTTP envelope、Track E 复盘
- IAM 只读核验:dev/test/main schema 47、IAM 表齐全、`ALLOW_IN_MEMORY=false`;**未**证实 MemoryStore 旁路 → **保持** `production_ready=yes`,未新增 gap-matrix blocker
- 文档提交于本 feature 分支;**未** merge `dev`、**未** push
## 未完成
- 合入 `dev`(待审)
- Wave 1+(IAM 代码 fail-closed、race、真实 PI 补证、nightly/receipt)
## 认领 / 槽位状态
| 项 | 值 |
|----|-----|
| mutex 已释放 | yes(Wave 0 认领标 done) |
| 集成槽位 holder | idle |
| branch | `feature/feature-matrix-production-readiness-plan` |
| worktree | `.worktrees/feature-matrix-production-readiness-plan` |
> 合 `dev` 前须重新登记认领并占集成槽位。
## 关键文件
| 路径 | 说明 |
|------|------|
| `.doc/status/FEATURE-MATRIX.md` | 校准后能力矩阵 |
| `.doc/ops/short-term/2026-09-16-feature-matrix-wave0-calibration.md` | Wave 0 任务与 IAM 证据 |
| `.doc/remediation/2026-09-16-feature-matrix-production-readiness-plan.md` | 五波总计划 |
| `.doc/audit/2026-09-16-feature-matrix-production-readiness-audit.md` | 审计 |
| `.doc/remediation/gap-matrix.md` | 仅增加 Wave 0 核验注记;`production_ready=yes` |
## 如何验证
```bash
# 在 worktree
git diff --check
# 人工对账 FEATURE-MATRIX / CURRENT / gap-matrix 叙事一致
# IAM 只读证据见 short-term「证据 / 备注」
```
## 风险 / Blocker
- `store_factory.go` 仍可能在缺表时 silent MemoryStore → Wave 1 必须 fail-closed;当前部署未触发。
- 合入前确认主仓 CURRENT 与 worktree 无冲突(主仓可能另有 matrix-deep-test 认领行)。
## 相关链接
- CURRENT: [CURRENT.md](../CURRENT.md)
- Task: [../short-term/2026-09-16-feature-matrix-wave0-calibration.md](../short-term/2026-09-16-feature-matrix-wave0-calibration.md)
- Remediation: [../../remediation/2026-09-16-feature-matrix-production-readiness-plan.md](../../remediation/2026-09-16-feature-matrix-production-readiness-plan.md)
@@ -1,12 +1,15 @@
---
title: "Track E 持久事件交付复盘"
created: 2026-09-15
updated: 2026-09-16
status: done
confidence: high
---
# 调研:Track E 持久事件交付复盘
> **Superseded 指针(2026-09-16)**:共享 notify/advance/projection 已 live;生产闭包 hook 已退出;`DOC-RELIABILITY-PILOT` 在 gap-matrix 为 PASS。可靠事件核心见 [FEATURE-MATRIX](../../status/FEATURE-MATRIX.md) `done`;FAV 仍 `deferred`。下文「共享 off / OPEN」为复盘当时快照,勿作 live status。
## 结论
E0A–E1C 已在隔离库证明:领域变化、envelope、delivery 同 UoW;PG dispatcher 原子 lease/fencing;notify / workflow_advance / projection 各自 exactly-one visible outcome。共享集群消费者保持 **off**,HTTP 闭包仍是唯一真实写者。E2 已部署兼容守卫:消费者 `live` 时闭包停写,`off`/`shadow` 时闭包继续写。删除 `OnOutbox` / `AddOnApprovedHook` 必须等 live 发布窗口;当前删除会让 notify/advance 停写。`DOC-RELIABILITY-PILOT` 保持 OPEN。FAV 保持 disabled。
@@ -21,12 +24,13 @@ E0A–E1C 已在隔离库证明:领域变化、envelope、delivery 同 UoW;P
| E1B | [E1B 报告](../../test-reports/2026-09-15-event-e1b-workflow-advance-test-report.md) | 隔离库 unique stage-ready PASS;共享 off |
| E1C | [E1C 报告](../../test-reports/2026-09-15-event-e1c-projection-test-report.md) | no-replace PASS;共享 off |
| E2 | [E2 报告](../../test-reports/2026-09-15-event-e2-hook-guard-test-report.md) | live 停写;off/shadow 仍写;API 保留 |
| Shared live(后续) | [notify](../../test-reports/2026-09-15-event-notify-shared-live-test-report.md) · [advance](../../test-reports/2026-09-15-event-workflow-advance-shared-live-test-report.md) · [projection](../../test-reports/2026-09-15-event-projection-shared-live-test-report.md) | 共享 live PASS(后于本复盘) |
## 开放问题
## 开放问题(复盘当时;2026-09-16 状态)
- 共享环境尚未做 notify/advance/projection 的 live 切换与授权页刷新纵切,因此 Track E DoD 中「生产注册无 OnOutbox=」与「授权 UI 三类重启」未关闭。
- 历史 inventory 的 repair/quarantine 真实批量审批未在共享库演练。
- FAV 仍只预留 disabled 契约。
- ~~共享环境尚未做 live~~ → **已关闭**(shared live 报告)。
- 历史 inventory 的 repair/quarantine 真实批量审批未在共享库演练(仍开放,非发布 blocker)。
- FAV 仍只预留 disabled 契约(FEATURE-MATRIX `deferred`)。
## 建议动作
@@ -0,0 +1,54 @@
---
title: "FEATURE-MATRIX production-ready 连续性审计与完善计划"
status: done
created: 2026-09-16
updated: 2026-09-16
owner: Codex
branch: feature/feature-matrix-production-readiness-plan
worktree: ".worktrees/feature-matrix-production-readiness-plan"
mutex: architecture-docs
---
# FEATURE-MATRIX production-ready 连续性审计与完善计划
## 目标
核对 `FEATURE-MATRIX.md` 中除“纯软件项目自举”外的未完成项,形成不回退当前 `production_ready=yes` 基线的详细整改与验收计划。
## 范围
- 交叉核对 FEATURE-MATRIX、gap-matrix、CURRENT、相关设计、测试报告与当前源码。
- 区分发布 blocker、补证、首发后增强、刻意关闭能力和文档漂移。
- 输出 audit 与 remediation 文档,不修改业务代码或运行发布测试。
## 非目标
- 实施任何业务功能、启用 feature flag、部署或合并到 `dev`。
- 重新规划“纯软件项目自举”。
- 将 U9–U12、FAV、完整 PI change-report 叙事改列为当前发布 blocker。
## 步骤
1. [x] 完成启动协议与 SSOT 基线读取。
2. [x] 逐项核对非自举 `partial` 行及证据漂移。
3. [x] 写入 audit 与 remediation 方案。
4. [x] 完成文档复核并更新本任务状态。
## 验收标准
- [x] 明确回答当前是否仍有 production-ready blocker。
- [x] 每个未完成项都有范围、依赖、关闭标准、验证层级和回滚边界。
- [x] 方案明确保护 B1–B4、三环境 schema 47、默认 off/legacy/shadow 和真实 PI/UI 证据边界。
- [x] 文档遵循 `.doc/` taxonomy,且未修改业务代码。
## 相关链接
- Audit: `../../audit/2026-09-16-feature-matrix-production-readiness-audit.md`
- Remediation: `../../remediation/2026-09-16-feature-matrix-production-readiness-plan.md`
- Test report: 不适用(本任务仅审计与规划)
## 证据 / 备注
当前基线来自 `CURRENT.md`、`gap-matrix.md`、B1–B4 测试报告及三环境 schema 47 记录;历史报告仅作为定位线索,计划要求实施阶段重新验证。
本轮未运行测试,因为没有业务代码变更,且 `ce-plan` 阶段只做研究与规划。
@@ -0,0 +1,67 @@
---
title: "FEATURE-MATRIX Wave 0 校准与 IAM 只读核验"
status: done
created: 2026-09-16
updated: 2026-09-16
owner: Cursor
branch: feature/feature-matrix-production-readiness-plan
worktree: ".worktrees/feature-matrix-production-readiness-plan"
mutex: architecture-docs
---
# FEATURE-MATRIX Wave 0 校准与 IAM 只读核验
## 目标
校准 `FEATURE-MATRIX.md` 契约与行状态,只读核验三环境 IAM 部署事实,保持 `production_ready=yes` 不被无证据回退。
## 范围
- PU1:矩阵契约、行模板、status README
- PU2:按冻结边界收口/拆行;修正 schema/D3/IAM/FAV 漂移;历史指针
- IAM 只读核验(health/ready、IAM 表、PG store);仅真实旁路时改 gap-matrix
- 文档提交于本 feature 分支;不合 `dev`、不改业务代码
## 非目标
- Wave 1+(IAM fail-closed 代码、race、真实 PI 补证、夜间 CI)
- merge `dev` / push / 共享容器 rebuild
- 重新运行生产验收冒充补证
## 步骤
1. [x] CURRENT 登记认领 `architecture-docs` in_progress
2. [x] PU1 扩展契约与模板
3. [x] IAM 只读核验并落盘结论
4. [x] PU2 收口矩阵行与历史指针
5. [x] `git diff --check` + docs 提交 + handoff
## 验收标准
- [x] 矩阵可区分完成边界 / 发布关系 / 关闭条件 / 证据
- [x] L1、Chat baseline、DocRev baseline、前端、可靠事件按冻结范围 `done`;增强拆行
- [x] schema 45、D3/D5、IAM 过时缺口、事件+FAV 混行已纠正
- [x] IAM 只读结论落盘;无证实旁路则不改 `production_ready`
- [x] handoff 标明合 `dev` 与 Wave 1 入口待审
## 相关链接
- Audit: `../../audit/2026-09-16-feature-matrix-production-readiness-audit.md`
- Remediation: `../../remediation/2026-09-16-feature-matrix-production-readiness-plan.md`
- Plan short-term (done): `./2026-09-16-feature-matrix-production-readiness-plan.md`
- Handoff: `../handoffs/2026-09-16-feature-matrix-wave0-calibration.md`
- Test report: 不适用(本波仅文档 + 只读核验)
## 证据 / 备注
### IAM 只读核验(2026-09-16,只读;未 restart / 未改代码)
| 环境 | health/ready | schema_version | goose max | `user_credentials` | IAM 相关表 | `ALLOW_IN_MEMORY` | ENV | 判定 |
|------|--------------|----------------|-----------|--------------------|------------|-------------------|-----|------|
| dev `:8080` | ok / ok | 47 | 47 | 147 rows | users, auth_sessions, system_roles, user_role_bindings, iam_system_config 等齐全 | false | dev | PG store 可达;fallback 未触发 |
| test `:8081` | ok / ok | 47 | 47 | 4 rows | 同上 | false | test | 同上 |
| main `:8000` | ok / ok | 47 | 47 | 1 row | 同上 | false | prod | 同上;`auth_sessions=0` 仅表示无活跃会话,不表示 MemoryStore |
`IAMTablesReady` 口径(`user_credentials` EXISTS)三环境均为 true。近期 app 日志无 MemoryStore / in-memory auth 命中。
**结论**:未发现当前 main/prod 正在触发 MemoryStore 旁路;**不**将 `production_ready` 回退;**不**新增 gap-matrix blocker。代码层 `NewStores` 在表缺失时仍可能 silent fallback → 归 Wave 1 PU3 fail-closed 加固。
+19 -1
View File
@@ -1 +1,19 @@
| <模块名> | <能力描述> | planned | (设计/代码/test-report 链接) | (缺口) | `<mutex>` |
# FEATURE-MATRIX 行模板
复制到 [FEATURE-MATRIX.md](../../status/FEATURE-MATRIX.md) 的完成度表中。能力状态与 `production_ready`(gap-matrix)正交。
| 字段 | 填写说明 |
|------|----------|
| 模块 | 短名 |
| 声明范围 | 本行冻结边界;`done` 只覆盖此范围 |
| 状态 | `done` \| `partial` \| `planned` \| `deferred` \| `blocked` |
| 发布关系 | `non_blocker` / `补证` / `加固` / `deferred_enhancement` |
| 证据 | 设计/代码/test-report 链接;可追 commit/环境/schema |
| 剩余工作 / 关闭条件 | partial/planned 必填;stub/SKIP/fallback 不得冒充关闭 |
| mutex | 与 CURRENT 并行认领一致 |
```markdown
| <模块名> | <声明范围> | planned | non_blocker | (设计/代码/test-report 链接) | (关闭条件) | `<mutex>` |
```
拆行收口时另在「边界 lineage」区记录 before/after、义务去向与证据覆盖结论。
@@ -1,13 +1,15 @@
---
title: "HTTP 与 SSE 公开错误信封整改"
status: planned
status: implemented
created: 2026-09-15
updated: 2026-09-15
updated: 2026-09-16
owner: Cursor
---
# HTTP 与 SSE 公开错误信封整改
> **Implemented(2026-09-16)**:H1–H3 已有 [test-report](../test-reports/2026-09-15-http-error-envelope-h1-h3-test-report.md)。活状态见 [FEATURE-MATRIX](../status/FEATURE-MATRIX.md) / CURRENT;本文保留为方案原文。
## 背景
Phase 2 复核确认错误信封涉及全部 HTTP 路由、SSE transport 和前端解析,属于独立 wire-contract 改造,不应阻塞持久事件交付。审阅见 [模块解耦 Phase 2 方案审阅](../audit/2026-09-15-module-decoupling-phase2-plan-review.md)。
@@ -1,14 +1,16 @@
---
title: "模块解耦 Phase 2:持久事件交付与后续解耦路线"
status: planned
status: implemented
created: 2026-09-15
updated: 2026-09-15
updated: 2026-09-16
type: refactor
owner: TBD
---
# 模块解耦 Phase 2:持久事件交付与后续解耦路线
> **Implemented / superseded(2026-09-16)**:Track E(E0A–E2)与 shared live、D4–D7b、HTTP 信封 H1–H3、PI typed-result-v1 已有验收报告并合入;可靠事件核心在 [FEATURE-MATRIX](../status/FEATURE-MATRIX.md) 标 `done`,FAV 独立 `deferred`。活状态以 FEATURE-MATRIX / CURRENT / gap-matrix 为准;本文保留为历史方案,不删除。
## 决策摘要
Phase 2 的核心交付只包含持久事件链:修正事件生产、补齐 PostgreSQL 投递实现、用无副作用 shadow 对账替换闭包桥,并以授权用户刷新/重启后的正文恢复作为停走门。
@@ -0,0 +1,447 @@
---
title: "FEATURE-MATRIX Production-Ready Continuity - Plan"
type: refactor
date: 2026-09-16
deepened: 2026-09-16
status: in_progress
artifact_contract: ce-unified-plan/v1
product_contract_source: ce-plan-bootstrap
execution: code
wave0: done
---
# FEATURE-MATRIX Production-Ready Continuity - Plan
## Goal Capsule
- **Objective:** 让维护者能够从 `FEATURE-MATRIX.md` 准确判断当前发布基线、真实剩余工作和每项工作的关闭条件,同时保持已经签署的 production-ready 状态不被文档整理或后续增强误伤。
- **Means:** 将能力成熟度与发布门禁拆成两个正交维度,先校准证据和状态,再按“补证、基建加固、可选增强”分波实施(KTD1、KTD2)。
- **Authority:** `gap-matrix.md` 决定发布 blocker;`FEATURE-MATRIX.md` 决定能力成熟度;`CURRENT.md` 记录协作与环境快照。
- **Execution profile:** verification-first;文档校准不改业务行为;新能力默认 off、legacy 或 shadow;跨环境先以 receipt 绑定同一 commit 和 digest,PU5B 完成后只晋升同一已验证 image。
- **Stop conditions:** 任一波发现授权旁路、持久化丢失、双写者、跨用户泄漏、当前 B1–B4 回归或 main/prod fail-open 时,停止扩面并将该问题写入 `gap-matrix.md`。
---
## Product Contract
### Summary
当前系统按仓库 SSOT 已达到 `production_ready=yes`。本计划不重新定义首发范围,而是修正矩阵漂移,补上可判定的关闭条件,并把剩余工作排成不会改变当前默认路径的独立波次。
### Problem Frame
`FEATURE-MATRIX.md` 目前把五类状态都写成 `partial`:已完成但文档未收口、实现完成但真实证据未签、首发后增强、实验性能力和刻意关闭能力。结果是维护者无法从矩阵判断哪些事项会影响发布,也无法知道某行何时能转为 `done`。
矩阵还存在已确认的事实漂移:schema 45 与当前 schema 47 冲突,语义摘要编号误写为 D5,IAM 仍列出已经闭环的历史读取授权缺口,可靠事件核心被 FAV 的 off 状态拖成 `partial`。这些问题需要先在文档层纠正,再决定是否立业务实现任务。
### Requirements
#### Status and ownership
| ID | Requirement |
|---|---|
| R1 | `production_ready` 只由 `gap-matrix.md` 的发布门禁决定;能力行不是“全部 done 才能发布”的总开关。 |
| R2 | 每行必须声明既定能力边界、能力状态、发布关系、剩余工作、关闭条件、owner/mutex 和当前证据。 |
| R3 | `done` 表示本行声明能力已达到生产验收,不表示该领域没有后续;新增增强应拆行或进入 backlog。 |
| R4 | 补证、修复、增强、实验和 deferred 能力必须分开,不能共用一个模糊的“后续”。 |
#### Evidence and release safety
| ID | Requirement |
|---|---|
| R5 | 状态提升必须同时核对源码、迁移、部署 artifact、API/runtime 和适用测试层级;单独改文档不得提升能力状态。 |
| R6 | 证据必须记录或可追到 commit、环境、schema、镜像、runner/model/protocol、日期和测试类型。 |
| R7 | 代码、schema、compose、flag、runner 协议或环境晋升触发受影响行重验;历史报告保留但不得证明新 artifact。 |
| R8 | 新功能先使用 additive migration 和兼容读取,再以 off/legacy/shadow 上线;任何放量都要有独立回滚点。 |
| R9 | 回滚必须能读取、取消和收口已持久化的 plan/run/event;禁止回滚 schema 或让旧 app/worker 不认识新状态。 |
#### Authorization and agent behavior
| ID | Requirement |
|---|---|
| R10 | UI、API、聊天和产品 PI Agent Runner 必须进入同一 owner service,并共享即时授权、资源版本、幂等、审计和错误语义。 |
| R11 | 正文、计数、摘要、搜索、计划卡、RAG 和 Agent tools 必须从同一授权后可见集合派生。 |
| R12 | 产品 PI Runner 只生成建议、内容或解释;权限判断、状态迁移、版本提交和法定审批由服务端及已认证用户完成。 |
| R13 | 所有真实 PI 路径必须共享最小化出站、tenant/project 绑定、敏感字段脱敏、凭证最小权限、日志/产物留存和泄漏负例;夜间验收只使用隔离的合成数据。 |
### Actors
- A1. 文档维护者:更新矩阵、证据链接和历史 superseded 指针。
- A2. 发布负责人:决定 blocker、环境晋升、回滚和 production-ready 翻旗。
- A3. 模块 owner:实现或验证单个 action,不跨 mutex 批量扩面。
- A4. 最终用户:通过 UI、API 或聊天使用同一服务端能力。
- A5. 产品 PI Agent Runner:受控生成或解释,不承担 authority。
### Key Flows
- F1. 矩阵状态更新
- **Trigger:** 新实现、补证或环境晋升完成。
- **Actors:** A1、A2、A3。
- **Steps:** 核对行边界 → 匹配证据 → 评估发布关系 → 更新矩阵 → 仅在 blocker 变化时更新 gap-matrix。
- **Outcome:** 能力状态和发布状态不互相污染。
- F2. 增强能力上线
- **Trigger:** 一个 deferred/partial 子能力获批实施。
- **Actors:** A2、A3、A4、A5。
- **Steps:** additive migration → 默认关闭 → 隔离验证 → dev 灰度 → test 晋升 → main 晋升或独立回滚。
- **Outcome:** 当前路径持续可用,新能力只在证据完整后放量。
### Acceptance Examples
- AE1. **Covers R1–R4.** 前端工作台现有范围证据完整时,该行可改 `done`;未来其他 409 消费方优化进入独立 backlog,不把该行退回 `partial`。
- AE2. **Covers R5–R9.** multi-intent U8 adapter 已合入但真实 PI 为 SKIP 时,矩阵写“代码与默认 legacy 基线完成、真实生成闭环未签”,tier 不升到 `confirm/full`。
- AE3. **Covers R10–R12.** full 文档由真实 PI 生成后由独立用户完成审核/批准;none 文档生成后无审批动作且不阻塞阶段。
- AE4. **Covers R5–R8.** PI change-report 超时或返回非法 schema 时,用户仍看到明确标记的 deterministic fallback,候选版本和正文不被 PI 输出修改。
- AE5. **Covers R1、R6、R7.** 夜间真实 PI 因 runner 不可用失败时,结果记为 infrastructure failure 并阻止下一次晋升;已发布版本不会被自动改写为未就绪。
### Scope Boundaries
#### In scope
- 整改 `FEATURE-MATRIX.md` 的状态契约、行边界、证据和关闭条件。
- 同步仍作为活 SSOT 的 CURRENT、gap-matrix、remediation index 和历史文档指针。
- 安排 IAM、补证、CI、语义摘要、PI change-report、多意图扩面的后续工作。
- 为每个波次定义回归、部署、证据和回滚门。
#### Deferred to Follow-Up Work
- Final Artifact Vault:独立审计,保持 `FAV_DEGRADED_READ=false`,禁止整支合入 `feature/final-artifact-vault`。
- 多意图 U9 LLM 分段实验:仅在预注册真实 PI eval 阈值通过且安全错误为 0 后考虑放量。
- 多意图 U10–U12:每个 action 独立任务、flag、owner、授权负例和回滚点。
- D7 对话留存与敏感字段加密:独立安全治理项;先完成数据分类、当前数据库/备份/日志控制盘点和合规口径,再设计迁移、回滚与验收。若盘点确认当前基线违反已确认的安全或合规要求,必须立即写入 `gap-matrix.md`,不能继续作为普通 backlog。
#### Out of scope
- 纯软件项目自举。
- 将 Herdr、`context_pi`、Cursor、Codex 或其他工程协作 Agent 作为产品 PI Agent Runner 的验收证据。
- 在本次方案编制和 Wave 0 阶段修改业务代码、启用 dormant flag、合并 `dev` 或操作共享容器。
### Success Criteria
1. 维护者能在一行内判断“当前能力是否完成、是否影响发布、还差什么、用什么证据关闭”。
2. 已确认的 L1、前端工作台和可靠事件核心不再因无关 backlog 永久 `partial`。
3. IAM、multi-intent U8、full/none、CI、语义摘要和 PI 叙事都有独立的关闭条件,不再用 stub、SKIP 或 fallback 冒充完整验收。
4. 后续任一波失败都可回到当前默认路径,B1–B4 和 schema 47 基线不被破坏。
---
## Planning Contract
### Key Technical Decisions
- KTD1. **能力状态与发布状态正交。** `FEATURE-MATRIX.md` 记录能力成熟度,`gap-matrix.md` 记录发布 blocker;仅当前生产契约被证据推翻时回退 `production_ready`。Governs R1–R4。
- KTD2. **按冻结的能力边界关闭行。** 已完成范围转 `done`,新增增强拆成新行或 backlog,避免永久 `partial`。任何边界变更都要保留 before/after、逐项迁移去向和原边界已满足的证据,禁止靠缩小口径制造 `done`。Governs R2–R4。
- KTD3. **证据按变化触发重验。** 不设机械 TTL;按代码、schema、artifact、flag、runner/protocol 和环境晋升触发重验。Governs R5–R7。
- KTD4. **补证和修复分离。** full/none 与 multi-intent U8 先执行真实验收;只有验收失败并定位为产品缺陷后才开修复分支,修复后必须重验。Governs R5、R8。
- KTD5. **逐能力安全放量。** migration 只 expand,新能力默认 off/legacy/shadow,app/worker 保持向后读取和收口能力。Governs R8、R9。
- KTD6. **共享 command 与共享 authorized view。** 所有入口调用同一 owner port,读模型从同一授权集合派生。Governs R10、R11。
- KTD7. **PI 叙事不成为事实源。** diff、lineage、risk floor、版本和审批由服务端确定;PI 失败时保留显式 fallback。Governs R12。
- KTD8. **同一 artifact 晋升是独立发布加固。** 在不可变镜像流水线落地前,dev/test/main 至少记录同一候选 commit、各环境 image digest 和构建证明,不得声称已实现 same-image promotion;落地后 test/main 只引用候选 commit 一次构建出的 digest。Governs R5、R7–R9。
### High-Level Technical Design
#### Status decision
```mermaid
flowchart TB
A[Read declared capability boundary] --> B{Current evidence satisfies boundary?}
B -->|No| C{Is capability active in release path?}
C -->|Yes and contract regressed| D[Mark blocked and update gap-matrix]
C -->|No| E[Keep partial, planned, or deferred]
B -->|Yes| F{Remaining work belongs to same boundary?}
F -->|Yes| G[Keep partial with explicit exit gate]
F -->|No| H[Mark current row done]
H --> I[Create separate enhancement or deferred row]
```
#### Safe rollout and rollback
```mermaid
flowchart TB
A[Expand schema and compatible readers] --> B[Deploy flag off or legacy]
B --> C[Unit and isolated PG evidence]
C --> D[Dev shadow or targeted live]
D --> E{Stop gate passes?}
E -->|No| F[Disable new writes and drain]
F --> G[Keep read, cancel, and finalize compatibility]
E -->|Yes| H[Test promotion with receipt]
H --> I[Main promotion with same commit and proven digest]
I --> J[Update evidence and matrix]
```
### Current Residual Work Map
| Area | Baseline now | Required closure | Current classification / transition |
|---|---|---|---|
| Intent L1 | 18 类、三分支、读写分流、busy 已签 | 从本行移除 U9–U12,确认纯依赖门禁仍在 | `done` |
| Multi-intent baseline | U1–U8 code/default legacy | U8 real PI + PG + browser + restart + revoke | `partial` |
| Multi-intent expansion | U9–U12 未进入首发 | U9 eval;U10–U12 per-action | 当前 `deferred`;获批 short-term 开始后转 `partial` |
| Chat / ctxmgr baseline | 刷新恢复与授权同集已签 | 修正文档状态;新摘要另列 | `done` |
| Semantic summary (D3) | deterministic summary 已有 | 产品 go/no-go;授权输入、shadow、fallback | 当前 `deferred`;获批 short-term 开始后转 `partial` |
| Chat data governance (D7) | 当前生产控制待盘点 | 数据分类、留存删除、数据库/备份/日志控制与敏感字段加密边界 | `deferred`;确认违规时升级 blocker |
| Workflow governance | 正式工作流和动作鉴权已签 | full 人工审批;none 生成/免审批/不阻塞长链 | `partial` |
| IAM / authz | 已知历史读取缺口已闭环 | 全路由 inventory、PG fail-closed、410 决策 | `partial` |
| Document revision baseline | 账本、确定性 diff/lineage 与 UI 已签 | 修正文档状态;PI 叙事另列 | `done` |
| PI change-report narrative | deterministic report 已有 | 产品 go/no-go;只读 narrative、fallback 永久保留 | 当前 `deferred`;获批 short-term 开始后转 `partial` |
| Frontend workbench | 当前声明范围均有证据 | 修正文档状态;增强另列 | `done` |
| CI / E2E | PR CI、PG、backup、web 已有 | nightly real PI;TempDir race flake | `partial` |
| Artifact promotion | 同 commit 可追溯,环境内仍可能重建 | 一次构建、digest 晋升、promotion receipt | 当前 `planned`;PU5B 开始后转 `partial` |
| Reliable events | 核心 live 且旧 hook 退出 | 与 FAV 拆行 | `done` |
| FAV | 明确 off | 独立审计与 go/no-go | `deferred` |
### Phased Delivery
| Wave | Units | Release behavior | Exit gate |
|---|---|---|---|
| Wave 0: SSOT calibration | PU1–PU2 | 只改文档,不改代码或 flag;先只读核对已部署 IAM store 选择和缺表行为 | 三份 SSOT 无矛盾;历史指针可追溯;若发现当前发布契约回归,先更新 gap-matrix 再退出本波 |
| Wave 1: Safety guardrails | PU3、PU5A | IAM fail-closed 与 race 修复独立交付 | 当前 B1–B4 全绿;授权用户 happy path 不变;新增 fail-closed 负例通过 |
| Wave 2: Evidence closure | PU4 | 补真实 PI/browser/restart 证据;产品缺陷另开原子修复任务后重验 | 目标场景 PASS,或以明确 FAIL/blocker 退出;不得用“已分类”冒充关闭 |
| Wave 2B: Release hardening | PU5B | 夜间 PI、promotion receipt、不可变 artifact 分阶段落地 | gate 可执行、可审计、可人工豁免且不改变已发布版本状态 |
| Wave 3: Optional capability selection | PU6–PU8 | 只做逐能力 go/no-go 和独立任务设计;未获批不实施 | 有用户信号、收益、维护成本、owner 和预注册阈值;否则保持 deferred |
### System-Wide Impact
- **Authorization:** IAM inventory 覆盖 list/detail/search/export/count/SSE/RAG/Agent tools;任何 unavailable/error 路径 fail closed。
- **Data lifecycle:** 新状态采用 additive migration;回滚继续读取和收口已有 plan/run/event。
- **Agent parity:** UI、API、聊天和产品 PI Runner 共享 owner command 与 authorized view;Herdr 不进入产品验收。
- **PI data boundary:** 真实 PI 只接收 allowlist 后的最小输入,并绑定 tenant/project;服务端脱敏,凭证最小权限且可轮换,日志和测试产物有访问与保留边界。
- **Operations:** worktree 只做静态、单元和隔离 PG;合入、rebuild、共享容器和环境晋升占唯一集成槽。
- **Documentation:** 历史证据不删除;过时文档增加 superseded/implemented 指针。
### Risks and Mitigations
| Risk | Consequence | Mitigation |
|---|---|---|
| 文档修改直接把 partial 改 done | 状态提升没有新证据 | PU1 定义证据门;PU2 只对已满足冻结边界的行收口 |
| main 缺 IAM 表时回退内存 store | 权限和会话失去持久权威 | PU3 改为 dev/test 显式双门 opt-in;空值、未知环境和 main/prod 一律 fail closed |
| multi-intent U8 code-complete 被写成 real-PI-complete | 误升 tier 后出现双执行或不可恢复 | PU4 独立补真实 PI、撤权、刷新和重启证据 |
| full/none 语义混淆 | none 被错误要求审批或阻塞阶段 | PU4 分别验证 full 人工审批与 none 免审批负例 |
| PI narrative 覆盖确定性事实 | 报告失真或阻断版本流程 | PU7 只消费只读 diff+lineage,任何 schema 偏差全量降级 |
| 夜间 PI 偶发失败污染发布状态 | 无法区分供应商故障和产品回归 | PU5B 分类 infra/product failure,以 commit/digest receipt 阻止下一次晋升并保留审计豁免 |
| 多 action 共用开关 | 无法单独回滚 | PU8 只产出独立 short-term、flag、owner 和证据契约,不在本计划批量实现 |
| FAV 整支合入 | 带入旧实现或启用 degraded read | 保持 deferred;未来只摘取已审计的原子提交 |
---
## Implementation Units
### PU1. Define the matrix contract
- **Goal:** 为 `FEATURE-MATRIX.md` 建立能力状态、发布关系、关闭条件和证据字段的稳定契约。
- **Requirements:** R1–R7。
- **Dependencies:** 无。
- **Files:** `.doc/status/FEATURE-MATRIX.md`、`.doc/ops/templates/feature-matrix-row.md`、`.doc/status/README.md`。
- **Approach:**
1. 在矩阵说明中定义 `done|partial|planned|deferred|blocked` 的判定和 `production_ready` 的独立来源。
2. 将当前单一表改为可扫描的字段集合:声明范围、能力状态、发布关系、剩余工作、关闭条件、证据、owner/mutex。
3. 定义证据 provenance 与重验触发器;不要把环境瞬时健康等同于代码已部署。
- **Patterns to follow:** `gap-matrix.md` 的 blocker SSOT、`CURRENT.md` 的环境快照、`feature-matrix-row.md` 模板。
- **Test scenarios:** Test expectation: none — 文档契约变更,不改变运行行为。
- **Verification:** 模板和矩阵字段一致;每个状态都能由文档规则唯一解释;链接和 Markdown 校验通过。
### PU2. Reconcile current rows and historical pointers
- **Goal:** 修复已确认漂移,并将已完成基线与独立增强拆行。
- **Requirements:** R1–R7。
- **Dependencies:** PU1。
- **Files:** `.doc/status/FEATURE-MATRIX.md`、`.doc/ops/CURRENT.md`、`.doc/remediation/gap-matrix.md`、`.doc/remediation/INDEX.md`、`.doc/system-design/2026-09-15-multi-intent-hitl-plan.md`、`.doc/remediation/2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md`、`.doc/remediation/2026-09-15-http-error-envelope-remediation.md`、`.doc/ops/research/2026-09-15-track-e-retrospective.md`。
- **Approach:**
1. 把 schema 45 改为当前 schema 47,纠正 D3/D5,移除 IAM 已关闭缺口。
2. 将 L1、Chat/ctxmgr baseline、Document revision baseline、前端工作台、可靠事件核心按冻结范围评估为 `done`;把语义摘要、PI 叙事、多意图扩面和 FAV 分成独立行。
3. 给被后续报告取代的历史文档增加 implemented/superseded 指针,不删除历史证据。
4. 在任何状态收口前,只读核对已部署环境的 IAM store 选择、schema 47 IAM 表和缺表行为;确认 fallback 不可达才保持 `production_ready=yes`。若发现当前发布契约回归,立即更新 gap-matrix blocker,不等待后续波次。
5. 每个拆行保留 before/after 边界、原义务的新去向和原边界已满足的证据,禁止仅通过缩小描述把行改为 `done`。
- **Patterns to follow:** `.doc/archive/` 的历史保留纪律、现有测试报告回链。
- **Test scenarios:** Test expectation: none — 这是证据对账和 SSOT 修订。
- **Verification:** FEATURE-MATRIX、CURRENT、gap-matrix 对 schema、门禁和非 blocker 列表的叙事一致;不存在失效链接或相互矛盾状态。
### PU3. Close IAM inventory and production fail-closed gaps
- **Goal:** 用全路由证据替代旧抽样矩阵,并禁止 main/prod 在 IAM 表未就绪时回退内存 authority。
- **Requirements:** R5–R12。
- **Dependencies:** PU1;PU2 已完成部署事实核对。
- **Files:** `.doc/audit/authorization-matrix-v2.md`、`internal/server/server.go`、`internal/server/auth_helpers.go`、`internal/server/chat_history_auth.go`、`internal/auth/store_factory.go`、`internal/auth/store_factory_test.go`、`internal/server/security_p0_test.go`、`internal/server/*_authz*_test.go`。
- **Approach:**
1. 从注册路由生成或维护 resource/action/owner/authn/ReBAC/ABAC/duty/negative-test inventory。
2. 先验证 list/detail/search/export/count/SSE/RAG/Agent tools 是否共享授权集合;只修复确认的旁路。
3. 只有环境明确为 dev/test 且 `ALLOW_IN_MEMORY=true` 时才允许测试 fallback;环境空值、未知值、main/prod、pool 缺失、IAM 表缺失或授权依赖不可用时一律启动失败或请求 fail closed。
4. 先验证 schema 47 的 IAM 表在目标环境确实存在;缺迁移则以 additive migration 修复后再启用 fail-closed,禁止让保护措施把环境永久变成不可部署。
5. 已建立 session 的请求也在授权依赖不可用时 fail closed;依赖恢复后按既有健康检查/重连路径恢复,不沿用缓存的旧授权。
6. 将旧 API 410 视为兼容策略,依据遥测决定长期保留或退役,不再把“存在 410”本身写成能力缺口。
- **Execution note:** 先添加 characterization 和负例,再修改 store selection 或路由授权。
- **Test scenarios:**
- main 配置下 IAM 表缺失时,应用不得创建 MemoryStore 管理员并继续服务。
- 非成员、非 session owner、错误 stage、错误 duty 读取正文、计数、搜索、导出、SSE、RAG 和 Agent tool 时均拒绝且不泄漏资源存在性。
- 管理员例外只通过服务端 `IsSystemAdmin`,请求体/header 不能伪造。
- 权限在确认后撤销时,执行前重新授权并保持零副作用。
- 仅 dev/test 加显式 opt-in 时内存 fixture 可用;环境未设置、拼错或 opt-in 为 false 均 fail closed。
- IAM 依赖在 session 建立后中断时,正文、计数、搜索、SSE、RAG 和 Agent tools 均拒绝;恢复后重新取权,不沿用旧权限。
- **Verification:** 全路由 inventory 每项有 owner 和负例;PG 集成与安全套件证明 fail closed;若发现 active bypass,先更新 gap-matrix 再继续其他波次。
### PU4. Close real-PI evidence gaps without pre-authorizing fixes
- **Goal:** 补齐 multi-intent U8 与工作流 full/none 的真实 PI、浏览器、持久化和恢复证据。
- **Requirements:** R5–R13;Covers AE2、AE3。
- **Dependencies:** PU1–PU2;测试设计可与 PU3 inventory 并行,最终证据必须基于 PU3 完成后的同一候选 artifact,且共享环境验收串行。
- **Files:** `.doc/ops/checklists/` 下新增验收清单、`.doc/test-reports/` 下新增报告、`internal/server/workflow_governance_piagent_pg_test.go`、`internal/app/intentflow/` 相关测试、`web/` 对应 browser 测试与 assets。
- **Approach:**
1. multi-intent U8 验证真实 PI generate、PG plan/step/receipt、确认前零副作用、重复提交、撤权、双标签、刷新/重登/app+worker restart。
2. full 文档走真实生成、author submit、独立 reviewer、独立 approver 和阶段门禁。
3. none 文档走真实生成、版本账本、审批动作不适用和阶段不阻塞;禁止写成“none 审批通过”。
4. 失败先归类为环境、验收脚本或产品缺陷;产品缺陷创建独立 `fix/*` 任务,修复后的同一场景必须重验,不能以“已分类”关闭证据缺口。
5. 所有场景通过共享 PI 数据安全门:最小字段 allowlist、服务端脱敏、tenant/project 绑定、最小权限测试凭证和受限日志/产物;只使用隔离合成数据,并执行泄漏负例。
- **Test scenarios:**
- multi-intent U8 在无确认、确认、重复确认、活动计划冲突、权限撤销和 receipt 丢失下符合单一终态与幂等要求。
- UI、直接 API 和聊天指令最终产生相同领域状态、actor、版本和可见结果。
- full 文档跨三个真实用户完成职责分离;每次运行使用隔离 project/workspace 和命名空间,错误职责用户的每个动作均拒绝。
- none 文档没有 submit/review/approve,可刷新和重启恢复,且不阻塞 advance。
- runner/model 不可用时验收明确失败或 SKIP,不得记为产品 PASS。
- **Verification:** 真实 PI、PG、browser、restart、cross-user 证据分栏归档;通过后只关闭对应证据缺口,不自动启用更高 tier。
### PU5A. Eliminate the repository race flake
- **Goal:** 独立关闭全仓 race 的 TempDir 清理竞态,不让外部模型可用性阻塞正确性修复。
- **Requirements:** R5–R9。
- **Dependencies:** PU1。
- **Files:** `.github/workflows/ci.yml`、`internal/server/task_run_handlers_test.go` 或对应 `TestCreateTaskRun_PreActivationAcceptedNot409` fixture、`.doc/test-reports/`。
- **Approach:**
1. 定位并修复异步 worker 未收口导致的 TempDir 清理竞态;不能用跳过或忽略让全仓 race 假绿。
2. 保留可重复的最小回归,并执行全仓 race 多轮验证。
- **Test scenarios:**
- 全仓 race 多次运行不再出现 TempDir RemoveAll,并能证明 worker 已退出。
- **Verification:** 全仓 race 不再依赖已知 flake 豁免;PR CI 仍不依赖外部模型。
### PU5B. Add nightly PI and enforce auditable promotion receipts
- **Goal:** 增加夜间真实 PI 回归和可执行的下一次晋升门,同时逐步实现一次构建、按 digest 晋升。
- **Requirements:** R5–R9、R13;Covers AE5。
- **Dependencies:** PU1、PU4 的稳定场景;不阻塞 PU5A。
- **Files:** `.github/workflows/nightly-real-pi.yml`、`.github/workflows/ci.yml`、`scripts/promote-to-test.sh`、`scripts/release-to-main.sh`、`docker-compose*.yml`、`.doc/test-reports/`。
- **Approach:**
1. 夜间 job 使用最小权限且可轮换的 secrets、隔离合成 project/session、真实 PI 标识、受限产物留存、并发取消和有限重试。
2. 为被测 commit 生成不可变 promotion receipt,记录结论、时间、runner/model/protocol、commit 和 image digest;所有晋升入口必须验证目标 commit 的最新有效 receipt。
3. 将 runner/credential/network failure 与产品断言失败分开。产品失败拒绝晋升;基础设施连续失败冻结下一次晋升,但允许发布负责人在确认外部故障、最近成功结果仍有效、PR/PG 门禁全绿后做带理由和时限的审计豁免。
4. CI 从候选 commit 一次构建 app/events/PI Runner 镜像并记录 digest;test/main 最终只引用该 digest。在此能力完成前只可声称 same-commit 加各环境 digest 可追溯,不得声称 same-image promotion。
- **Test scenarios:**
- 缺 secret 或 runner 不可达时 job 为 infrastructure failure,不生成 PASS 报告。
- 产品断言失败时保留脱敏后的 typed result、schema 和测试证据,告警到明确 owner,晋升脚本拒绝目标 commit。
- 两次调度重叠时旧 run 被取消,不污染同一 fixture。
- receipt 过期、commit/digest 不匹配、产品失败或未经审计的 infra failure 均拒绝晋升;有效时限内的人工豁免可追到发布负责人和理由。
- **Verification:** nightly 具有 schedule/manual 入口、失败分类、owner、retention 和 promotion-gate receipt;test/main 能证明引用候选构建的同一 digest。
### PU6. Decide semantic-summary go/no-go and prepare its task contract
- **Goal:** 决定 D3 语义摘要是否值得实施;若获批,只创建独立 short-term 和完整执行契约,不在本计划直接改业务代码。
- **Requirements:** R5–R13。
- **Dependencies:** PU3 的授权 inventory;PU1–PU2 的独立行;独立产品 go/no-go。
- **Files:** 本计划只更新 `.doc/backlog/chat-agent-p6-backlog.md` 和新 short-term;下列代码与测试路径属于获批任务契约:`internal/ctxmgr/summarizer.go`、`internal/app/chatflow/`、`internal/server/chat_digest_api.go`、对应 Go/PG 测试、`web/src/` 摘要消费组件与测试。
- **Approach:**
1. 实施前冻结当前用户痛点/使用信号、预期收益、维护成本、owner、最小样本、质量阈值和零容忍安全失败;未通过 go/no-go 则保持 deferred,本计划不实施。
2. 获批任务必须只向无工具权限的摘要器提供 authorized view 和最小化输入,保存来源引用、输入版本、模型/协议和 freshness,并应用 R13 的共享 PI 数据安全门。
3. 先 shadow 评估质量和泄漏负例,再决定是否替换 deterministic summary。
4. 模型失败、超时或输出不安全时保留旧摘要或确定性 fallback,并明确 freshness。
- **Test scenarios:**
- 被撤权或跨阶段消息不进入新摘要、计数和引用。
- prompt injection 只能作为材料,不能改变摘要权限或系统动作。
- 新消息增量更新不重复旧内容;并发生成只提交一个当前版本。
- 模型失败后刷新、重登和重启仍返回可解释 fallback。
- **Verification:** 本计划验证 go/no-go 记录、预注册门和 short-term 契约完整;获批任务必须在 shadow、权限负例、PG 持久化和真实 browser 恢复通过后才更新 rollout tier。
### PU7. Decide PI-narrative go/no-go and prepare its task contract
- **Goal:** 决定可选 PI 叙事是否值得实施;若获批,只创建独立 short-term 和完整执行契约,不在本计划直接改业务代码。
- **Requirements:** R5–R13;Covers AE4。
- **Dependencies:** PU3 的授权边界;现有 typed-result-v1;独立产品 go/no-go。
- **Files:** 本计划只创建独立 short-term;下列代码与测试路径属于获批任务契约:`internal/docrevision/service.go`、`internal/docrevision/risk.go`、`internal/taskrun/finalize.go`、`deploy/pi-agent/` typed result/schema、`web/src/components/doc/ChangeReportPanel.tsx` 及对应测试。
- **Approach:**
1. 实施前冻结当前用户痛点/使用信号、预期收益、维护成本、owner、最小样本、质量阈值和零容忍安全失败;未通过 go/no-go 则保持 deferred,本计划不实施。
2. 获批任务中的 PI 必须在无写工具环境中只读消费经过 R13 安全门的 immutable input snapshot、diff、lineage 和服务端计算的 impact/risk floor。
3. 输出使用版本化 typed schema,并绑定文档版本与输入 digest。
4. partial/malformed、timeout、cancel、unknown schema、提示注入或 digest mismatch 一律全量降级到显式 fallback,不混合呈现部分 PI 字段。
5. fallback 继续支持查看、确认/拒绝、刷新和重启恢复。
- **Test scenarios:**
- 合法 PI narrative 与对应 snapshot/version/digest 一致并在 UI 标出分析状态。
- PI 试图降低风险、修改 hunk 或更改审批结论时,服务端忽略或拒绝。
- malformed/timeout/cancel/retry 不产生第二份 candidate 或第二个终态。
- 非授权用户不能从叙事、引用或计数推断不可见文档。
- **Verification:** 本计划验证 go/no-go 记录、预注册门和 short-term 契约完整;获批任务必须证明 deterministic fallback 全量回归通过,且真实 PI/browser/restart 报告明确区分 narrative 与事实字段。
### PU8. Prepare independent multi-intent follow-up tasks
- **Goal:** 在 multi-intent U8 真实证据签署后,只形成 U9 实验和 U10–U12 单 action 的独立候选任务;不在本计划实施扩面。
- **Requirements:** R5–R13。
- **Dependencies:** PU3–PU4;独立产品 go/no-go;U9 实验不作为 U10–U12 的默认前置。
- **Files:** `internal/app/intentflow/`、各 owner module 的 adapter/port/tests、`internal/events/registry.go`、`web/src/components/chat/InteractiveCard.tsx` 及对应测试、`.doc/ops/short-term/` 独立任务。
- **Approach:**
1. 每个候选项先冻结用户信号、预期收益、维护成本、owner、最小样本、晋级阈值和零容忍安全错误;未获批则保持 deferred。
2. U9 候选仅提供规则无法判断时的 segment proposal;固定 schema/digest、最小输入、R13 安全门、护栏优先、超时 fail closed。
3. U10 mutate、U11 docgov、U12 workflow/run-control 各自形成独立 short-term、flag、owner mutex、授权负例、回滚点和是否依赖 U9 的明确声明。
4. 任务契约要求高风险动作绑定 expected revision 和显式确认,确认后执行前重新授权;按钮和自然语言进入同一 owner command。
5. 任一 action 出现授权旁路、持久状态丢失、双 writer、跨用户泄漏或 B1–B4 回归时,停止全部剩余扩面并更新 gap-matrix;普通质量失败只回滚该 action。
- **Test scenarios:**
- U9 malformed/timeout、span 越界、风险降级和红线拆分逃逸全部 fail closed;敏感内容不出站。
- 每个 action 在未确认、越权、stale revision、重复提交和部分完成时保持零越界副作用与可恢复状态。
- 双标签确认/取消只有一个成功;投影停机时权威 GET 仍正确。
- 旧版本回滚后已有计划仍可读取、取消和 finalize,新建保持关闭。
- **Verification:** 本计划只验证每个候选任务边界、go/no-go、预注册门、独立 flag/rollback 和全局安全 stop gate 完整;后续获批任务各自通过真实证据后才可加入更高 tier。
---
## Verification Contract
| Layer | Applies to | Required evidence | Done signal |
|---|---|---|---|
| Documentation | PU1–PU2 | Markdown/link check、`git diff --check`、三份 SSOT 人工对账、before/after 边界与义务迁移表 | 无矛盾、无断链、无无证据状态提升或缩口径假完成 |
| Authorization inventory | PU3 | 注册路由全集与 resource/action/owner/authn/ReBAC/ABAC/duty/negative-test 映射 | 无未认领路由;每项有服务端门和负例 |
| Static/unit | PU3、PU5A–PU8 | `go vet ./...`、相关 Go tests、`cd web && npm test && npm run build`、`arch-check --mode block` | 所有受影响包通过 |
| PostgreSQL | PU3–PU8 | 隔离 `TEST_DATABASE_URL`、迁移、并发、幂等、fail-closed 负例 | 无 skip 冒充 PASS,数据可重启恢复 |
| Race | PU3、PU5A、后续 multi-intent action | 相关包 race;PU5A 关闭全仓 TempDir flake | 无 data race、无异步清理残留 |
| Real PI | PU4、获批后的 PU6–PU8 | 真实产品 PI Agent Runner、记录 model/protocol/typed result 和 R13 数据安全门 | 不使用 stub 或 Herdr 代替;无敏感数据泄漏 |
| Browser | PU4、获批后的 PU6–PU8 | 真实登录、UI 操作、双用户/职责负例、刷新/重登/restart | 页面可见结果与 PG/账本一致 |
| Deployment | 所有运行时波次 | 占集成槽 rebuild、`/ready`、promotion receipt;PU5B 完成后按不可变 digest 晋升 | 当前阶段可追到同一 commit 和各环境 digest;加固后 test/main 引用同一候选 digest |
| Rollback | PU3–PU8 | disable/drain、旧版本兼容读取、cancel/finalize、无双 writer;上一版本二进制针对 expanded schema 的兼容演练 | 当前基线恢复且无孤儿状态;旧 app/worker 能识别并安全收口新状态 |
夜间真实 PI 的外部依赖失败和产品回归必须分栏。PR CI 不依赖外部模型;夜间 job 稳定前不提升为合并必需检查。
---
## Definition of Done
- [x] PU1–PU2 完成后,矩阵能明确区分当前完成范围、发布关系、剩余工作和关闭条件,并保留拆行前后的义务 lineage。
- [x] schema 45、D3/D5、IAM 历史缺口、前端状态和事件/FAV 混行均已纠正。
- [x] L1、Chat/ctxmgr baseline、Document revision baseline、前端工作台和可靠事件核心的状态调整有现有证据支持;语义摘要、PI 叙事、多意图扩面与 FAV 已拆成独立 deferred 行。
- [ ] PU3 形成全路由授权 inventory,并证明只有 dev/test 显式双门才允许内存 fixture,其他环境与既有 session 均 fail closed。
- [ ] PU4 的 multi-intent U8 与 full/none 真实 PI/browser/restart/cross-user 证据独立归档;失败未被文档改写掩盖。
- [ ] PU5A 的 TempDir race flake 被真正关闭;PU5B 的 nightly job、promotion receipt 和人工豁免链能区分 infrastructure/product failure。
- [ ] PU6–PU8 已分别完成产品 go/no-go;未获批项保持 deferred,获批项另建 short-term 后才进入实现与 rollout DoD。
- [ ] 任何真实 PI 工作均满足 R13 的最小出站、租户绑定、脱敏、凭证、留存和泄漏负例。
- [ ] deterministic summary/change-report、legacy 单意图、B1–B4 和三环境隔离均无回归。
- [x] `gap-matrix.md` 只在真实 blocker 出现或关闭时变化,`production_ready` 不因普通 backlog 自动翻转。(Wave 0:仅增加 IAM 只读核验注记,未翻转)
- [ ] 放弃的实验代码、临时 flag、诊断 fixture 和测试数据已清理;历史失败证据保留且有正确指针。
---
## Appendix
### Source paths
- `.doc/audit/2026-09-16-feature-matrix-production-readiness-audit.md`
- `.doc/status/FEATURE-MATRIX.md`
- `.doc/remediation/gap-matrix.md`
- `.doc/ops/CURRENT.md`
- `.doc/archive/ops/short-term/2026-09-16-production-ready-gates.md`
- `.doc/system-design/2026-09-15-multi-intent-hitl-plan.md`
- `.doc/test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md`
- `.doc/test-reports/2026-09-16-chat-refresh-gate-test-report.md`
- `.doc/test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md`
- `.doc/test-reports/2026-09-14-document-revision-runtime-ui-test-report.md`
- `.doc/test-reports/2026-09-15-phase2-closeout-test-report.md`
- `.doc/test-reports/2026-09-12-phase1-iam-authz-test-report.md`
- `.doc/backlog/chat-agent-p6-backlog.md`
### Current decision summary
- 当前没有新增 production-ready blocker。
- 当前首发范围可关闭的状态漂移:Intent L1、前端工作台、可靠事件核心。
- 当前应保持 `partial`:多意图基线、工作流治理、IAM、CI/E2E;artifact promotion 作为独立发布加固跟踪。
- 当前可按冻结范围收口并把增强拆行:Chat/ctxmgr baseline、Document revision baseline。
- 当前应独立 `deferred`:语义摘要、PI change-report narrative、FAV、多意图未获批扩面、D7 合规治理;纯软件项目自举不在本计划范围。
+1
View File
@@ -3,6 +3,7 @@
| 文档 | 说明 |
|------|------|
| [gap-matrix.md](./gap-matrix.md) | 发布缺口 SSOT |
| [2026-09-16-feature-matrix-production-readiness-plan.md](./2026-09-16-feature-matrix-production-readiness-plan.md) | 能力状态与发布门禁解耦、证据校准、剩余 partial 收口和 production-ready 防回退计划([审计](../audit/2026-09-16-feature-matrix-production-readiness-audit.md)) |
| [2026-09-14-module-decoupling-refactor-plan.md](./2026-09-14-module-decoupling-refactor-plan.md) | 纵向绞杀、UnitOfWork、高并发互斥、可靠事件、逐动作授权、FAV、迁移与恢复的详细重构计划 |
| [2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md](./2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md) | Phase 2 修订版:Track E 持久事件交付先行;Track S 结构解耦独立 go/no-go;HTTP 与 PI 协议另立 remediation([审阅](../audit/2026-09-15-module-decoupling-phase2-plan-review.md);[调研](../ops/research/2026-09-15-module-decoupling-ipc-assessment.md)) |
| [2026-09-15-http-error-envelope-remediation.md](./2026-09-15-http-error-envelope-remediation.md) | HTTP/SSE typed error envelope、公开 details allowlist、前端 additive 迁移与安全负例 |
+2
View File
@@ -5,8 +5,10 @@
**production_ready**: yes(发布门禁 B1–B4 已签;dev/test/main schema=47。U9–U12 / 软件自举 / FAV / 完整 PI change-report 叙事不挡首发)
**协作焦点**: [../ops/CURRENT.md](../ops/CURRENT.md)
**Agent 手册**: [AGENTS.md](../../AGENTS.md) · [PROJECT.md](../../PROJECT.md)
**能力矩阵**: [../status/FEATURE-MATRIX.md](../status/FEATURE-MATRIX.md)(Wave 0 校准;与本文件正交)
> Codex 2026-09-12 再审计项与本轮回环证据见下表「Codex 再审计」区段。
> Wave 0(2026-09-16)对 dev/test/main 做 IAM 只读核验:schema 47、`user_credentials` 与 IAM 表齐全、`ALLOW_IN_MEMORY=false`,**未发现** MemoryStore 旁路;**不**新增 blocker。代码 fail-closed 归 Wave 1(见 [continuity plan](./2026-09-16-feature-matrix-production-readiness-plan.md))。
---
+74 -23
View File
@@ -1,39 +1,90 @@
# 模块与功能完成度(SSOT)
**更新**: 2026-09-16
**production_ready**: yes
**更新**: 2026-09-16(Wave 0 校准)
**production_ready**: yes(权威来源:[gap-matrix](../remediation/gap-matrix.md);本表不推导发布门禁)
**发布缺口**: [../remediation/gap-matrix.md](../remediation/gap-matrix.md)
**协作焦点**: [../ops/CURRENT.md](../ops/CURRENT.md)
**连续性审计**: [../audit/2026-09-16-feature-matrix-production-readiness-audit.md](../audit/2026-09-16-feature-matrix-production-readiness-audit.md)
**整改计划**: [../remediation/2026-09-16-feature-matrix-production-readiness-plan.md](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md)
> 本表描述**能力地图**;上线 blocker 见 gap-matrix,二者互相链接、不合并。
> 本表描述**能力成熟度**;上线 blocker 见 gap-matrix。二者正交:能力行不必全部 `done` 才能发布;`partial`/`deferred` 不得自动回退 `production_ready`。
**状态枚举**: `done` | `partial` | `planned` | `deferred` | `blocked`
---
## 状态契约
| 字段 | 含义 |
|------|------|
| **声明范围** | 本行冻结的能力边界;`done` 只对该边界负责 |
| **状态** | `done` \| `partial` \| `planned` \| `deferred` \| `blocked` |
| **发布关系** | 与当前首发/已签门禁的关系:`non_blocker` / `补证` / `加固` / `deferred_enhancement` |
| **关闭条件** | 何时可将本行升为 `done`(或关闭 `partial`);stub/SKIP/fallback 不得冒充 |
| **证据** | 可追溯到报告/commit/环境/schema;代码或 artifact 变化后须重验 |
| **mutex** | 并行认领互斥键(见 CURRENT) |
### 状态判定
- **`done`**:声明范围内能力已达生产验收证据;**不**表示该领域永无后续。新增增强须拆行或进 backlog。
- **`partial`**:已交付可用子集,关闭条件仍未满足。
- **`planned`**:方案存在,尚未开始实施。
- **`deferred`**:明确不进当前路线,且不是发布 blocker(除非盘点确认违规 → 升 gap-matrix)。
- **`blocked`**:本行目标无法继续,须写明 blocker 与恢复条件。
- **`production_ready`**:只由 gap-matrix 发布门禁决定。
### 重验触发器
授权谓词/owner port、schema/迁移/compose/镜像/环境晋升、flag 升级、PI Runner/model/protocol、event consumer/writer、浏览器持久化边界变化时,受影响行须重验;历史 PASS 不能单独证明新 artifact。
### 禁止
- 靠缩小声明范围制造 `done`(须保留 before/after 与义务迁移)。
- 用 stub、SKIP、deterministic fallback 冒充真实 PI / 完整叙事闭环。
- 无真实 blocker 变化时改写 gap-matrix / `production_ready`。
---
## 完成度矩阵
| 模块 | 能力 | 状态 | 证据 | 缺口/后续 | mutex |
|------|------|------|------|-----------|-------|
| 意图识别 L1 | 18 类 Intent + 三分支消解 | partial | [system-design/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);[多意图复核方案](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1 契约](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md);[U2 分段](../test-reports/2026-09-15-multi-intent-u2-segmenter-test-report.md);[U3 PG](../test-reports/2026-09-15-multi-intent-u3-intentflow-pg-test-report.md) | 明确写动作与只读总结已分流;双标签 `DOC_BUSY` 已签(项目 6275)。多意图核心 U1–U8 已完成;U9–U12 不阻塞首版。intent 纯依赖边界不得回退 | `intent` |
| 多意图持久计划 | app/intentflow 生命周期与 HITL 契约 | partial | [设计](../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);[矩阵深度测试](../test-reports/2026-09-16-matrix-deep-test-promote-test-test-report.md) | U1–U8 核心首版已完成。U9–U12 不阻塞。默认 tier=legacy。真实 PI generate 待 runner URL。共享环境 schema 已对齐 **47** | `intent-plan` |
| 对话 / ctxmgr | 多轮上下文、记忆、摘要 | partial | [system-design/multi-turn-dialogue](../system-design/multi-turn-dialogue/);[刷新恢复专项审计](../audit/2026-09-13-chat-history-refresh-disappears.md);[U10 端口化](../archive/ops/2026-09-15-chatlog-contextasm-u10.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) | `CHAT-HISTORY-REFRESH` 与发布门禁「激活后文档任务 + 重登/重启」已签(项目 6359)。U10 原地端口 **停止扩面**。语义摘要(D5 backlog) | `chat` |
| 智能体小队 | 角色-任务-工作区-黑板 | done | [system-design/agent-squad](../system-design/agent-squad/);[test 2026-09-07](../test-reports/2026-09-07-dynamic-squad-planning-test-report.md) | 非关键步骤降级(A5/A6 backlog) | `squad` |
| 工作流治理 | 三正式工作流 + 阶段门禁 | partial | [remediation/three-workflows](../remediation/2026-09-12-three-workflows-strict-governance-remediation.md);[test 2026-09-12](../test-reports/2026-09-12-three-workflows-governance-remediation-test-report.md);[冻结态/职责可选整改](../remediation/2026-09-14-workflow-plan-409-frozen-and-optional-duties-remediation.md);[Wave 5 页面矩阵](../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md);[职责-动作鉴权](../test-reports/2026-09-14-governance-action-level-authz-test-report.md);[真实 PI 三工作流 E2E](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md) | 设置页/DutyMode + 动作级鉴权已落地;真实 PI 三工作流 E2E 已签。后续:none 文档真实 PI 审批长链路;模块可仍 partial | `workflow` |
| 纯软件项目自举 | 软件项目创建、Bootstrap 基线、Delivery 迭代与受控工程交接 | planned | [详细设计](../system-design/2026-09-14-software-project-bootstrap-workflow.md);[现状调研](../ops/research/2026-09-14-software-project-bootstrap-current-state.md);[验收计划](../ops/checklists/2026-09-14-software-project-bootstrap-acceptance.md) | 当前仅完成方案;目录/模板/执行器/创建向导/真实 PI UI 均未实施。受控代码执行单列后续 Epic | `workflow-design` |
| IAM / 鉴权 | 项目级 API 鉴权 + RBAC | partial | [audit/authorization](../audit/authorization-matrix-v2.md);[刷新恢复专项审计](../audit/2026-09-13-chat-history-refresh-disappears.md) | 历史读取端点补统一会话 owner + 阶段授权;旧 API 410 标注(BUG-11 partial) | `authz` |
| 文档治理 | 法定文档生命周期 + 租约 + 受控正文读取 | done | [test docgov](../test-reports/2026-09-08-docgov-lifecycle-and-claiming-framework-test-report.md);[项目 143 正文 404 审计](../audit/2026-09-14-project143-controlled-content-404.md);[受控正文真实 UI 验收报告](../test-reports/2026-09-14-controlled-content-ui-acceptance.md);[UI-06 缓存竞争审计](../audit/2026-09-14-document-revision-refresh-cache-race.md);[整改](../remediation/2026-09-14-controlled-content-canonical-hash-remediation.md) | 生命周期/租约保留。W1–W6 + 审查修补 + UI hydrate 资格 + 晚到 list sync 修复均已合入 dev。项目 143 纯 UI 回归(clean-run3)与新项目全链路(main + post-restart)已全量真实页面验证通过(PASS) | `docgov` |
| 文档版本与修改认知 | 智能体版本边界、人工修订标记、任意版本比较、变更报告与负责人通知 | partial | [管理测试](../test-reports/2026-09-13-document-revision-management-test-report.md);[运行时 UI Round20](../test-reports/2026-09-14-document-revision-runtime-ui-test-report.md);[运行时审计](../audit/2026-09-13-document-revision-runtime-404.md);[ADR](../adr/2026-09-13-document-version-boundary.md) | **运行时 UI PASS**(6159 / V3/r2)。仍 `partial`:change report=`fallback`(真实 diff+lineage,非完整 PI 叙事)。系统级 `CHAT-INTENT` 见 gap-matrix | `docgov` |
| 前端工作台 | 三栏 + 块文档 + SSE | partial | [test workbench](../test-reports/2026-09-08-three-column-workbench-and-block-document-test-report.md);[现场专项审计](../audit/2026-09-13-conversation-intent-runtime-state.md);[双标签截图](../test-reports/assets/2026-09-15-conversation-intent-dual-tab/screenshots/tab-b-busy.png);[demo seed 污染整改](../test-reports/2026-09-16-demo-seed-pollution-test-report.md);[门禁 B4](../test-reports/2026-09-16-frontend-gate-b4-test-report.md) | 错误卡片/任务进度/文档 busy 刷新恢复已有项目 6275 证据。Demo seeds 默认关闭。版本冲突信封解包 + 终止 preview 抽检已签(项目 6363) | `web` |
| PI Runner / 配置链 | pi-agent + MiniMax 真实链路 + typed-result-v1 | done | [test piagent](../test-reports/2026-09-13-codex-audit-p0-remediation-test-report.md);[container-env](../test-reports/2026-09-13-container-env-configuration-test-report.md);[typed-result-v1](../test-reports/2026-09-15-pi-typed-result-v1-test-report.md) | — | `pi-agent` |
| 三环境运维 | dev/test/main + 共享 KB | done | [PROJECT.md](../../PROJECT.md) §4;四环境 healthy | — | `infra` |
| CI / E2E | PG 集成 + 真实 PI E2E | partial | [gap-matrix BUG-08](../remediation/gap-matrix.md);[test pg-ci](../test-reports/2026-09-12-pg-ci-soak-e2e-test-report.md);[治理 PG BUG-08](../test-reports/2026-09-16-ci-governance-pg-bug08-test-report.md);[真实 PI 三工作流](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md);[运行时 UI Round20](../test-reports/2026-09-14-document-revision-runtime-ui-test-report.md) | BUG-08 PASS;真实 PI 三工作流 E2E 与前端/对话门禁已签。`-race` TempDir flake 为基建残留;夜间 CI `RUN_PI_E2E=1` 建议 | `ci` |
| 模块解耦与可靠事件 | 文档可靠性纵向试点、PG 持久事件交付与选择性模块化 | partial | [架构](../system-design/2026-09-14-module-decoupling-architecture.md);[ADR](../adr/2026-09-14-modular-monolith-decoupling.md);[Phase 1](../remediation/2026-09-14-module-decoupling-refactor-plan.md);[Phase 2 审阅](../audit/2026-09-15-module-decoupling-phase2-plan-review.md);[Phase 2 修订计划](../remediation/2026-09-15-module-decoupling-ipc-phase2-remediation-plan.md);[E0A](../test-reports/2026-09-15-event-e0a-production-scope-contract-test-report.md);[E0B](../test-reports/2026-09-15-event-e0b-dispatcher-pg-test-report.md);[E1A](../test-reports/2026-09-15-event-e1a-notify-cutover-test-report.md);[E1B](../test-reports/2026-09-15-event-e1b-workflow-advance-test-report.md);[E1C](../test-reports/2026-09-15-event-e1c-projection-test-report.md);[E2](../test-reports/2026-09-15-event-e2-hook-guard-test-report.md);[复盘](../ops/research/2026-09-15-track-e-retrospective.md);[D6](../test-reports/2026-09-15-doccontent-canonical-boundary-test-report.md);[D7a](../test-reports/2026-09-15-intent-bizdev-boundary-test-report.md);[D5](../test-reports/2026-09-15-stageflow-type-ownership-test-report.md);[D4](../test-reports/2026-09-15-bizdev-locator-removal-test-report.md);[D7b](../test-reports/2026-09-15-chatflow-orchestration-boundary-test-report.md);[H0](../ops/research/2026-09-15-http-error-envelope-h0-inventory.md);[P0](../ops/research/2026-09-15-pi-typed-result-p0-matrix.md);[收口](../test-reports/2026-09-15-phase2-closeout-test-report.md);[notify live](../test-reports/2026-09-15-event-notify-shared-live-test-report.md);[advance live](../test-reports/2026-09-15-event-workflow-advance-shared-live-test-report.md);[projection live](../test-reports/2026-09-15-event-projection-shared-live-test-report.md);[HTTP 信封](../test-reports/2026-09-15-http-error-envelope-h1-h3-test-report.md);[PI typed-result](../test-reports/2026-09-15-pi-typed-result-v1-test-report.md) | E0A–E2 与共享 live 已过;生产无 hook 注册。D4–D7b 已合入。FAV off。Track P H1–H3 / P1–P4 已实施 | `architecture-docs` |
| 模块 | 声明范围 | 状态 | 发布关系 | 证据 | 剩余工作 / 关闭条件 | mutex |
|------|----------|------|----------|------|---------------------|-------|
| 意图识别 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 代码与安全基线 | partial | 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);[矩阵深测](../test-reports/2026-09-16-matrix-deep-test-promote-test-test-report.md) | U8 **真实 PI** generate + PG plan/step/receipt + browser + 撤权 + 刷新/重启;不得用 SKIP 关闭。schema **47** 已对齐。升 `confirm/full` 另开任务 | `intent-plan` |
| 多意图扩面(U9–U12) | U9 LLM 分段实验;U10 mutate;U11 docgov;U12 workflow/run-control | deferred | deferred_enhancement | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[计划 Wave 3 / PU8](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) | 逐能力产品 go/no-go + 独立 short-term/flag/owner;未获批不实施 | `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 | deferred | deferred_enhancement | [chat-agent-p6-backlog](../backlog/chat-agent-p6-backlog.md)(**D3**;D5=共享 KB 隔离评估);[计划 PU6](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) | 产品 go/no-go;授权输入、shadow、fallback、泄漏负例;未获批不实施 | `chat` |
| 对话数据治理(D7) | 留存/删除口径、库·备份·日志控制、敏感字段加密边界 | deferred | deferred_enhancement(违规则升 blocker) | [计划](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) Scope Boundaries | 先数据分类与现状盘点;确认当前基线违规 → 立即写 gap-matrix | `chat` |
| 智能体小队 | 角色-任务-工作区-黑板 | done | non_blocker | [agent-squad](../system-design/agent-squad/);[test 2026-09-07](../test-reports/2026-09-07-dynamic-squad-planning-test-report.md) | 非关键步骤降级(A5/A6)属 backlog | `squad` |
| 工作流治理 | 三正式工作流、设置页/DutyMode、动作级鉴权、真实 PI 三工作流 E2E | partial | 补证 | [三工作流整改](../remediation/2026-09-12-three-workflows-strict-governance-remediation.md);[409/职责](../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md);[鉴权](../test-reports/2026-09-14-governance-action-level-authz-test-report.md);[PI E2E](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md) | **full**:真实 PI 生成 + 独立 author/reviewer/approver 长链;**none**:真实生成 + 账本 + **无**审批动作且不阻塞阶段(禁止写「none 审批通过」) | `workflow` |
| 纯软件项目自举 | 软件项目创建、Bootstrap、Delivery、受控工程交接 | planned | deferred_enhancement(明确不挡首发) | [设计](../system-design/2026-09-14-software-project-bootstrap-workflow.md);[调研](../ops/research/2026-09-14-software-project-bootstrap-current-state.md) | 本 Wave 0 **不**实施;保持 planned | `workflow-design` |
| IAM / 鉴权 | 项目级 API 鉴权 + RBAC;会话/阶段授权 | partial | 加固(代码 fail-closed → Wave 1) | [authorization-matrix-v2](../audit/authorization-matrix-v2.md);[Phase1 报告](../test-reports/2026-09-12-phase1-iam-authz-test-report.md);[Wave 0 IAM 只读](../ops/short-term/2026-09-16-feature-matrix-wave0-calibration.md) | 历史读取 owner/阶段缺口**已闭环**(不再列为待办)。剩余:全路由 inventory;`NewStores` 仅 dev/test+`ALLOW_IN_MEMORY` 双门;main/空值/缺表 fail-closed;410 退役决策。Wave 0 部署核验:**未**证实 MemoryStore 旁路 | `authz` |
| 文档治理 | 法定文档生命周期 + 租约 + 受控正文读取 | done | non_blocker | [docgov](../test-reports/2026-09-08-docgov-lifecycle-and-claiming-framework-test-report.md);[正文 UI](../test-reports/2026-09-14-controlled-content-ui-acceptance.md);[canonical hash](../remediation/2026-09-14-controlled-content-canonical-hash-remediation.md) | 项目 143 只读;不终止 | `docgov` |
| 文档版本 baseline | 账本、人工修订、确定性 diff+lineage、运行时 UI、负责人通知 | done | non_blocker | [管理](../test-reports/2026-09-13-document-revision-management-test-report.md);[Round20 UI](../test-reports/2026-09-14-document-revision-runtime-ui-test-report.md);[ADR](../adr/2026-09-13-document-version-boundary.md) | **before**:完整 PI narrative 混入 → **after**:迁「PI change-report 叙事」。fallback 报告是本行内显式行为,不是缺口 | `docgov` |
| PI change-report 叙事 | 只读消费 diff+lineage 的 PI 叙事;失败全量降级 fallback | deferred | deferred_enhancement | [Round20](../test-reports/2026-09-14-document-revision-runtime-ui-test-report.md);[计划 PU7](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) | 产品 go/no-go;typed schema;禁止覆盖服务端风险/审批结论 | `docgov` |
| 前端工作台 | 三栏 + 块文档 + SSE;错误卡/进度/busy;版本冲突信封;demo seed 默认关;终止 preview | done | non_blocker | [workbench](../test-reports/2026-09-08-three-column-workbench-and-block-document-test-report.md);[双标签](../test-reports/assets/2026-09-15-conversation-intent-dual-tab/screenshots/tab-b-busy.png);[demo](../test-reports/2026-09-16-demo-seed-pollution-test-report.md);[B4](../test-reports/2026-09-16-frontend-gate-b4-test-report.md)(项目 6363) | **before**:空「缺口」却 partial → **after**:本行 done。其他 409 消费方信封复用另列 hardening backlog | `web` |
| PI Runner / 配置链 | pi-agent + MiniMax + typed-result-v1 | done | non_blocker | [piagent](../test-reports/2026-09-13-codex-audit-p0-remediation-test-report.md);[container-env](../test-reports/2026-09-13-container-env-configuration-test-report.md);[typed-result](../test-reports/2026-09-15-pi-typed-result-v1-test-report.md) | — | `pi-agent` |
| 三环境运维 | dev/test/main + 共享 KB;对话/业务库隔离 | done | non_blocker | [PROJECT.md](../../PROJECT.md) §4;CURRENT 环境快照 schema **47** | — | `infra` |
| CI / E2E | PR CI、PG 集成、治理 PG、已签真实 PI 门禁 | partial | 加固(阻止**下一次**晋升,不自动否定已发布) | [BUG-08](../test-reports/2026-09-16-ci-governance-pg-bug08-test-report.md);[PI 三工作流](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md);[B3](../test-reports/2026-09-16-chat-refresh-gate-test-report.md);[B4](../test-reports/2026-09-16-frontend-gate-b4-test-report.md) | 夜间 `RUN_PI_E2E=1` + 失败分类;全仓 `-race` TempDir flake 真修复(PU5A);PR CI 不依赖外部模型 | `ci` |
| Artifact 同 digest 晋升 | 候选 commit 一次构建、按 digest 晋升、promotion receipt | planned | 加固 | [计划 PU5B](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) | 落地前只可声称 same-commit + 各环境 digest 可追溯,不得声称 same-image promotion | `infra` |
| 可靠事件核心 | PG dispatcher、notify/advance/projection live、生产闭包 hook 退出、Phase2 选择性解耦已合入 | done | non_blocker | [E0A–E2](../test-reports/2026-09-15-event-e0a-production-scope-contract-test-report.md) 等;[复盘](../ops/research/2026-09-15-track-e-retrospective.md);[shared live](../test-reports/2026-09-15-event-notify-shared-live-test-report.md);[phase2 closeout](../test-reports/2026-09-15-phase2-closeout-test-report.md) | **before**:与 FAV off 混成 partial → **after**:FAV 独立行。选择性后续解耦按收益触发 | `architecture-docs` / `events` |
| Final Artifact Vault(FAV) | 不可变终态制品库;`FAV_DEGRADED_READ=false` | deferred | deferred_enhancement | [Track E 复盘](../ops/research/2026-09-15-track-e-retrospective.md);CURRENT 旁支纪律 | 独立审计与 go/no-go;**禁止**整支合入 `feature/final-artifact-vault` | `events` |
---
## Wave 0 边界 lineage(收口摘要)
| 行 | before 状态/口径 | after | 原义务去向 | 现有证据是否覆盖冻结边界 |
|----|------------------|-------|------------|--------------------------|
| Intent L1 | partial(混入 U9–U12) | done | U9–U12 → 多意图扩面 | 是(双标签 + 分流 + U1–U3) |
| Chat/ctxmgr | partial(混入语义摘要 D5 误标) | done | D3 摘要行;D7 治理行 | 是(B3 项目 6359) |
| Document revision | partial(混入完整 PI 叙事) | done | PI change-report 叙事行 | 是(Round20;fallback 为声明行为) |
| Frontend workbench | partial(缺口栏已空) | done | 其他 409 信封复用 → backlog | 是(B4 项目 6363) |
| 可靠事件 | partial(与 FAV 混行) | done | FAV 独立 deferred | 是(E0–E2 + shared live) |
---
## 更新规则
1. 模块状态变化时同步更新本表与 [gap-matrix](../remediation/gap-matrix.md)(若涉及 blocker)
2. 同一 `mutex` 同时仅一个 Agent `in_progress`(见 CURRENT 并行认领表)
3. 新能力行:复制模板 [../ops/templates/feature-matrix-row.md](../ops/templates/feature-matrix-row.md)
1. 模块状态变化时同步本表;**仅当**发布 blocker 出现或关闭时改 [gap-matrix](../remediation/gap-matrix.md)
2. 同一 `mutex` 同时仅一个 Agent `in_progress`(见 CURRENT)
3. 新能力行:复制 [../ops/templates/feature-matrix-row.md](../ops/templates/feature-matrix-row.md)
4. 拆行/收口须保留 before/after 与义务迁移(见上表);禁止缩口径假完成
+9 -1
View File
@@ -2,4 +2,12 @@
**SSOT**:[FEATURE-MATRIX.md](./FEATURE-MATRIX.md)
与 [remediation/gap-matrix.md](../remediation/gap-matrix.md)(发布 blocker)分离:本目录描述**能力地图**,gap-matrix 描述**上线缺口**。
与 [remediation/gap-matrix.md](../remediation/gap-matrix.md)(发布 blocker)分离:
| 文档 | 职责 |
|------|------|
| 本目录 FEATURE-MATRIX | **能力成熟度**:声明范围、状态、发布关系、关闭条件、证据 |
| gap-matrix | **上线缺口**:唯一决定 `production_ready` |
| [ops/CURRENT.md](../ops/CURRENT.md) | 协作焦点、认领、集成槽位、环境快照 |
能力行不必全部 `done` 才能发布;`partial`/`deferred` 不得自动回退 `production_ready`。新行模板:[../ops/templates/feature-matrix-row.md](../ops/templates/feature-matrix-row.md)。连续性审计与整改:[audit 2026-09-16](../audit/2026-09-16-feature-matrix-production-readiness-audit.md) · [remediation plan](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md)。
@@ -1,9 +1,10 @@
# 多意图多任务识别、持久计划与 HITL 统一确认方案
> 状态: planned(方案已复核,未实施)
> 日期: 2026-09-15
> 作者: Cline(初稿)/ Codex(架构、安全与实施计划复核)
> 关联: [方案审计](../audit/2026-09-15-multi-intent-hitl-plan-review.md);[意图识别深读](./intent-recognition/01-意图识别框架-设计-架构-实现-难点-解决方案-亮点与优势.md);[模块化单体架构](./2026-09-14-module-decoupling-architecture.md);[任务总览](../ops/short-term/2026-09-15-multi-intent-hitl.md)
> 状态: **partially implemented**(U1–U8 代码与默认 `legacy` 已合入;U8 真实 PI generate 仍为证据缺口;U9–U12 deferred)
> 日期: 2026-09-15
> **SSOT 状态**:能力行见 [FEATURE-MATRIX](../status/FEATURE-MATRIX.md)(Wave 0 校准);发布门禁见 [gap-matrix](../remediation/gap-matrix.md)。本文保留为设计权威,头部「planned/未实施」已过时。
> 作者: Cline(初稿)/ Codex(架构、安全与实施计划复核)
> 关联: [方案审计](../audit/2026-09-15-multi-intent-hitl-plan-review.md);[意图识别深读](./intent-recognition/01-意图识别框架-设计-架构-实现-难点-解决方案-亮点与优势.md);[模块化单体架构](./2026-09-14-module-decoupling-architecture.md);[任务总览](../ops/short-term/2026-09-15-multi-intent-hitl.md);[连续性计划](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md)
---
@@ -27,7 +28,7 @@
| 能力 | 当前事实 | 证据 |
|------|----------|------|
| 单意图识别 | 18+ Intent、四级漏斗、三分支已实现;FEATURE-MATRIX 仍为 `partial`,不能称“已成熟” | `internal/intent/recognizer.go`、`.doc/status/FEATURE-MATRIX.md` |
| 单意图识别 | 18+ Intent、四级漏斗、三分支已实现;FEATURE-MATRIX L1 行 Wave 0 已收口为 `done`(U9–U12 拆出) | `internal/intent/recognizer.go`、`.doc/status/FEATURE-MATRIX.md` |
| V2 帧/动作表 | `IntentFrameV2`、ActionRegistry、风险、必填槽位、灰度开关已存在 | `internal/intent/types_v2.go`、`registry.go`、`flags.go` |
| 有限多意图 | 默认开启;只按首个连接词拆两段;写意图返回 `nil` | `internal/intent/plan_builder.go` |
| 有限执行 | 只读步骤顺序执行;需确认步骤只有文字提示 | `internal/coordinator/action_planner.go` |