docs(收口机制批): 台账 499 条入档 + 豁免面补 .qoder(本机 harness 配置不入 git,走 worktree 带不进去)

This commit is contained in:
DKChan committed 2026-10-15 22:33:37 +08:00
1 parent 20f4a7dc01
commit 28265773af
2 files changed
+4 -2

No files matched your search

+3 -1
View File
@@ -16,7 +16,7 @@
- **工程路线图**:根目录 `roadmap.md`(里程碑时间线的权威;实时状态看下方快照节)
## 当前状态快照(收口批先更新本节,再追加状态记录;≤10 行)
- **更新于**:2026-10-15(迭代 28 与规则文件审计批均已入库,本节随后由 active.md 退役清理批换代——见状态记录 498)。
- **更新于**:2026-10-15(迭代 28 与规则文件审计批均已入库;本节由 active.md 退役清理批换代,收口机制批 499 待发令合回)。
- **最新闸态**:迭代 28 批末冒烟 1125/0、run_all 27 套、probe --click 残留 0、render golden 棋盘×3+菜单 0.00%、doc 三闸与熵增对基线零新增、static_scan S9 归零(S10 存量 125 在文件头清偿批在册);MC 零跑。
- **probe --full 有一件红**:`t17_defer_probe`「关卡画面未出现」,用户已裁为存量红、不阻合并(合并 5b958ff6);根因是探针未隔离带断点的真实存档,修复在未合入的 `gatefix-20261015` 分支。
- **迭代 28 交付**:修好启动时菜单被冒险层盖住的装配顺序,层序收敛为唯一装配合同(散落的两处 `move_child` 删除);boot 链路、九阶段生命周期、启动态菜单 golden 三组验收补全;本批新立硬规则「验收函数无变异红记录不算验收成立」,三处规约落文。
@@ -41,3 +41,5 @@
- **497(2026-10-15,规则文件审计与目录划分批收口)**:对照 Anthropic 与 OpenAI 七个真实仓库 40~330 行的实测密度重整规约——规则文件由 3 份 560 行拆为 7 份 543 行,单文件 150 行硬上限,CLAUDE.md 压到 68 行只留元信息、命令、目录划分、规范导航和一行一条红线;细则按领域归位到 process/test/doc/code/concept 五份规约,反面案例另存案例库不常驻加载。迭代 28 并行落文的变异验证硬规则按新结构重归位(细则在 test-conventions §6)。合并 81c0ee2b,worktree 与分支已清理。
- **498(2026-10-15,active.md 退役清理批)**:按 doc-conventions §10 执行一次状态退役——删除迭代 20~27 的 31 条已完结条目(判据三条齐备:批次已入库、结论已进快照、未决项不指向条目;内容可在 git 历史完整复原),状态记录由 34 条降到 3 条,回到 30 条硬上限内。快照节原为 21 条且整块自我重复(两条「更新于」、两条「批末闸全绿」、两条逐字相同的「迭代 26 交付」),去重换代为 10 条。删掉「项目当前位置」整节——该节滞后于快照与 roadmap,里程碑归 `roadmap.md`、实时进度归快照节。未决面按迭代 27/28 现行待裁与待追认重列,并把三条在途未合入分支登记在册以免被当已入库。本批零代码、零其他文档改动。
- **499(2026-10-15,active.md 收口机制批)**:用户裁定收口检查的触发时机不能挂在"一轮答话结束"上——旧的 Stop 钩子判的是「active.md 内容有没有变」,追加新条目就算变,结构上永远抓不到"没删旧条目";且它比对的还是已废弃路径 `production/session-state/active.md`。实测三份 harness 副本现已全部失效:Qoder 侧快照零份、ZCode 侧没接 Stop 事件、Claude 侧配置为空。改法分两层:机械层 = `tools/audit_active_state.py` 判五条膨胀签名(状态记录条目数超 30、快照行数超 10、条目编号重复、快照整行自我重复、指向 `design/qa`|`design/research` 的死指针),并入 `tools/run_all_gates.sh` 为 08b,由既有合回闸回执强制,不另立第二份闸清单;语义层 = `active-closing` 技能,规定用户问「任务是否结束」时先跑闸、按 §10 三判据逐条核对并删除、报删除清单,然后才回答。变异验证:对换代前的 34 条版本报 5 项红(连 472/477/481/494 撞号与 6 处报告死指针一并抓出),对退役后的 3 条版本报绿。钩子副本收敛为单一事实源:`.qoder/settings.json` 改指 `.zcode/hooks/worktree-guard.sh`,该脚本加 `QODER_PROJECT_DIR` 兼容并把 `.qoder/` 纳入豁免面(gitignored 配置走 worktree 带不进去),`.qoder/hooks/` 三份副本删除。守卫五例实测:主区改 tracked 文档拦、改 active.md 放行、改 .qoder 放行、主区 commit 拦、无全量回执的 merge 拦。**待发令合回 master**(分支 `active-gate-20261015`,全量闸由用户自跑)。
+1 -1
View File
@@ -11,7 +11,7 @@
1. **开工**:每批次先建独立 worktree:`git worktree add ../g-plan2-<任务名> -b <任务分支>`;所有改动与验证都在 worktree 内进行(未跟踪文件不会出现在新 worktree,需手工搬运)
2. **收尾**:迭代 loop 批次验证全绿(冒烟+场景探针)后在主工作区 `git merge --no-ff <任务分支>`,再 `git worktree remove`+删分支;合并前先看 active.md 尾部状态记录,防并行会话撞号/漏捎带;收口按 doc-conventions 第 10 节退役规则删除已完结条目。非 loop 批次默认收口不跑闸(两入口铁规),用户点名或当场问
3. **豁免面**:仅根目录 `active.md`(会话收口)与 `.zcode/`(钩子配置)允许主工作区直改;其余一律走 worktree,主工作区 git commit 被钩子拦截
3. **豁免面**:仅根目录 `active.md`(会话收口)、`.zcode/`(钩子与配置,入库)与 `.qoder/`(本机 harness 配置,gitignored 不入 git,走 worktree 反而带不进去)允许主工作区直改;其余一律走 worktree,主工作区 git commit 被钩子拦截
4. 本铁律由 PreToolUse 钩子 `.zcode/hooks/worktree-guard.sh` 强制兜底;钩子只约束 agent,用户手工改动不受限
## 2. 三段开发流程