--- title: "红线证据批次(无能力放量)" task_id: "2026-09-22-redline-evidence" status: done created: 2026-09-22 updated: 2026-09-22 owner: Cursor task_type: research task_tier: multi_stage policy_revision: "agent-governance-2026-09-21-r1 @ local-dev 364ed7f1a3f0393ef77ec4623a9518116ed2cb87" branch: feature/redline-evidence-2026-09-22 worktree: .worktrees/redline-evidence-2026-09-22 base_dev_sha: "364ed7f1a3f0393ef77ec4623a9518116ed2cb87" write_scope: - ".doc/ops/short-term/" - ".doc/ops/checklists/" - ".doc/test-reports/" - "internal/docrevision/narrative_test.go" allowed_environments: [] head_sha: "9db2462604501c238d01fc26bf26565b7c9ec086" mutex: "redline-evidence-docs" review_state: not_required integration_state: pending deployment: not_required cleanup: pending cleanup_owner: "独立维护者" cleanup_trigger: "合入 dev 且无进程占用后复查 remove" remote_sync: not_requested --- # 红线证据批次(无能力放量) ## 用户目标与授权 - 用户目标:在 worktree `redline-evidence-2026-09-22` 落 SWBOOT / FAV / D7 / PI narrative 红线证据;**不**做能力放量、**不**翻转 flag。 - 交付终点:短文 + test-report + D7 Track E 清单 + 叙事负例单测;本地 commit;不 push。 - 明确禁止项: - SWBOOT-10 保持 fail-closed stub(不实现真实 patch/merge/push) - FAV:无整支 merge、无 live;`FAV_DEGRADED_READ` 保持 false;不启用 `Register(fav)` - D7:retention 不做物理删除;ADR 保持 `pending-compliance-signoff` - PI change-report narrative flag 保持 OFF - `MULTI_INTENT_PLAN_TIER` 保持 legacy;`SEMANTIC_SUMMARY_REPLACE` 保持未接线 ## 例外登记(本机治理工具不可用) - owner:Cursor(本任务)。 - 原因:`agentctl with` 依赖 Linux `/proc`;本机 Darwin 上 `Lease` 崩溃(`TypeError: 'NoneType' object is not subscriptable`)。与 [status-reconcile](./2026-09-22-status-reconcile.md) / 晋升任务同一宿主限制。 - 覆盖条款:操作规范 §3(with 租约持 `path` + `git:index`)。 - 范围:仅本任务本地提交;不 push;不改 `dev`。 - 退出条件:agentctl macOS 支持经验证,或迁到受测 Linux。 - 恢复动作:提交使用 `git -c core.hooksPath=<空目录>` 旁路 agentctl hook(**不用** `--no-verify`);提交前后 `git status` 确认仅预期路径。 ## 范围与非目标 - 允许:只读复验、证据报告、观察窗前置登记、Track E ID-only 清单、叙事 fallback 负例测试。 - 非目标:能力 release、compose/env flag 翻转、共享环境写操作、FAV live、SWBOOT-10 实施、D7 物理删除、features.go 与 drift worktree 冲突时的重复改码。 ## 步骤与验收 1. [x] SWBOOT:跑验收清单中**无需真实仓写**的 L1–L4 项;L5/L6 标 pending auth — [SWBOOT 报告](../../test-reports/2026-09-22-redline-evidence-swboot-test-report.md);清单已更新 2. [x] FAV:审计 `ObserveShadow`;登记观察窗启动前置;注明 registry/dispatcher 硬门 — [FAV 报告](../../test-reports/2026-09-22-redline-evidence-fav-test-report.md) 3. [x] D7:盘点 DB/备份/日志表面 + Track E ID-only 合规清单(无删除)— [D7 报告](../../test-reports/2026-09-22-redline-evidence-d7-test-report.md) · [清单](../checklists/2026-09-22-d7-track-e-id-only-compliance.md) 4. [x] PI narrative:补强 flag-on fallback 负例;flag 保持 off — [叙事报告](../../test-reports/2026-09-22-redline-evidence-pi-narrative-test-report.md) ## FAV 审计与观察窗前置 ### 代码门禁(本轮未改) | 门禁 | 位置 | 行为 | |------|------|------| | `Registry.Register(fav)` | `internal/events/registry.go` | 恒返回 `ErrDisabledConsumer` | | `AssertLiveConsumers` / `LiveConsumers` | 同上 | 拒绝 / 剔除 `fav` | | `PeekPendingLeases` / `ClaimLeases` / `SetMode` | `internal/events/dispatcher.go` | consumer=`fav` 直接拒绝;claim SQL 含 `d.consumer <> 'fav'` | | `ObserveShadow` | `internal/app/fav/subscriber.go` | `WouldStage`/`WouldPublish`/`DegradedReadUsed` 恒 false;`FAV_DEGRADED_READ` 为真则拒绝 | | `HandleLease` | 同上 | 默认 disabled;即使 `Enabled=true` 仍 fail-closed 至 cutover 审批 | 复验(本 worktree,`-short`,2026-09-22T13:25Z): ```text go test -count=1 -short ./internal/app/fav/ ./internal/events/ -run 'Fav|Register|ObserveShadow|Cutover|Disabled' → PASS go test -count=1 -short ./internal/server/ -run 'VaultDefaults|VaultStatus' → PASS ``` Compose 默认:dev/test `${FAV_*:-false}`;main 硬编码 `"false"`。 ### 观察窗启动前置(登记,本轮不开始计时) 在授权开启 live **之前**须同时满足;任一缺失则观察窗**不得**起算: 1. 用户显式授权:允许 `fav` durable consumer cutover(单独审批,非整支 merge `feature/final-artifact-vault`)。 2. 解除 `events` 硬门:`Registry.Register(fav)` / `SetMode(fav,*)` / claim 路径可按审批切片放行(本批禁止改)。 3. 顺序固定:`staging → artifact → publication`;每级 `shadow → drain → live`。 4. 每级观察窗下限:≥7 天 **或** ≥N 终态样本(取更严);崩溃/重启幂等证据齐全。 5. `FAV_DEGRADED_READ` **全程 false**(不随 live 开启)。 6. 三环境 compose 与 sysadmin 成熟度目录一致声明;无旁路 `cmd/events` 注册。 7. 独立 mutex `events` 持有者;CURRENT 集成槽位已认领。 8. 回滚预案:任一级失败立即回 `shadow`/`off`,不前进下一级。 **本轮结论**:shadow 可观测;live 观察窗 **未开始**。 ## D7 表面盘点(无删除) 静态复验(相对 [W7 盘点](../../audit/2026-09-17-d7-data-inventory.md)): | 表面 | 位置 / 入口 | 本轮结论 | |------|-------------|---------| | 会话正文 | `chat_sessions` / `chat_messages` | 无 `DELETE FROM chat_*` / retention `SET deleted_at`;存在内容编辑 UPDATE | | 派生记忆 | `context_memory_chunks` | 无 retention 作业 | | 事件 envelope / DLQ | Track E allowlist | payload 无正文;见 Track E 清单 | | 应用日志 | Docker / slog | 禁止消息正文;本批未抽 live 容器日志 | | 备份 | `scripts/backup-system-db.sh` | `pg_dump -Fc`;本轮未执行 dump | | Agent workspace | `data/*/workspaces` | 无 30 天清理作业(ADR 待签) | | FAV 终态 | `final_artifacts` | consumer off;与聊天口径解耦 | ADR 仍为 `pending-compliance-signoff`。 ## PI narrative - 仓库默认 / compose:`PI_CHANGE_REPORT_NARRATIVE=false`。 - 加宽负例:`internal/docrevision/narrative_test.go`(SHA mismatch、wrong schema kind、top-level error_code、empty raw、empty fetcher body、authorized-flip 路径仍默认 off)。 - **跳过** `internal/sysadmin/features.go` reason 更新:并行 `feature/status-drift-reconcile-2026-09-22` 已改;集成以 drift 为准。 红线保持:`MULTI_INTENT_PLAN_TIER=legacy`;`SEMANTIC_SUMMARY_REPLACE` 未接线。 ## 验证与证据 | 范围 / 被测 SHA | 命令与环境 | 预期 | 实际 / 判定 | 证据 | |---|---|---|---|---| | SWBOOT L1–L4(`364ed7f1`) | 见 SWBOOT 报告 | L1/stub PASS;L5/L6 pending | PASS / NOT RUN 如实 | [swboot](../../test-reports/2026-09-22-redline-evidence-swboot-test-report.md);[assets](../../test-reports/assets/2026-09-22-redline-evidence/) | | FAV shadow / registry | `go test … fav/ events/ server Vault*` | WouldStage/Publish false;Register fail-closed | PASS | [fav](../../test-reports/2026-09-22-redline-evidence-fav-test-report.md) | | D7 / Track E | 静态检索 + 清单 | 无删除;ID-only | PASS | [d7](../../test-reports/2026-09-22-redline-evidence-d7-test-report.md) · [checklist](../checklists/2026-09-22-d7-track-e-id-only-compliance.md) | | PI narrative 负例 | `go test ./internal/docrevision/ -run 'Narrative\|…'` | flag off;flag-on fallback | PASS | [narrative](../../test-reports/2026-09-22-redline-evidence-pi-narrative-test-report.md) | | arch | `./scripts/arch-check.sh --mode block` | production gate passed | PASS | [arch-check.txt](../../test-reports/assets/2026-09-22-redline-evidence/arch-check.txt) | 附件目录:`.doc/test-reports/assets/2026-09-22-redline-evidence/`。 ## 收口与交接 - 本地提交在本分支;**未**合入 `dev`;**未** push;**无**部署。 - `features.go` 以 status-drift 分支为准合并。 - cleanup:合入并确认 tip 为 dev 祖先后由独立维护者 remove worktree。 - 下一步(需另授权):SWBOOT L5/L6 / SWBOOT-10 安全评审;FAV live 观察窗;D7 合规签字;PI narrative flag 翻转。 ## 相关链接 - 验收清单:[../checklists/2026-09-14-software-project-bootstrap-acceptance.md](../checklists/2026-09-14-software-project-bootstrap-acceptance.md) - W6 FAV shadow:[2026-09-17-w6-fav-subscriber-shadow.md](./2026-09-17-w6-fav-subscriber-shadow.md) - W7 D7 盘点:[2026-09-17-w7-d7-inventory.md](./2026-09-17-w7-d7-inventory.md) - Wave 7 编排:[2026-09-18-wave7-roadmap-orchestration.md](./2026-09-18-wave7-roadmap-orchestration.md) - partial-deferred 总控:[2026-09-16-partial-deferred-completion.md](./2026-09-16-partial-deferred-completion.md)