@routerhub/agent-rules 1.5.219 → 1.5.221
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/AGENTS.base.md +1 -1
- package/CHANGELOG.md +16 -0
- package/package.json +1 -1
- package/rules/review-boundary.md +1 -1
package/AGENTS.base.md
CHANGED
|
@@ -945,7 +945,7 @@ Chrome Helper 会越积越多,表现为“agent-browser 用着用着越来越
|
|
|
945
945
|
- **一句话:「这条不修,功能会不会错 / 数据会不会坏?」** 会 → 报;不会 → 不报。
|
|
946
946
|
- 每条意见必须引用 diff 中的具体代码行作为证据,禁止臆测。
|
|
947
947
|
- 无法确认 → 不报。宁可漏报一条真问题,也不用十条口味问题刷屏。
|
|
948
|
-
-
|
|
948
|
+
- **收敛只看「性质」,不看「数量」:只问「还有没有必须修的真问题」,禁止拿「这轮问题比上轮少几个」当收敛依据。** 修完真问题后没有新的真问题,就直接说「无值得修的新问题」,不要换个角度再挖;但反向同样禁止——不许为了让数量往下走,把本轮真发现的问题压着不报、或降级成口味问题放过去(那是用漏报伪装收敛)。后一轮确实新挖出落在「必须修」范围内的问题(上一轮漏报的角落、修复引入的回归)时照报不误:循环靠「必须修的终将清零」收敛,不靠轮数递减。
|
|
949
949
|
|
|
950
950
|
### 审查方法(Review Method)——解决「看 diff 不知从何下手」
|
|
951
951
|
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
所有对 @routerhub/agent-rules 的重大更改都会记录在这个文件中。
|
|
4
4
|
|
|
5
|
+
## [1.5.220] - 2026-09-16
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **发版时序竞态导致下游全量分发失败(v1.5.218、v1.5.219 两连挂,下游连停在 `^1.5.217`)**:本地 `./release.sh` 的推送顺序是「先 `git push` 触发 CI、后 `npm publish`」(第 114 行 push / 第 122 行 publish),而 CI 被 push 触发后几十秒内就跑到 `distribute` job,此时 registry 上还没有该版本 → `publish-downstream.js` 里的 `pnpm add @routerhub/agent-rules@新版本` 报「No matching version found」,8 个下游仓库**全部**分发失败(脚本对每个仓库独立 try,所以是 8 个一起挂、不是首个失败即停)。
|
|
10
|
+
- **实测铁证(CI 日志时刻 vs registry 权威 `time` 字段)**:v1.5.218 —— CI 01:41:42 拉包失败 / npm 01:42:32 才可见(早 50 秒);v1.5.219 —— CI 01:44:20 拉包失败 / npm 01:44:49 才可见(早 29 秒)。两版卡在同一个时序上,不是偶发。
|
|
11
|
+
- **修复**:`.github/workflows/publish.yml` 的 `distribute` job 在跑分发脚本前新增「等待目标版本在 npm 可见」步骤——每 10 秒探测一次、最多 10 分钟,可见后才开始分发;超时即明确报错中止,而不是让 8 个仓库各自抛一句没头没尾的「No matching version found」。
|
|
12
|
+
- **判据为什么用 `npm view "@routerhub/agent-rules@<版本>" version` 而不是 `npm view <pkg> version`**:后者只看 `latest` dist-tag,一旦版本号跳号(如本地连跑两次 `release.sh`)就会永远对不上、死等到超时。两种情况均已实测:版本存在时输出该版本(第一轮即退出),不存在时输出空(继续轮询)。
|
|
13
|
+
- **CI 自己发版时本来就没这个问题**(`distribute` 有 `needs: publish`,而 publish job 内含完整 `release.sh`,天然等 publish 跑完才进 distribute);本步骤保护的是**本地发版路径**——即「改规则 → `node merge.js sync` → `./release.sh`」这条日常路径,不修则每次都会重演。版本早已可见时第一轮探测即通过,正常发版零额外等待。
|
|
14
|
+
- **兜底补发**:v1.5.218 与 v1.5.219 两版漏发已通过 `workflow_dispatch` 补发(该分支无条件跑 distribute、脚本幂等,下游已在该版本则 SKIP),下游从 `^1.5.217` 直升 `^1.5.219`。
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- **审稿边界的收敛判据由「数量递减」改为「性质判定」**:原判据「每轮 review 的问题数量应当 ≤ 上一轮」是计数式的,隐含「轮数递减 = 收敛」。但 bot 每轮全量重读 diff,总能在后一轮挖出落在「必须修」范围内的真问题(上一轮漏报的角落、修复引入的回归),此时数量回升是正常的,不是没收敛。改为只问「还有没有必须修的真问题」,并补上反向约束——**禁止为了让数量往下走而压着真问题不报、或把真问题降级成口味问题放过去**(那是用漏报伪装收敛)。与 `loop-review` 取消轮数上限的口径统一(见 1.5.219)。
|
|
19
|
+
- 该节只进 `.github/instructions/review-boundary.instructions.md`(`copilot-instructions.md` 不含「审稿边界」一节),已经 `node merge.js sync` 验证改动落点正确。
|
|
20
|
+
|
|
5
21
|
## [1.5.219] - 2026-09-16
|
|
6
22
|
|
|
7
23
|
### Changed
|
package/package.json
CHANGED
package/rules/review-boundary.md
CHANGED
|
@@ -30,7 +30,7 @@ outputName: "review-boundary"
|
|
|
30
30
|
- **一句话:「这条不修,功能会不会错 / 数据会不会坏?」** 会 → 报;不会 → 不报。
|
|
31
31
|
- 每条意见必须引用 diff 中的具体代码行作为证据,禁止臆测。
|
|
32
32
|
- 无法确认 → 不报。宁可漏报一条真问题,也不用十条口味问题刷屏。
|
|
33
|
-
-
|
|
33
|
+
- **收敛只看「性质」,不看「数量」:只问「还有没有必须修的真问题」,禁止拿「这轮问题比上轮少几个」当收敛依据。** 修完真问题后没有新的真问题,就直接说「无值得修的新问题」,不要换个角度再挖;但反向同样禁止——不许为了让数量往下走,把本轮真发现的问题压着不报、或降级成口味问题放过去(那是用漏报伪装收敛)。后一轮确实新挖出落在「必须修」范围内的问题(上一轮漏报的角落、修复引入的回归)时照报不误:循环靠「必须修的终将清零」收敛,不靠轮数递减。
|
|
34
34
|
|
|
35
35
|
### 审查方法(Review Method)——解决「看 diff 不知从何下手」
|
|
36
36
|
|