@routerhub/agent-rules 1.5.218 → 1.5.219
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/package.json +1 -1
- package/skills/loop-review/SKILL.md +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
所有对 @routerhub/agent-rules 的重大更改都会记录在这个文件中。
|
|
4
4
|
|
|
5
|
+
## [1.5.219] - 2026-09-16
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **`loop-review` 取消「最大轮数(默认 5 轮 / 深度循环 8 轮)」上限——循环结束只由「性质」决定,不再由「跑了几轮」决定**:起因是用户提出「循环没必要设这个上限的数,按『必须修复的修复就行,其他不必须修复的走 Won't fix』就行」。原规则把「达到最大轮数仍有值得修的问题 → 停止循环,把剩余问题交给用户决定」当兜底,但这条兜底与循环真正的收敛机制是**打架**的:循环的收敛出口是「本轮没有任何必须修的新问题」,而 bot 每轮全量重读 diff、总能再挖出新层次(上一轮漏报的角落 / 修复引入的回归 / 新代码自带的新毛病)——所以「第 N 轮还有必须修的问题」完全可能只是**真的还有必须修的问题**,此时按轮数停下,等于把仍然必须修的问题挂着交出去;反过来,数字上限还会诱导一条更危险的歪路:为了「跑够轮数就收工」,把真问题降级成口味问题 Won't fix 掉。
|
|
10
|
+
- **现在的判据**:`skills/loop-review/SKILL.md` 步骤 6 删除「达到最大轮数」条目并显式写明「**循环不设轮数上限——结束只看『这一轮有没有必须修的问题』,不看『已经跑了几轮』**」;步骤 7 开头「循环结束或达到轮数上限后」改为「循环结束后」;「循环终止条件」表格删掉「达到最大轮数」一行;铁律把原「必须设最大轮数**和等待超时**」拆开——轮数上限取消,**等待 bot 出新 review 的 15 分钟超时保留**(它管的是「不要干等」,不是循环上限)。
|
|
11
|
+
- **同时加了一条反向约束**:禁止为了尽快收工把真问题降级成口味问题 Won't fix 掉——数字上限一去,「必须修的都修完」就成了唯一的收敛出口,这条歪路必须堵住。
|
|
12
|
+
- **为什么去掉上限后不会无限循环**:真正会无限冒的只是「口味 / 过度设计」那类,而它们每轮都被 Won't fix 回复 + 落盘到 `decisions/` 挡住、进不了「必须修」,所以「必须修的清零」这一条件迟早成立、且不会被轮数提前打断。
|
|
13
|
+
|
|
5
14
|
## [1.5.216] - 2026-09-14
|
|
6
15
|
|
|
7
16
|
### Added
|
package/package.json
CHANGED
|
@@ -207,13 +207,14 @@ done
|
|
|
207
207
|
|
|
208
208
|
- **本轮没有任何「值得修」的新问题**(要么 bot 没提新的,要么新问题全是已处理/口味/误报,全部有回复落点)→ 循环结束 ✅,进入步骤 7 收尾
|
|
209
209
|
- **本轮有「值得修」的新问题** → 已修复并回复,回到步骤 5 进入下一轮
|
|
210
|
-
|
|
210
|
+
|
|
211
|
+
⚠️ **循环不设轮数上限——结束只看「这一轮有没有必须修的问题」,不看「已经跑了几轮」。** bot 每轮全量重读 diff,总能再挖出新层次(上一轮漏报的角落 / 修复引入的回归 / 新代码自带的新毛病),**只要它提的还落在「必须修」范围内,就继续修**,禁止因为「都跑到第 N 轮了」就把仍然必须修的问题挂着交出去。循环天然会收敛:真正会无限冒的只是「口味 / 过度设计」那类,而它们每轮都被 Won't fix 回复挡住、进不了「必须修」,所以「必须修的清零」这一条件迟早成立、且不会被轮数提前打断。
|
|
211
212
|
|
|
212
213
|
⚠️ 每轮结束向用户汇报:本轮发现什么、改了什么、拒绝了什么、剩什么。
|
|
213
214
|
|
|
214
215
|
### 7. 收尾汇报
|
|
215
216
|
|
|
216
|
-
|
|
217
|
+
循环结束后,输出汇总报告:
|
|
217
218
|
|
|
218
219
|
```
|
|
219
220
|
循环 review 完成,共 X 轮:
|
|
@@ -228,8 +229,7 @@ done
|
|
|
228
229
|
|
|
229
230
|
| 条件 | 行为 |
|
|
230
231
|
|------|------|
|
|
231
|
-
| 本轮没有任何「值得修」的新问题 | ✅
|
|
232
|
-
| 达到最大轮数(默认 5 轮;用户明确要求深度循环时最多 8 轮) | ⛔ 停止,剩余问题交用户决定 |
|
|
232
|
+
| 本轮没有任何「值得修」的新问题 | ✅ 结束(注意:**不是**「严重度清零」、**也不是**「跑够多少轮」——bot 总会挂着几条我们判断过不值得修的) |
|
|
233
233
|
| 等待新 review 超时(默认 15 分钟) | ⏸ 停止等待,询问用户 |
|
|
234
234
|
| 连续两轮 review 内容完全相同(bot 疑似卡死) | ⛔ 停止,向用户报告 |
|
|
235
235
|
|
|
@@ -242,7 +242,7 @@ done
|
|
|
242
242
|
- ⚠️ **每条 review 建议必须有落点**(修复 commit / Won't fix / 误报回复),禁止静默跳过——不回复 bot 下轮必重提,循环无限。
|
|
243
243
|
- ⚠️ **每轮先确认哪些是上一轮已处理过的**,一律不重复改,直接回复「已修复于 <hash>」。
|
|
244
244
|
- ⚠️ **禁止使用 `[skip ci]` / `[skip review]`**——循环依赖「每次 push 触发 review」,跳过就断了。
|
|
245
|
-
- ⚠️
|
|
245
|
+
- ⚠️ **循环不设轮数上限**:结束只由「本轮有没有必须修的新问题」决定,与轮数无关。**禁止因为「已经跑了好几轮」就把仍然必须修的问题挂着交给用户**;反向同样禁止——为了尽快收工,把真问题降级成口味问题 Won't fix 掉。**等待 bot 返回新一轮 review 的超时保留(默认 15 分钟)**,它管的是「不要干等」,不是循环上限。
|
|
246
246
|
- ⚠️ **已修复的功能性问题单独 commit**,禁止与大量建议级改动混在一起,保证每轮 push 的 diff 可读。
|
|
247
247
|
- ⚠️ **每条 review 修复都必须同 commit 回 PR 对应的 feature 分支并推送远程**,不得只推到 test 分支或只放在工作区不 commit。feature 分支与 test 分支两条线必须同步,缺一不可(详见步骤 3)。
|
|
248
248
|
- ⚠️ **等待 bot 审查期间遵守心跳约定**:超过 1 分钟无输出主动说明在等什么。
|