Skip to content

Commit b7e335e

Browse files
authored
fix(rules): 铁律对齐分级验证制——L 先红后绿/M 绿灯/S 不创建测试,一刀切强制测试定为违规 (#26)
1 parent 5fa1dd5 commit b7e335e

4 files changed

Lines changed: 110 additions & 6 deletions

File tree

‎rules/behavior.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
- **防什么**:完成形式上的步骤但没解决问题
2929
- **触发**:开始任何非平凡任务前
30-
- **做什么**:先定义成功标准和验证方法;bug fix 先写复现测试;重构前后测试必须通过
30+
- **做什么**:先定义成功标准和验证方法(验证强度按 brief 复杂度评级,见 `norms/tdd-verification.md`;L 级 Bug 修复须先写复现测试);重构前后测试必须通过
3131
- **验收**:任务结束时展示验证结果,不是展示做了哪些步骤
3232

3333
## 5. 不要盲目同意

‎rules/iron-laws.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
> 在项目指令文件(CLAUDE.md / AGENTS.md)已有规则基础上,非协商,违反即阻断。
44
5-
## 1. 不要跳过 TDD
5+
## 1. 不要跳过与复杂度匹配的验证
66

77
- **防什么**:实现偏离需求、回归不可检测
8-
- **触发**:新功能、复杂重构、Bug 修复
9-
- **做什么**:先写能复现失败的测试 → 确认失败 → 写最小实现 → 确认通过
10-
- **阻断**:没有失败测试记录就开始写实现的,视为未开始
8+
- **触发**:任何代码/行为变更
9+
- **做什么**:按 brief 复杂度评级的验证强度执行(`norms/tdd-verification.md` 分级制):**L**——完整 TDD,先写能复现失败的测试确认红,再最小实现确认绿;**M**——写测试确认绿灯,不强制先红;**S**——不创建测试文件,执行结构、引用、残留扫描。评级在 propose 确认时批准;实现期风险升/降级先修订 brief 再继续。
10+
- **阻断**:验证强度与评级不符视为未开始;对 S/M 级需求一刀切强制测试同样违规(过度测试 review 阻塞)
1111

1212
## 2. 不要声称完成而未验证
1313

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
{
3+
"schema": "shadow-dev/v1",
4+
"name": "20261005-fix-iron-laws-tiered-validation",
5+
"type": "fix",
6+
"scope": "shadow-dev-workflow/rules",
7+
"status": "reviewed",
8+
"baseBranch": "main",
9+
"branch": "fix/20261005-fix-iron-laws-tiered-validation",
10+
"files": [
11+
"rules/behavior.md",
12+
"rules/iron-laws.md",
13+
"shadow-docs/changes/20261005-fix-iron-laws-tiered-validation/brief.md",
14+
"skills/shadow-dev-apply/SKILL.md"
15+
],
16+
"github": {
17+
"repository": "stack-wuh/shadow-dev-workflow",
18+
"issue": 25,
19+
"issueUrl": "https://github.com/stack-wuh/shadow-dev-workflow/issues/25",
20+
"pullRequest": null,
21+
"pullRequestUrl": null
22+
},
23+
"review": {
24+
"conclusion": "passed",
25+
"verifiedCommit": "b1bbe74c91d3afed5664167a5c2a7548225a2d95",
26+
"verifiedAt": "2026-10-06T16:10:26.170Z"
27+
},
28+
"workflow": {
29+
"operation": null,
30+
"checkpoint": "issue:25",
31+
"planHash": "ee59c3c2982bb6c2605e94dd1c15cc87e2509d0d6c69df4b359c6173529c920d",
32+
"updatedAt": null,
33+
"lastError": null,
34+
"issuePlan": {
35+
"title": "[fix] 铁律对齐分级验证制——消除一刀切强制 TDD 残留",
36+
"titleRaw": "铁律对齐分级验证制——消除一刀切强制 TDD 残留",
37+
"supplement": "Brief: shadow-docs/changes/20261005-fix-iron-laws-tiered-validation/(S 级,rules 层与 norm 分级制逐字对齐)",
38+
"body": "## 动机\n20260925 起 norm 修订为 S/M/L 分级验证制(经用户批准),但 `rules/iron-laws.md` §1 与 `rules/behavior.md` §4 未随改,仍保留「新功能、复杂重构、Bug 修复 → 先写失败测试」的一刀切旧铁律。rules/ 是注入会话的最高优先行为层,AI 实际按它执行——导致 S/M 级需求仍被强制先红后绿,直接违背用户明确要求「不是所有需求都需要 TDD、都需要先写 test 文件」。本变更是修订遗漏的修复,不是新决策。\n\n## 引用规范\n- `norms/tdd-verification.md`\n - 当前结论: 分级制——S 不创建测试(diff 走查+扫描)/ M 绿灯测试 / L 完整 TDD 先红后绿;S 级过度测试同样阻塞;实现期升降级须先修订 brief\n - 适用 scope: 三处残留措辞的逐字对齐目标\n\n## 决策\n- **选型:** 原位改写三处残留,与 norm 分级表逐字对齐,并把「一刀切强制测试 = 过度测试违规」写入阻断条款\n- **对比方案:** 删除 rules/§1 整体改为引用 norm——rules/ 是用户直读的独立行为层,删除损失可发现性;改写保留结构\n- **理由:** 渐进式治理——只修正与分级制直接冲突的措辞与 apply description 字样,不顺手重写其他铁律\n\n## 任务\n### Phase 1\n- [ ] 改写 iron-laws §1——`rules/iron-laws.md` — 「不要跳过 TDD」→「不要跳过与复杂度匹配的验证」,触发/做什么/阻断按 L/M/S 重写\n- [ ] 对齐 behavior §4——`rules/behavior.md` — 「bug fix 先写复现测试」改为 L 级条件化\n- [ ] 清理 apply description——`skills/shadow-dev-apply/SKILL.md` — 「执行 TDD 与依赖调度」→「执行分级验证与依赖调度」\n\n## 补充\nBrief: shadow-docs/changes/20261005-fix-iron-laws-tiered-validation/(S 级,rules 层与 norm 分级制逐字对齐)\n\n完整 brief:shadow-docs/changes/20261005-fix-iron-laws-tiered-validation/brief.md\n\n<!-- shadow-dev:issue-metadata {\"name\":\"20261005-fix-iron-laws-tiered-validation\",\"type\":\"fix\",\"scope\":\"shadow-dev-workflow/rules\",\"status\":\"proposed\",\"branch\":null,\"baseBranch\":\"main\",\"briefPath\":\"shadow-docs/changes/20261005-fix-iron-laws-tiered-validation/brief.md\",\"cliVersion\":\"1.4.0\",\"prUrl\":null,\"issueNumber\":null} -->\n",
39+
"labels": [
40+
"fix"
41+
]
42+
},
43+
"release": {
44+
"files": [
45+
"rules/behavior.md",
46+
"rules/iron-laws.md",
47+
"shadow-docs/changes/20261005-fix-iron-laws-tiered-validation/brief.md",
48+
"skills/shadow-dev-apply/SKILL.md"
49+
],
50+
"message": "fix(rules): 铁律对齐分级验证制——L 先红后绿/M 绿灯/S 不创建测试,一刀切强制测试定为违规",
51+
"title": "fix(rules): 铁律对齐分级验证制——消除一刀切强制 TDD",
52+
"body": "Closes #25\n\n完整 brief:shadow-docs/changes/20261005-fix-iron-laws-tiered-validation/brief.md"
53+
}
54+
},
55+
"knowledge": {
56+
"action": "无需变更",
57+
"target": null,
58+
"reason": "rules 层与已批准的 norm 分级制逐字对齐,治理载体自身修复,无新长期事实"
59+
}
60+
}
61+
---
62+
63+
# 铁律对齐分级验证制——消除一刀切强制 TDD 的残留
64+
65+
## 动机
66+
67+
20260925 起 norm 修订为 S/M/L 分级验证制(经用户批准),但 `rules/iron-laws.md` §1 与 `rules/behavior.md` §4 未随改,仍保留「新功能、复杂重构、Bug 修复 → 先写失败测试」的一刀切旧铁律。rules/ 是注入会话的最高优先行为层,AI 实际按它执行——导致 S/M 级需求仍被强制先红后绿,直接违背用户明确要求「不是所有需求都需要 TDD、都需要先写 test 文件」。本变更是修订遗漏的修复,不是新决策。
68+
69+
## 复杂度评级
70+
71+
- **评级:** S
72+
- **理由:** 纯行为纪律文档措辞对齐,零运行时契约;分级方向已由 norm 修订经用户批准,本变更仅消除矛盾残留
73+
- **期望验证深度:** code-read
74+
75+
## 引用规范
76+
77+
- `norms/tdd-verification.md`
78+
- 当前结论: 分级制——S 不创建测试(diff 走查+扫描)/ M 绿灯测试 / L 完整 TDD 先红后绿;S 级过度测试同样阻塞;实现期升降级须先修订 brief
79+
- 适用 scope: 三处残留措辞的逐字对齐目标
80+
81+
## 决策
82+
83+
- **选型:** 原位改写三处残留,与 norm 分级表逐字对齐,并把「一刀切强制测试 = 过度测试违规」写入阻断条款
84+
- **对比方案:** 删除 rules/§1 整体改为引用 norm——rules/ 是用户直读的独立行为层,删除损失可发现性;改写保留结构
85+
- **理由:** 渐进式治理——只修正与分级制直接冲突的措辞与 apply description 字样,不顺手重写其他铁律
86+
87+
## 任务
88+
89+
### Phase 1
90+
- [x] 改写 iron-laws §1——`rules/iron-laws.md` — 「不要跳过 TDD」→「不要跳过与复杂度匹配的验证」,触发/做什么/阻断按 L/M/S 重写
91+
- [x] 对齐 behavior §4——`rules/behavior.md` — 「bug fix 先写复现测试」改为 L 级条件化
92+
- [x] 清理 apply description——`skills/shadow-dev-apply/SKILL.md` — 「执行 TDD 与依赖调度」→「执行分级验证与依赖调度」
93+
94+
## 结果
95+
96+
- 实际耗时: 约 10 分钟(压缩流程单授权)
97+
- 验证: code-read——diff 走查 3 文件 +6/−6 与声明一致;全仓扫描确认一刀切措辞清零(norms L 级表格语境保留属预期);扫描同时发现 hotfix skill 6 处同款强制(复现测试先红后绿非协商),因 files 清单锁定,转堆叠变更 20261005-fix-hotfix-tiered-validation 处理
98+
- 验证: —
99+
100+
## 知识评估
101+
102+
- **预期影响:** 无需变更
103+
- **候选卡片:** 无
104+
- **理由:** 治理载体(rules/norms)自身对齐既有批准结论,不产生新长期事实

‎skills/shadow-dev-apply/SKILL.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: shadow-dev-apply
3-
description: 开始执行 — 按 brief 的 Phase 执行任务,加载 active Knowledge,执行 TDD 与依赖调度。触发词:开始执行、apply、实现、写代码。
3+
description: 开始执行 — 按 brief 的 Phase 执行任务,加载 active Knowledge,执行分级验证与依赖调度。触发词:开始执行、apply、实现、写代码。
44
---
55
# Shadow Dev Apply — 执行
66

0 commit comments

Comments
 (0)