3 Commits

Author SHA1 Message Date
姚章浩 5b65ed9579 docs: 正本与 Runbook/接入文档口径同步(测试语义、CI-CD 分离、门禁唯一入口、必需检查清单)
按草案逐条落到正本,并把三处已知错误的口径改回:

① 测试语义:删掉"单测跑的是构建产物,不是源码"这条被过度推广的说法。
   只有"跑产物"的套件(端到端 / 契约 / 产物自检)才必须排在构建之后;
   go test 自己编译测试程序、pytest 直读源码、vitest 默认也跑源码。
   写错这条的代价是给每个套件加假依赖、拖慢门禁并制造假故障。T8 同步改。
② CI 与 CD 分离:触发表删掉"推默认分支 → 自动部署测试环境",作业划分表删掉 deploy:test 行,
   §4.6 标注为"项目自己的 CD、不属于通用 CI",速查表同步。
③ 门禁入口:统一为 make verify(名字可不同,但 AGENTS/Runbook/CI 必须指同一个),
   §3.1、§8 清单、§9 速查表一致。
④ 新增 §4.8「必需检查清单与结果口径」:10 项必需检查的判据表 + 三条结果口径
   (失败即停但汇总照做、not_run/skipped 不算过、汇总故障不能报绿),
   以及预览/通知作为旁路的规则。
⑤ 接入文档:修掉"直推也拦得住"这句错口径,并写明接入器不再自动合并、
   --merge-pr 会先核对状态;试点记录里那一步标注为"当时的自动合并行为已改"。
⑥ 03/04/05 里的同源表述一并同步(生成物 jobs 与假成功占位的判据)。

验证:本批 18 处精确替换在脚本里逐处断言"恰好命中 1 次"(DRY-RUN 先过一遍再应用);
替换后全仓 grep 复查,旧口径只在"说明它已被改掉"的上下文里出现。
2026-10-12 00:12:06 +08:00
姚章浩 b87a102e34 fix(branch): 分支与评审口径改回原稿 —— main 直推,PR 只是建议
问题:我把原稿 §1.1 的「**所有改动直接进 main**」丢掉了,另外加了三条原稿没有的
口径,还全程以"正本 §1.x"的名义引用,没标出这是我加的:
  ① §1.2「业务代码必须 PR、高风险路径必须异人评审」
  ② §1.3「main 必须设分支保护:禁直推 + 必须 PR + 必须状态检查通过」
  ③ 把分支保护列进 03 的 P0 并顺手在一个仓上开了
后果是实打实的:kg 的 main 被锁成禁直推,使用者"本地 main 攒一批再推"的习惯
被迫改成走 PR —— 被规范的名义逼着换了工作方式。

改法(按原稿口径恢复):
- §1.1 恢复「所有改动直接进 main」;需要评审时才开短命分支 + PR
- §1.2 改成「什么时候开 PR(**建议**,不是门禁)」,并写明早期版本这么错过,
  防止下一个人"顺手加严"
- §1.3 改成「分支保护:**默认不开**」,写清它容易被忽略的代价:
  「必须状态检查通过」只门控 PR 合并,**直推 main 时管不住**(CI 推完再跑)
- 03 第 1 项 → 「已定:默认不开」;05 应用机制 / 06 接入文档 / new-project.sh 同步
- scripts/adopt-existing.py:改成 **--with-protection 才动保护**(原来是 --no-protection
  才不动,默认开)——默认值反了这本身就是在替使用者做决定
- 技能 eng-standards 同步(代理真正读到的是它,不同步等于改了文档没用)

平台侧:kg 的分支保护已 DELETE;7 个仓 branch_protections 全部为 []

验证:py_compile 通过;DRY-RUN 默认输出"默认不开";加 --with-protection 才出现保护计划;
正本仓已无"必须走 PR / 禁止直接推送 / 必须设分支保护"等旧措辞。
2026-10-10 18:04:21 +08:00
姚章浩 cb5985ff9e feat(apply): 应用机制 + 新工程生成器,让规范默认生效
问题:规范此前只是文档,只有"有人去读"一个渠道 —— 实测 7 个仓 0 个有
AGENTS.md 指针、分支保护全空,起新工程时不会自动带上规范。

落地三件:
- scripts/new-project.sh:一条命令生成 9 个默认合规文件(提交闸门、CI、
  本地门禁、指针、提交规范 docs)。已端到端测过:空目录成功、非空拒绝、
  生成物 YAML 合法、无构建入口时门禁 exit 1(不静默通过)、默认分支 main。
- templates/ 收进 ci_gate.py / ci_report.py 的逐字节副本(cmp 校验通过),
  正本仓自此自包含,生成器不再依赖别的仓。
- 05-应用机制.md:写清 Hermes 的实际注入机制与两个必须避开的坑
  (每会话只加载一个上下文文件且有 20k 上限;不要把规则放 ~/.hermes/AGENTS.md
  —— 它只在 cwd 恰好是 ~/.hermes 时加载)。
- README / 03 加索引与交叉引用。

顺带修一个自己踩的坑:生成出来的 scripts/verify.sh 日志夹具只建不删,
正是正本 §3.2-5 自己写的陷阱($TMPDIR 会攒到几万条)。改成成功时删除、
失败时保留并打印路径。
2026-10-10 14:44:50 +08:00