logo
0
0
WeChat Login

PR-F:Q3 周期启动——`diag:` commit type 正式化 + 信号欺骗家族分类(轮次 15-a)#45

Merged
created 2 weeks ago
main
feature/q3-diag-signal-deception
Edit
OverviewCommits
2
Files changed
3
Attachments

动机(Why)

PR-E 合入后发现两项沉淀的自然延伸——趁记忆新鲜一次做完,关闭目标项目 Q3 周期候选 T-Q3-01 + T-Q3-02

  1. "诊断 PR"作为 PR 类型应正式进入 git-conventions,而非只在 LESSONS B14 中被隐式描述
  2. B12/B13/B14 三条反模式共享相同认知失误结构(把表面信号当真相),应显式归为"家族"而不是独立条目

两件事都规模小但价值高——前者让"先诊断再修"成为可标记的 commit 行为;后者让 LESSONS 反模式累计到 21 条后具备了分类组织维度。

Q3 周期的启动形态(新观察):不同于 Q2 启动(迁移演练触发)或 Q2 收尾后的"业务反哺"(PR-D/PR-E),本 PR 是纯规则层整理——从前周期沉淀里提炼结构。这可能是第 3 种"周期启动姿态"。

变更清单(What)

2 个 commits · 3 文件 / +113/-1 行

  • commit 1 docs(rules) 0b922f0:规则层实质修订(2 文件 / +42)
  • commit 2 docs(meta) fe45a4c:CHECKPOINT §四 轮次 15-a 档案(1 文件 / +71/-1)

改动 1:git-conventions.md §2.2 新增 diag: commit type

Type 类型表第 9 行新增:

  | `chore` | 构建/工具链变更 | `chore(docker): 更新 Dockerfile` |
  | `perf` | 性能优化 | `perf(query): 优化用户列表查询` |
+ | `diag` | **诊断采集**(不修 bug 不加功能,仅为收集信息)| `diag(ci): 在 CI stage 加环境变量诊断输出` |

5 条特殊约束(派生自 LESSONS §二 B14 正模式"先加诊断 PR 采集真相再基于实证修"):

  • 【必须】只含诊断性输出代码(echo / printf / log.debug / 工具版本打印),不修业务逻辑
  • 【必须】PR body 明确标注"本 PR 不修问题,只采集信息"
  • 【必须】必须有后续 fix: / feat: PR 闭环——长期留诊断输出是噪音
  • 【推荐】合入 fix PR 时同步移除或收敛诊断块(改为环境变量触发)
  • 【推荐】典型场景:CI 平台行为未知、第三方 API 实际响应未知、新依赖版本行为变化

适用决策:连续 2 次 fix: 未解决同一问题时,强制切换到 diag: 模式(对抗 B14 "未经实证推断平台行为")。

改动 2:LESSONS.md §二 新增"反模式家族分类"前言小节

在 §二 开头 A/B 组表格之前插入新小节(不动任何已有条目):

信号欺骗家族(Signal Deception Family)首次成型

成员被误读的信号真相所在
B12UI 视觉(JaCoCo HTML 色块)机器可读 CSV/JSON
B13CI pipeline status: successStage 耗时下限
B14官方文档单个示例实测诊断输出

共同特征:把容易看到的信号当作难以验证的真相

共享正模式:所有自动化信号必须配"实证校验"——状态码之外看耗时、UI 之外读机器可读源、文档之外跑诊断。

家族成员新增规则:发现新反模式时先问"它是否共享'把表面信号当真相'的结构"。

未来家族候选(留作观察,不强求立即成型):

  • 幂等跳过家族exit 0 + WARNING / @pytest.skip / try/catch ignore
  • 配置幻觉家族@Transactional 失效 / CORS / 环境变量拼写错 / feature flag

验证证据(How verified)

本地 9/9 CI stages 全绿 + 0 lint

规则自举第 5 次实证——稳态连续放行

PR涉及文件结果
1#38governance/retrospective-sop.md阻塞(日期硬编码)
2PR-Cgovernance/migration-dryrun-report.md阻塞(商标/日期)
3PR-Dscaffold/SKILL.md阻塞(项目专属)
4PR-ELESSONS/testing-standards/cicd-pipeline放行
5PR-F(本)git-conventions + LESSONS放行

5 次实证 = 3 阻塞 + 2 放行——连续 2 次合规修改放行,证明规则自举稳态运行:守门员不是"变松了",而是团队稳态地用抽象术语写规则,不再依赖守门员频繁提醒。

关键指标变化

指标PR-E 后PR-F 后变化
Conventional Commits type 种类89(+diag)新增
LESSONS §二 结构2 组(A/B)2 组 + 1 家族分类前言新增维度
信号欺骗家族成员3(零散)3(成型为家族)从零散 → 成组
反模式条目总数2121(不新增)本 PR 只重组不加条目
#16 抽象化残留45/045/0零回归

影响面(Impact)

"家族"作为反模式的组织单位——规则体系自我演化

反模式从 0 累积到 21 条时,单纯字母编号(A7/B14)难以看出相似性。家族分类提供横切维度:

  • 发现新反模式时快速比对是否属于已知家族(减少重复命名)
  • 设计防御手段时按家族批量处理(一个正模式覆盖多个反模式)
  • 培训新人时用家族作为讲述单位(比单条记忆成本低)

这是 LESSONS 从"条目列表" → "分类 + 条目"的结构升级——规则体系自我演化的一次实证。

关闭的待办

  • ✅ T-Q3-01:git-conventions §4 新增 diag: commit type(→ 实际落在 §2.2 Type 类型表,位置更自然)
  • ✅ T-Q3-02:LESSONS §三 新增"信号欺骗家族"分类(→ 实际落在 §二 前言小节,§三是"工程资产清单"不适合放分类)

新增待办(可选,不强求立即做)

  • T-Q3-05:观察未来是否有新反模式自然归入"幂等跳过家族"或"配置幻觉家族"——达到 3 个成员再成型
  • T-Q3-06workshop-share.md 候选第 16 种模式"反模式的家族化演化"——让"规则体系如何自我升级"成为可分享的经验

仍悬而未决(与本 PR 无关)

  • T-Q3-03:对外分享新模式"CI 平台坑点实证清单"(输出向)
  • T-Q3-04:目标项目前端 Playwright E2E(业务向)

本 PR 不动的事

  • 不新增反模式条目(21 条保持)
  • 不做 T-Q3-03 / T-Q3-04(不同性质,不强求一次吃完,避免把 Q3 变成 Q2 尾巴)
  • 不动 workshop-share.md(T-Q3-06 留给未来)

Refs

  • 父事件:PR-E(#44)合入后的自然延伸;LESSONS §二 B14 的正模式升级为 commit type 层面
  • 关联:
    • .codebuddy/rules/git-conventions.md §2.2diag: 新增)
    • LESSONS.md §二(反模式家族分类前言 + 信号欺骗家族成型)
    • CHECKPOINT §四 轮次 15-a(Q3 周期启动档案)
    • meta-principles.md §原则 4(抽象化——家族分类是"规则组织"维度的抽象化升级)
  • 下游:T-Q3-05 观察新家族候选、T-Q3-06 workshop-share 第 16 种模式
is using the merge method to merge into8a450aa7
合并来自 feature/q3-diag-signal-deception 的合并请求 #45

Successfully merged and closed

branch can be safely deleted
Reviewer
None yet
Assignee
None yet
Label
None yet
Participant