covgate 0.2.2 → 0.2.3

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/README.md CHANGED
@@ -48,7 +48,7 @@ covgate run
48
48
 
49
49
  ### 从 npm registry 安装(推荐)
50
50
 
51
- 包已发布到 npm:[covgate](https://www.npmjs.com/package/covgate),当前 latest 为 **0.2.2**。
51
+ 包已发布到 npm:[covgate](https://www.npmjs.com/package/covgate),当前 latest 为 **0.2.3**。
52
52
 
53
53
  ```bash
54
54
  npm install --save-dev covgate
@@ -96,7 +96,7 @@ setup 会:
96
96
  - **没有测试框架时询问是否安装 Vitest + @vitest/coverage-v8**,选择是则自动安装;
97
97
  - 写入 `coverage:gate`、`test:coverage` 脚本和 `covgate.config.json` 起始配置;
98
98
  - Electron 项目自动生成 `client`(`src/**`,100%)和 `server`(`desktop/**`,95%)两个 scope;
99
- - 生成 `AGENTS.md`、Agent 门禁脚本、GitHub Actions(如存在 `.github/`)和 `.gitignore` 条目。
99
+ - 生成 `AGENTS.md`、Agent 门禁脚本、GitHub Actions(如存在 `.github/`)和 `.gitignore` 条目;生成规则默认要求补测试,整体排除 UI/main/核心模块必须人工批准,未批准不得改范围或提交。
100
100
 
101
101
  **CovGate 不生成测试,也不补测试。** 行为变更的测试必须由项目自己补;没有测试时 `test:coverage` 会直接失败,不会生成空覆盖率来蒙混过关。
102
102
 
@@ -473,7 +473,7 @@ macOS 用 `open .covgate/report.html`,Linux 用 `xdg-open .covgate/report.html
473
473
  文本输出示例:
474
474
 
475
475
  ```text
476
- CovGate · 覆盖率门禁 v0.2.2
476
+ CovGate · 覆盖率门禁 v0.2.3
477
477
  模式 执行测试并检查 · 配置 covgate.config.json · 用时 12.4s
478
478
 
479
479
  ✗ 客户端 [client/client] 未通过
@@ -31,6 +31,9 @@ npx --no-install covgate setup
31
31
  - 退出码 1:补测试或修实现;2:修配置;3:修测试命令/报告。不要绕过。
32
32
  - 禁止降低 covgate.config.json 中的门槛、扩大 exclude、删除豁免检查来让门禁通过;这些改动必须由人类评审。
33
33
  - **行为变更必须新增或更新覆盖该行为的真实测试**;门禁失败不能作为完成理由,也不能用 `--passWithNoTests`、空报告或 ignore 绕过。
34
+ - 覆盖率失败时默认先补测试或修实现;不得以“无法测试”为由整体排除客户端 UI、主进程或核心模块。
35
+ - 只有第三方生成物或确实不可达的薄启动层,才可提出窄范围 exclude/waiver;必须列出被排除文件、可执行行数、原因、owner 和 expires,并等待人类明确批准。
36
+ - 未获批准前,不得修改 covgate.config.json 的 sources.include、exclude 或 thresholds,也不得提交;不得把整体排除业务代码作为与补测试等价的方案。
34
37
  - 禁止 istanbul ignore / c8 ignore / v8 ignore / node:coverage ignore。
35
38
  - 确实不可达的代码使用 covgate-ignore-next-line / start/end / file,写具体原因、owner 和 expires。
36
39
  - 新增或修改的源码必须出现在覆盖率报告中;sources.include 是范围事实来源。
package/docs/setup.md CHANGED
@@ -9,7 +9,7 @@ npm install --save-dev covgate
9
9
  npx --no-install covgate setup
10
10
  ```
11
11
 
12
- 包页面:[covgate](https://www.npmjs.com/package/covgate)。当前 latest 是 **0.2.2**。
12
+ 包页面:[covgate](https://www.npmjs.com/package/covgate)。当前 latest 是 **0.2.3**。
13
13
 
14
14
  > `0.0.0-stage` 是 npm 暂存发布产生的占位版本,不会被 `npm install covgate` 选中,可以忽略。
15
15
 
@@ -38,7 +38,7 @@ npm 11.19+ 默认不执行依赖的 `postinstall`,会显示类似:
38
38
 
39
39
  ```text
40
40
  npm warn install-scripts 1 package has install scripts not yet covered by allowScripts
41
- npm warn install-scripts covgate@0.2.2 (postinstall: node bin/covgate-postinstall.js)
41
+ npm warn install-scripts covgate@0.2.3 (postinstall: node bin/covgate-postinstall.js)
42
42
  ```
43
43
 
44
44
  因此:
@@ -77,7 +77,7 @@ npm warn install-scripts covgate@0.2.2 (postinstall: node bin/covgate-postinst
77
77
  ```
78
78
 
79
79
  5. 配置 AI 编码代理:
80
- - `AGENTS.md` 幂等区块
80
+ - `AGENTS.md` 幂等区块:补测试优先;整体排除 UI/main/核心模块必须人工批准,未批准不得改 sources/exclude/threshold 或提交
81
81
  - `scripts/covgate-agent-gate.sh` / `.ps1`(可接 Stop hook)
82
82
  - `.github/workflows/covgate.yml`(如果存在 `.github/`)
83
83
  - `.gitignore` 加入 `.covgate/`、`coverage/`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "covgate",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "覆盖率门禁:客户端 100%,服务端至少 95%,安装时自动检测/配置测试框架与 AI 编码代理接入。",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,6 +15,9 @@ const AGENT_BLOCK = [
15
15
  "- 确实不可达的代码使用 `covgate-ignore-next-line`、`covgate-ignore-start/end` 或 `covgate-ignore-file`,写具体原因、owner 和 expires。",
16
16
  "- 禁止通过扩大 exclude、缩小 sources.include 或删除测试来让门禁通过;这类改动必须由人类评审。",
17
17
  "- 行为变更必须新增或更新覆盖该行为的真实测试;不能把“门禁失败”当作完成理由,也不得用空报告、`--passWithNoTests`、ignore 或降低门槛绕过。",
18
+ "- 覆盖率失败时默认先补测试或修实现;不得以“无法测试”为由整体排除客户端 UI、主进程或核心模块。",
19
+ "- 只有第三方生成物或确实不可达的薄启动层,才可提出窄范围 exclude/waiver;必须列出被排除文件、可执行行数、原因、owner 和 expires,并等待人类明确批准。",
20
+ "- 未获批准前,不得修改 `covgate.config.json` 的 sources.include、exclude 或 thresholds,也不得提交;不得把整体排除业务代码作为与补测试等价的方案。",
18
21
  "- 失败详情在 `.covgate/report.json` 的 scopes/issues/waivers 中;修复后重跑。",
19
22
  "",
20
23
  "也可运行 `npm run coverage:gate -- --json`。Agent Stop hook 可调用 `scripts/covgate-agent-gate.ps1`(Windows)或 `scripts/covgate-agent-gate.sh`。",
@@ -32,6 +35,7 @@ const CURSOR_RULE = [
32
35
  "",
33
36
  "任何代码修改后运行 `npx --no-install covgate run --json`,退出码 0 才能结束。",
34
37
  "客户端必须 100%,服务端至少 95%。行为变更必须补真实测试;门禁失败不能作为完成理由。",
38
+ "覆盖率失败默认补测试;整体排除 UI/main/核心模块必须人工批准并量化盲区;未批准前不得改 sources/exclude/threshold 或提交。",
35
39
  "禁止原生 ignore;豁免必须写原因、owner、expires。",
36
40
  ""
37
41
  ].join("\n");
@@ -4,6 +4,9 @@
4
4
  - 退出码 `1`:补测试或修实现;`2`:修配置;`3`:修测试命令/覆盖率报告。不要绕过。
5
5
  - 禁止降低 `covgate.config.json` 中的门槛、扩大 exclude、删除豁免检查来让门禁通过。任何配置改动都必须由人类评审。
6
6
  - **行为变更必须新增或更新覆盖该行为的真实测试**;不能把“门禁失败”当作完成理由,也不得用空报告、`--passWithNoTests`、ignore 或降低门槛绕过。
7
+ - 覆盖率失败时默认先补测试或修实现;不得以“无法测试”为由整体排除客户端 UI、主进程或核心模块。
8
+ - 只有第三方生成物或确实不可达的薄启动层,才可提出窄范围 exclude/waiver;必须列出被排除文件、可执行行数、原因、owner 和 expires,并等待人类明确批准。
9
+ - 未获批准前,不得修改 `covgate.config.json` 的 sources.include、exclude 或 thresholds,也不得提交;不得把整体排除业务代码作为与补测试等价的方案。
7
10
  - 禁止 `istanbul ignore`、`c8 ignore`、`v8 ignore`、`node:coverage ignore`。
8
11
  - 确实不可达的代码使用 `covgate-ignore-next-line`、`covgate-ignore-start/end` 或 `covgate-ignore-file`,并写具体原因、owner 和 expires。
9
12
  - 新增或修改的源码必须出现在覆盖率报告中;`sources.include` 是范围事实来源。