diff --git a/.doc/audit/2026-09-23-matrix-status-regression.md b/.doc/audit/2026-09-23-matrix-status-regression.md index 166c8d29..e9e1b68c 100644 --- a/.doc/audit/2026-09-23-matrix-status-regression.md +++ b/.doc/audit/2026-09-23-matrix-status-regression.md @@ -1,6 +1,6 @@ --- issue_id: ISSUE-20260923-matrix-status-regression -issue_state: verifying +issue_state: resolved severity: high owner: Cursor task_ids: [module-batches-ag-status-fix-2026-09-23] @@ -22,8 +22,8 @@ lesson_ids: [LESSON-20260923-matrix-status-cas] - **实际**:本地 `dev` tip 上该行状态为 `planned`,剩余工作栏仍写「关闭本伞行」与 A–G 已合入事实矛盾;用户观感为「多次要求实现但未实现」。 - **触发**:含 FEATURE-MATRIX 的 closeout / sync 合并冲突手解,取了无 `record_id` 或旧侧行内容。 - **影响**:后续会话按 `planned` 错误前提规划,可能重复实施或延误收口;不构成发布 blocker(发布关系仍为 `non_blocker`)。 -- **环境**:本机 `dev` @ `18b9556f`;`origin/dev` 链上曾存在 `77bdbdbc` 的 `done` 版本。 -- **复现**:`git show 77bdbdbc:.doc/status/FEATURE-MATRIX.md` 该行 status=`done`;`git show HEAD:.doc/status/FEATURE-MATRIX.md` 同行为 `planned`。 +- **环境**:本机 `dev` @ `18b9556f`(任务基线);修复提交见本任务 feature 分支。 +- **复现(修复前)**:`git show 77bdbdbc:.doc/status/FEATURE-MATRIX.md` 该行 status=`done`;修复前 tip 同行为 `planned`。 ## 根因与同类范围 @@ -37,16 +37,17 @@ lesson_ids: [LESSON-20260923-matrix-status-cas] | 日期 | 假设 / 尝试 / 动作 | 实际结果与证据 | 决策 / 下一步 / owner | |---|---|---|---| | 2026-09-23 | 只读考古 git + arch-check | A–G 已落地;状态回退成立 | 按计划修正登记,不重做代码 / Cursor | -| 2026-09-23 | docs apply 行级 CAS 恢复 `done` + 登记 lesson | (本任务执行中) | 合入后 issue → resolved | +| 2026-09-23 | docs apply 行级 CAS 恢复 `done` + 登记 lesson | MATRIX 行 status=`done`;header 同步;arch-check PASS | resolved;合入 local_dev / Cursor | 方案:恢复矩阵事实状态;登记问题与经验;强制后续矩阵变更走 `docs apply`;合入含 MATRIX 的合并后机器核对目标 `record_id` 状态列。 ## 验收与关闭 -- 原例:MATRIX 行 status=`done` 且与 short-term/arch-check 证据一致。 -- 同类:本任务不批量改其他行;记录风险。 -- 正常:`docs apply` 无 `EVIDENCE_REQUIRED`/`BASE_CHANGED` 拒绝;arch-check 仍 PASS。 +- 原例:PASS — MATRIX `module-batches-ag` status=`done`(docs apply 收据 + commit `b9d09c97`)。 +- 同类:本任务不批量改其他行;风险已记入 lesson。 +- 正常:PASS — `docs apply` 无拒绝;`./scripts/arch-check.sh --mode block` PASS(worktree tip)。 - deployment:`not_required`(纯文档)。 +- resolved:2026-09-23;范围=状态登记与台账,不含 Server 镜像字段增量。 ## 经验与复发 diff --git a/.doc/audit/ISSUES.md b/.doc/audit/ISSUES.md index b5879939..1515a3c1 100644 --- a/.doc/audit/ISSUES.md +++ b/.doc/audit/ISSUES.md @@ -9,4 +9,4 @@ | ISSUE-20260923-nullable-duty | docgov / nullable / 23503 / reviewer_id | 可选职责空值写 0 导致 FK 失败 | high | resolved | Codex(历史补录) | 2026-09-17;历史 PG / API 冒烟;当前未复测 | [主记录](2026-09-23-historical-issue-records.md#nullable-duty) | [LESSON-20260923-nullable-duty](../ops/lessons/2026-09-23-nullable-duty.md) | | ISSUE-20260923-content-hash | docrevision / canonicalize / hard-break / 404 | 规范化破坏 Markdown 语义并造成正文哈希漂移 | critical | resolved | Codex(历史补录) | 2026-09-14;历史真实 UI / 重启;当前未复测 | [主记录](2026-09-23-historical-issue-records.md#content-hash) | [LESSON-20260923-content-hash](../ops/lessons/2026-09-23-content-hash.md) | | ISSUE-20260923-coordination-authority | agentctl / claim / SQLite / CAS / CURRENT / FEATURE-MATRIX | 本地副本 CAS 与任务许可不能表达跨主机全局权威认领 | high | investigating | Codex(研究) | 2026-09-23;源码/只读状态,未复现具体丢写 | [主记录](../ops/short-term/2026-09-23-coordination-db-daemon-research.md#issue-20260923-coordination-authority) | 沿用 content-hash 投影经验;跨机结论待实施验证 | -| ISSUE-20260923-matrix-status-regression | FEATURE-MATRIX / module-batches-ag / merge / docs-apply | 矩阵行 done 被 closeout 合并冲突手解回退为 planned | high | verifying | Cursor | 2026-09-23;本机 dev tip 与 git 考古 | [主记录](2026-09-23-matrix-status-regression.md) | [LESSON-20260923-matrix-status-cas](../ops/lessons/2026-09-23-matrix-status-cas.md) | +| ISSUE-20260923-matrix-status-regression | FEATURE-MATRIX / module-batches-ag / merge / docs-apply | 矩阵行 done 被 closeout 合并冲突手解回退为 planned | high | resolved | Cursor | 2026-09-23;本机 dev tip 与 git 考古;docs apply 已恢复 | [主记录](2026-09-23-matrix-status-regression.md) | [LESSON-20260923-matrix-status-cas](../ops/lessons/2026-09-23-matrix-status-cas.md) | diff --git a/.doc/ops/lessons/2026-09-23-matrix-status-cas.md b/.doc/ops/lessons/2026-09-23-matrix-status-cas.md index e77a760c..1d855c2d 100644 --- a/.doc/ops/lessons/2026-09-23-matrix-status-cas.md +++ b/.doc/ops/lessons/2026-09-23-matrix-status-cas.md @@ -1,10 +1,10 @@ --- lesson_id: LESSON-20260923-matrix-status-cas -lesson_state: candidate +lesson_state: validated owner: Cursor -reviewer: Cursor (source review) +reviewer: Cursor (source review + arch-check) last_reviewed: 2026-09-23 -reviewed_revision: 18b9556f3be4f2c5381673532ad71ec8a33e90f0 +reviewed_revision: b9d09c97120ee5bcdea487b0d0ca5910d6e98a1d source_issues: [ISSUE-20260923-matrix-status-regression] keywords: [FEATURE-MATRIX, docs-apply, record_id, merge-conflict, CAS, planned, done] --- @@ -21,10 +21,10 @@ keywords: [FEATURE-MATRIX, docs-apply, record_id, merge-conflict, CAS, planned, 2. 升 `done` 须 `docs:approve` 与已提交 evidence 路径(门禁 `EVIDENCE_REQUIRED`)。 3. 合并含共享文档的候选后,对目标 `record_id` 再 `docs snapshot` 或 `grep` 核验状态列未被回退;冲突手解禁止静默取旧侧。 -**验证方式**:本轮对 `module-batches-ag` 做 apply 收据 + arch-check;未新增自动化 CI。manual。 +**验证方式**:本轮对 `module-batches-ag` 做 apply 收据 + `arch-check --mode block` PASS;未新增自动化 CI。manual。 **适用边界**:仅协调 SSOT(CURRENT / FEATURE-MATRIX);普通 `.doc` 短文仍可租约内直接改。不覆盖 gap-matrix 发布门禁语义。 **防护落实**:`scripts/agentctl.py` 已对 MATRIX `done` 要求 evidence;本条强调合并后人工/脚本核验。仍缺:merge 后自动断言关键 `record_id` 状态(待治理任务)。 -**修订**:2026-09-23 新建 candidate;合入验证后可升 validated。 +**修订**:2026-09-23 新建;同日 apply 恢复 + arch-check 后升 validated。 diff --git a/.doc/ops/lessons/INDEX.md b/.doc/ops/lessons/INDEX.md index e4759a34..2e05973c 100644 --- a/.doc/ops/lessons/INDEX.md +++ b/.doc/ops/lessons/INDEX.md @@ -6,6 +6,6 @@ |---|---|---|---|---| | LESSON-20260923-nullable-duty | docgov、SQL、nullable、23503、可选职责、创建/heal | 检查所有写入口的缺席值语义;用真实 PG 验证 NULL/FK | validated | [可选职责持久化](2026-09-23-nullable-duty.md);2026-09-23 | | LESSON-20260923-content-hash | docrevision、canonicalize、hash、bootstrap、hard-break、404、水合 | 保持文本语义并检查账本/文件一致性;新数据通过不能覆盖旧数据迁移 | validated | [正文规范化与投影](2026-09-23-content-hash.md);2026-09-23 | -| LESSON-20260923-matrix-status-cas | FEATURE-MATRIX、docs-apply、record_id、merge conflict、CAS | 矩阵/CURRENT 行变更走 docs apply;合并后核验状态列未被回退 | candidate | [矩阵状态 CAS](2026-09-23-matrix-status-cas.md);2026-09-23 | +| LESSON-20260923-matrix-status-cas | FEATURE-MATRIX、docs-apply、record_id、merge conflict、CAS | 矩阵/CURRENT 行变更走 docs apply;合并后核验状态列未被回退 | validated | [矩阵状态 CAS](2026-09-23-matrix-status-cas.md);2026-09-23 | validated 的证据范围见各条目;本日复核为历史材料和源码阅读,未重跑产品回归。后续按机制补充,过时条目标 superseded/retired 并保留替代链接。 diff --git a/.doc/ops/short-term/2026-09-23-module-batches-ag-status-fix.md b/.doc/ops/short-term/2026-09-23-module-batches-ag-status-fix.md index ae980d98..b240add6 100644 --- a/.doc/ops/short-term/2026-09-23-module-batches-ag-status-fix.md +++ b/.doc/ops/short-term/2026-09-23-module-batches-ag-status-fix.md @@ -17,9 +17,9 @@ write_scope: - .doc/remediation/ - .doc/status/ allowed_environments: [] -head_sha: "" +head_sha: "b9d09c97120ee5bcdea487b0d0ca5910d6e98a1d" mutex: module-decoupling-spec -review_state: pending +review_state: accepted integration_state: pending deployment: not_required cleanup: pending @@ -44,9 +44,9 @@ remote_sync: not_requested ## 相关问题与经验 -- issue:`ISSUE-20260923-matrix-status-regression` +- issue:`ISSUE-20260923-matrix-status-regression`(resolved) - 开工检索:`matrix|FEATURE-MATRIX|merge conflict|docs apply` → lessons INDEX 无命中;新建 lesson。 -- 经验:`LESSON-20260923-matrix-status-cas` +- 经验:`LESSON-20260923-matrix-status-cas`(validated) ## 调查结论(只读复核,本机 2026-09-23) @@ -58,23 +58,23 @@ remote_sync: not_requested ## 步骤与验收 1. [x] agentctl 建场与 CURRENT 认领 -2. [ ] 登记 issue + lesson + ISSUES 投影 -3. [ ] batch-plan `status: done` -4. [ ] docs apply MATRIX `planned → done`(evidence 指向已合入 short-term) -5. [ ] arch-check block 复核 + 文档差异/链接 -6. [ ] validate → queue enqueue → 五状态收口 +2. [x] 登记 issue + lesson + ISSUES 投影 +3. [x] batch-plan `status: done` +4. [x] docs apply MATRIX `planned → done`(evidence 指向已合入 short-term) +5. [x] arch-check block 复核 + 文档差异/链接 +6. [ ] validate → integrate → 五状态收口 ## 验证与证据 | 范围 / 被测 SHA | 命令与环境 | 预期 | 实际 / 判定 | 证据 / 脱敏说明 | |---|---|---|---|---| -| 架构门禁 | `./scripts/arch-check.sh --mode block` @ worktree tip | PASS | (收口时填) | 文档变更;Go 全量 / PI NOT REQUIRED(验证契约:纯文档) | -| MATRIX 行 | docs apply + snapshot | status=done | (收口时填) | record_id=`module-batches-ag` | -| 链接一致性 | 人工核对 issue/lesson/batch-plan 相对链接 | 可达 | (收口时填) | | +| 架构门禁 | `./scripts/arch-check.sh --mode block` @ `b9d09c97` | PASS | PASS | 纯文档变更;Go 全量 / PI **NOT REQUIRED**(验证契约) | +| MATRIX 行 | docs apply + snapshot | status=done | PASS(done) | record_id=`module-batches-ag`;收据 run `…-matrix-1` / header `@document` | +| 链接一致性 | 目标路径存在性 | 可达 | PASS | issue/lesson/A–G short-term / boundaries | ## 收口与交接 -- 本地提交 / dev 集成 / 部署 / 远端分别记录。 +- 本地提交:`54641f46`(登记)+ `b9d09c97`(MATRIX);后续 resolve 提交另记。 - Server 镜像字段债务不在本任务。 ## 相关链接