mjolnir-qa 3.0.0 → 4.0.0

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.zh.md CHANGED
@@ -18,7 +18,7 @@ Mjölnir 找出不可能失败的测试和不可能变红的流水线,<br />
18
18
  [![node](https://img.shields.io/badge/node-%E2%89%A5%2022.18-1F6F7C.svg?style=flat-square&labelColor=0A1119)](https://nodejs.org)
19
19
 
20
20
  ```bash
21
- npx mjolnir-qa@latest
21
+ npx mjolnir-qa@3.0.0
22
22
  ```
23
23
 
24
24
  [实际效果](#实际效果) · [快速开始](#快速开始) · [能发现什么](#mjölnir-能发现什么) · [评分](#可信度评分) · [证据](#证据模型) · [运行取证](#运行时取证) · [CI](#ci-完整性) · [智能体](#ai-智能体) · [安全](#信任与安全) · [局限](#mjölnir-无法告诉你的事) · [文档](#文档)
@@ -28,9 +28,9 @@ npx mjolnir-qa@latest
28
28
 
29
29
  [English](README.md) | 简体中文 | [繁體中文](README.zht.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.gr.md) | [Tiếng Việt](README.vi.md) | [עברית](README.he.md) | [العربية](README.ar.md) | [Bosanski](README.bs.md)
30
30
 
31
- > 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-15.
31
+ > 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-26.
32
32
 
33
- <!-- Source hash: 3541b09e8d04 -->
33
+ <!-- Source hash: `de04dfb1677b` -->
34
34
 
35
35
  </details>
36
36
 
@@ -38,6 +38,20 @@ npx mjolnir-qa@latest
38
38
 
39
39
  <br />
40
40
 
41
+ ## Release status (English canonical)
42
+
43
+ The published line is `3.0.0`; this working tree is the `4.0.0-rc.1`
44
+ candidate. `3.0.0` must not be republished or retagged. The M26–M50 program is
45
+ tracked in
46
+ [`docs/ROADMAP.yaml`](docs/ROADMAP.yaml); provisional capability contracts
47
+ are not automatically enabled or certified. Repository-owned checks pass, but
48
+ Trust certification remains `NOT_CERTIFIED` until the protected holdout,
49
+ real-world, platform/consumer, remote-workflow, support-matrix, and corpus
50
+ evidence gates pass. Run `npm run m26:readiness` before treating any candidate
51
+ as releasable. This document does not publish a tag or authorize a release.
52
+
53
+ > Machine-assisted canonical text. Translate this block before treating it as localized copy.
54
+
41
55
  ## 绿色对勾是一种声明,而不是证明
42
56
 
43
57
  绿色对勾只说明流水线没有失败。它并不说明测试真的运行了,也不说明它们有可能失败。下面每一种情况都会显示为绿色:
@@ -58,7 +72,7 @@ npx mjolnir-qa@latest
58
72
 
59
73
  <sub>演示扫描为该 workflow 报告的每一条发现,都标在报告的行上。由 `npm run docs:readme-brand` 根据 [`demo-report.json`](assets/readme/demo-report.json) 生成,并在 CI 中锁定以防漂移。</sub>
60
74
 
61
- **严格模式。** 最激进的检测——`.only`、`continue-on-error`、空测试、滥用重试——位于隔离层。它们仅在 `--strict` 下运行,且限定为 `info` 严重级别:只标记,从不拦截。默认扫描(不带 `--strict` 的 `npx mjolnir-qa@latest`)仅覆盖核心和扩展规则。需要咨询层时,加上 `--strict`。
75
+ **严格模式。** 最激进的检测——`.only`、`continue-on-error`、空测试、滥用重试——位于隔离层。它们仅在 `--strict` 下运行,且限定为 `info` 严重级别:只标记,从不拦截。默认扫描(不带 `--strict` 的 `npx mjolnir-qa@3.0.0`)仅覆盖核心和扩展规则。需要咨询层时,加上 `--strict`。
62
76
 
63
77
  Mjölnir 读取测试套件、CI workflow,以及(如果有的话)一次真实运行的报告。它不会运行你的测试,不会安装你的依赖,也不会执行它扫描的代码。当它没有证据时,它会直说,而不是编造信心:
64
78
 
@@ -93,7 +107,7 @@ Mjölnir 读取测试套件、CI workflow,以及(如果有的话)一次真
93
107
 
94
108
  <p align="center">
95
109
  <a href="assets/video/mjolnir-demo.mp4">
96
- <img src="assets/video/mjolnir-demo-poster.png" alt="演示录像中的一帧:npx mjolnir-qa@latest 在终端窗口中扫描演示仓库" width="900" />
110
+ <img src="assets/video/mjolnir-demo-poster.png" alt="演示录像中的一帧:npx mjolnir-qa@3.0.0 在终端窗口中扫描演示仓库" width="900" />
97
111
  </a>
98
112
  </p>
99
113
 
@@ -162,7 +176,7 @@ Docs: mjolnir rules --md (full catalog, this rule included)
162
176
  ## 快速开始
163
177
 
164
178
  ```bash
165
- npx mjolnir-qa@latest
179
+ npx mjolnir-qa@3.0.0
166
180
  ```
167
181
 
168
182
  它扫描当前目录并打印 Trust Report:发现了什么、你能在多大程度上信任它、原因,以及下一步该做什么。当门禁及以上级别没有任何发现时,它以 `0` 退出。
@@ -170,24 +184,39 @@ npx mjolnir-qa@latest
170
184
  在 CI 中,只扫描分支引入的内容,这样遗留的测试套件就不会淹没你的第一个 pull request:
171
185
 
172
186
  ```bash
173
- npx mjolnir-qa@latest --scope changed
187
+ npx mjolnir-qa@3.0.0 --scope changed
174
188
  ```
175
189
 
176
- `mjolnir ci install` 会把它写成一个 GitHub Actions workflow,使用固定在 `v1` 主版本标签上的 [action](https://github.com/Sergey-Bar/Mjolnir#readme)(或使用 `--no-action` 改用普通 `npx`)。在你决定让它拦截之前,它始终只是建议性的。
177
-
178
- | 命令 | 作用 |
179
- | ----------------------------------- | --------------------------------------------- |
180
- | `mjolnir` | Trust Report:结论、置信度、下一步行动 |
181
- | `mjolnir --scope changed` | 只检查你的分支引入的内容(CI 用法) |
182
- | `mjolnir ci install` | 生成建议性的 PR workflow(基于 action) |
183
- | `mjolnir explain QA-CI-001` | 是什么、为什么、怎么修,外加实测 FP 率 |
184
- | `mjolnir why src/a.spec.ts:42` | 解释这一行为什么被标记。从不拦截。 |
185
- | `mjolnir forensics ./test-results/` | 来自真实运行的运行时证据 |
186
- | `mjolnir trust-report` | 自包含的 Trust Artifact(md + json) |
187
- | `mjolnir handoff` | 给编码智能体的修复计划 |
188
- | `mjolnir --json` / `--format sarif` | 机器可读输出,GitHub Code Scanning |
189
- | `mjolnir --format codequality` | GitLab Code Quality 报告(MR 组件所用的产物) |
190
- | `mjolnir --strict` | 同时运行 quarantine 级别的规则(FP 风险更高) |
190
+ `mjolnir ci install` 会把它写成一个 GitHub Actions workflow,使用固定在 `v3` 主版本标签上的 [action](https://github.com/Sergey-Bar/Mjolnir#readme)(或使用 `--no-action` 改用普通 `npx`)。在你决定让它拦截之前,它始终只是建议性的。
191
+
192
+ | 命令 | 作用 |
193
+ | --------------------------------------------- | ----------------------------------------------- |
194
+ | `mjolnir` | Trust Report:结论、置信度、下一步行动 |
195
+ | `mjolnir --scope changed` | 只检查你的分支引入的内容(CI 用法) |
196
+ | `mjolnir ci install` | 生成建议性的 PR workflow(基于 action) |
197
+ | `mjolnir business-case` | ROI estimate: projected savings per finding |
198
+ | `mjolnir release-report` | Release readiness: GO, CONDITIONAL GO, or NO-GO |
199
+ | `mjolnir release-trust` | 12-dimension release assurance verdict |
200
+ | `mjolnir report` | Generate a Playwright-compatible report |
201
+ | `mjolnir trend` | Record, show, or diff local quality snapshots |
202
+ | `mjolnir policy` | Initialize, validate, or check policy gates |
203
+ | `mjolnir quarantine` | Review deterministic proposals (prototype) |
204
+ | `mjolnir analyze --cross-file` | Bounded cross-file analysis |
205
+ | `mjolnir ci-adapter github .` | Generate CI templates for supported providers |
206
+ | `mjolnir dashboard` | Generate a self-contained quality dashboard |
207
+ | `mjolnir exec-report` | Executive KPIs and recommendations (advisory) |
208
+ | `mjolnir enterprise` | Self-hosted templates (prototype) |
209
+ | `mjolnir maturity` | Assess maturity or display maturity levels |
210
+ | `mjolnir mutation tests/mutation-report.json` | Analyze mutation reports; never promotes trust |
211
+ | `mjolnir mcp` | Read-only MCP tools over stdio |
212
+ | `mjolnir explain QA-CI-001` | 是什么、为什么、怎么修,外加实测 FP 率 |
213
+ | `mjolnir why src/a.spec.ts:42` | 解释这一行为什么被标记。从不拦截。 |
214
+ | `mjolnir forensics ./test-results/` | 来自真实运行的运行时证据 |
215
+ | `mjolnir trust-report` | 自包含的 Trust Artifact(md + json) |
216
+ | `mjolnir handoff` | 给编码智能体的修复计划 |
217
+ | `mjolnir --json` / `--format sarif` | 机器可读输出,GitHub Code Scanning |
218
+ | `mjolnir --format codequality` | GitLab Code Quality 报告(MR 组件所用的产物) |
219
+ | `mjolnir --strict` | 同时运行 quarantine 级别的规则(FP 风险更高) |
191
220
 
192
221
  <details>
193
222
  <summary><strong>其他所有命令</strong> — 不稳定测试分诊、报告、治理</summary>
@@ -452,18 +481,18 @@ mjolnir ci install
452
481
  或者把 Marketplace 上的 action 加到你现有的 workflow 中:
453
482
 
454
483
  ```yaml
455
- - uses: Sergey-Bar/Mjolnir@v1
484
+ - uses: Sergey-Bar/Mjolnir@v3
456
485
  with:
457
486
  scope: changed
458
487
  fail-on: error
459
488
  ```
460
489
 
461
- 固定 `@v1` 以跟随主版本线,或固定一个确切的标签(`@v0.5.32`)以获得可复现的门禁。[docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) 介绍了 Marketplace、Smithery 和各个 MCP 注册表。
490
+ 固定 `@v3` 以跟随主版本线,或固定一个确切的标签(`@v0.5.32`)以获得可复现的门禁。[docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) 介绍了 Marketplace、Smithery 和各个 MCP 注册表。
462
491
 
463
492
  要把发现推送到 GitHub Code Scanning,上传 SARIF(需要在 workflow 或 job 范围内设置 `security-events: write`):
464
493
 
465
494
  ```yaml
466
- - run: npx mjolnir-qa@latest --format sarif > mjolnir.sarif
495
+ - run: npx mjolnir-qa@3.0.0 --format sarif > mjolnir.sarif
467
496
  continue-on-error: true
468
497
  - uses: github/codeql-action/upload-sarif@v3
469
498
  if: ${{ !cancelled() }}
@@ -476,7 +505,7 @@ mjolnir ci install
476
505
  ### 变更范围归因
477
506
 
478
507
  ```bash
479
- npx mjolnir-qa@latest --scope changed
508
+ npx mjolnir-qa@3.0.0 --scope changed
480
509
  ```
481
510
 
482
511
  发现会归因到你的分支新增的行,以 **merge-base** 为基准计算。范围与完整扫描发现的文件集合相同(TS/JS spec 和适配器配置、`test_*.py`、`*Test.java`、`*Tests.cs`、`.github/workflows/*.yml`),再加上未提交和未跟踪的改动,所以在你提交之前就能使用。基准按 `main → master → origin/main → origin/master → origin/HEAD` 的顺序解析;可以用 `--base <ref>` 覆盖。
@@ -504,7 +533,7 @@ SCAN → EVIDENCE → HANDOFF → AGENT → RE-SCAN → PROOF
504
533
  添加到自带 CLI 的客户端:
505
534
 
506
535
  ```bash
507
- claude mcp add mjolnir -- npx -y mjolnir-qa@latest mcp
536
+ claude mcp add mjolnir -- npx -y mjolnir-qa@3.0.0 mcp
508
537
  ```
509
538
 
510
539
  或者添加到任何接受 `mcpServers` 配置块的客户端:
@@ -512,7 +541,7 @@ claude mcp add mjolnir -- npx -y mjolnir-qa@latest mcp
512
541
  ```json
513
542
  {
514
543
  "mcpServers": {
515
- "mjolnir": { "command": "npx", "args": ["-y", "mjolnir-qa@latest", "mcp"] }
544
+ "mjolnir": { "command": "npx", "args": ["-y", "mjolnir-qa@3.0.0", "mcp"] }
516
545
  }
517
546
  }
518
547
  ```
@@ -603,7 +632,7 @@ mjolnir create-rule QA-PW-140 --title "Screenshot without diff bound"
603
632
  <img src="assets/readme/closing.svg" alt="在你的仓库上运行它。" width="100%" />
604
633
 
605
634
  ```bash
606
- npx mjolnir-qa@latest
635
+ npx mjolnir-qa@3.0.0
607
636
  ```
608
637
 
609
638
  [阅读指南](https://sergey-bar.github.io/Mjolnir/guide/getting-started) · [文档站点](https://sergey-bar.github.io/Mjolnir/) · [npm](https://www.npmjs.com/package/mjolnir-qa)
package/README.zht.md CHANGED
@@ -18,7 +18,7 @@ Mjölnir 找出不可能失敗的測試和不可能變紅的流水線,<br />
18
18
  [![node](https://img.shields.io/badge/node-%E2%89%A5%2022.18-1F6F7C.svg?style=flat-square&labelColor=0A1119)](https://nodejs.org)
19
19
 
20
20
  ```bash
21
- npx mjolnir-qa@latest
21
+ npx mjolnir-qa@3.0.0
22
22
  ```
23
23
 
24
24
  [實際效果](#實際效果) · [快速開始](#快速開始) · [能發現什麼](#mjölnir-能發現什麼) · [評分](#可信度評分) · [證據](#證據模型) · [執行鑑識](#執行時鑑識) · [CI](#ci-完整性) · [代理](#ai-代理) · [安全](#信任與安全) · [局限](#mjölnir-無法告訴你的事) · [文件](#文件)
@@ -28,9 +28,9 @@ npx mjolnir-qa@latest
28
28
 
29
29
  [English](README.md) | [简体中文](README.zh.md) | 繁體中文 | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.gr.md) | [Tiếng Việt](README.vi.md) | [עברית](README.he.md) | [العربية](README.ar.md) | [Bosanski](README.bs.md)
30
30
 
31
- > 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-15.
31
+ > 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-26.
32
32
 
33
- <!-- Source hash: 3541b09e8d04 -->
33
+ <!-- Source hash: `de04dfb1677b` -->
34
34
 
35
35
  </details>
36
36
 
@@ -38,6 +38,20 @@ npx mjolnir-qa@latest
38
38
 
39
39
  <br />
40
40
 
41
+ ## Release status (English canonical)
42
+
43
+ The published line is `3.0.0`; this working tree is the `4.0.0-rc.1`
44
+ candidate. `3.0.0` must not be republished or retagged. The M26–M50 program is
45
+ tracked in
46
+ [`docs/ROADMAP.yaml`](docs/ROADMAP.yaml); provisional capability contracts
47
+ are not automatically enabled or certified. Repository-owned checks pass, but
48
+ Trust certification remains `NOT_CERTIFIED` until the protected holdout,
49
+ real-world, platform/consumer, remote-workflow, support-matrix, and corpus
50
+ evidence gates pass. Run `npm run m26:readiness` before treating any candidate
51
+ as releasable. This document does not publish a tag or authorize a release.
52
+
53
+ > Machine-assisted canonical text. Translate this block before treating it as localized copy.
54
+
41
55
  ## 綠色勾號是一種聲明,而不是證明
42
56
 
43
57
  綠色勾號只說明流水線沒有失敗。它並不說明測試真的執行了,也不說明它們有可能失敗。以下每一種情況都會顯示為綠色:
@@ -58,7 +72,7 @@ npx mjolnir-qa@latest
58
72
 
59
73
  <sub>示範掃描為此 workflow 回報的每一項發現,都標在回報的那一行。由 `npm run docs:readme-brand` 根據 [`demo-report.json`](assets/readme/demo-report.json) 產生,並在 CI 中鎖定以防漂移。</sub>
60
74
 
61
- **嚴格模式。** 最激進的偵測——`.only`、`continue-on-error`、空測試、濫用重試——位於隔離層。它們僅在 `--strict` 下執行,且限定為 `info` 嚴重性:只標記,從不攔截。預設掃描(不帶 `--strict` 的 `npx mjolnir-qa@latest`)僅涵蓋核心和擴充規則。需要諮詢層時,加上 `--strict`。
75
+ **嚴格模式。** 最激進的偵測——`.only`、`continue-on-error`、空測試、濫用重試——位於隔離層。它們僅在 `--strict` 下執行,且限定為 `info` 嚴重性:只標記,從不攔截。預設掃描(不帶 `--strict` 的 `npx mjolnir-qa@3.0.0`)僅涵蓋核心和擴充規則。需要諮詢層時,加上 `--strict`。
62
76
 
63
77
  Mjölnir 讀取測試套件、CI workflow,以及(如果有的話)一次真實執行的報告。它不會執行你的測試,不會安裝你的相依套件,也不會執行它掃描的程式碼。當它沒有證據時,它會直說,而不是捏造信心:
64
78
 
@@ -93,7 +107,7 @@ Mjölnir 讀取測試套件、CI workflow,以及(如果有的話)一次真
93
107
 
94
108
  <p align="center">
95
109
  <a href="assets/video/mjolnir-demo.mp4">
96
- <img src="assets/video/mjolnir-demo-poster.png" alt="示範錄影中的一格:npx mjolnir-qa@latest 在終端機視窗中掃描示範儲存庫" width="900" />
110
+ <img src="assets/video/mjolnir-demo-poster.png" alt="示範錄影中的一格:npx mjolnir-qa@3.0.0 在終端機視窗中掃描示範儲存庫" width="900" />
97
111
  </a>
98
112
  </p>
99
113
 
@@ -162,7 +176,7 @@ Docs: mjolnir rules --md (full catalog, this rule included)
162
176
  ## 快速開始
163
177
 
164
178
  ```bash
165
- npx mjolnir-qa@latest
179
+ npx mjolnir-qa@3.0.0
166
180
  ```
167
181
 
168
182
  它掃描目前的目錄並印出 Trust Report:發現了什麼、你能在多大程度上信任它、原因,以及下一步該做什麼。當關卡及以上級別沒有任何發現時,它以 `0` 結束。
@@ -170,24 +184,39 @@ npx mjolnir-qa@latest
170
184
  在 CI 中,只掃描分支引入的內容,這樣舊有的測試套件就不會淹沒你的第一個 pull request:
171
185
 
172
186
  ```bash
173
- npx mjolnir-qa@latest --scope changed
187
+ npx mjolnir-qa@3.0.0 --scope changed
174
188
  ```
175
189
 
176
- `mjolnir ci install` 會把它寫成一個 GitHub Actions workflow,使用固定在 `v1` 主版本標籤上的 [action](https://github.com/Sergey-Bar/Mjolnir#readme)(或使用 `--no-action` 改用一般的 `npx`)。在你決定讓它攔截之前,它始終只是建議性的。
177
-
178
- | 指令 | 作用 |
179
- | ----------------------------------- | --------------------------------------------- |
180
- | `mjolnir` | Trust Report:結論、信心程度、下一步行動 |
181
- | `mjolnir --scope changed` | 只檢查你的分支引入的內容(CI 用法) |
182
- | `mjolnir ci install` | 產生建議性的 PR workflow(基於 action) |
183
- | `mjolnir explain QA-CI-001` | 是什麼、為什麼、怎麼修,外加實測 FP 率 |
184
- | `mjolnir why src/a.spec.ts:42` | 解釋這一行為什麼被標記。從不攔截。 |
185
- | `mjolnir forensics ./test-results/` | 來自真實執行的執行時證據 |
186
- | `mjolnir trust-report` | 自成一體的 Trust Artifact(md + json) |
187
- | `mjolnir handoff` | 給程式代理的修正計畫 |
188
- | `mjolnir --json` / `--format sarif` | 機器可讀的輸出,GitHub Code Scanning |
189
- | `mjolnir --format codequality` | GitLab Code Quality 報告(MR 元件使用的產物) |
190
- | `mjolnir --strict` | 同時執行 quarantine 等級的規則(FP 風險較高) |
190
+ `mjolnir ci install` 會把它寫成一個 GitHub Actions workflow,使用固定在 `v3` 主版本標籤上的 [action](https://github.com/Sergey-Bar/Mjolnir#readme)(或使用 `--no-action` 改用一般的 `npx`)。在你決定讓它攔截之前,它始終只是建議性的。
191
+
192
+ | 指令 | 作用 |
193
+ | --------------------------------------------- | ----------------------------------------------- |
194
+ | `mjolnir` | Trust Report:結論、信心程度、下一步行動 |
195
+ | `mjolnir --scope changed` | 只檢查你的分支引入的內容(CI 用法) |
196
+ | `mjolnir ci install` | 產生建議性的 PR workflow(基於 action) |
197
+ | `mjolnir business-case` | ROI estimate: projected savings per finding |
198
+ | `mjolnir release-report` | Release readiness: GO, CONDITIONAL GO, or NO-GO |
199
+ | `mjolnir release-trust` | 12-dimension release assurance verdict |
200
+ | `mjolnir report` | Generate a Playwright-compatible report |
201
+ | `mjolnir trend` | Record, show, or diff local quality snapshots |
202
+ | `mjolnir policy` | Initialize, validate, or check policy gates |
203
+ | `mjolnir quarantine` | Review deterministic proposals (prototype) |
204
+ | `mjolnir analyze --cross-file` | Bounded cross-file analysis |
205
+ | `mjolnir ci-adapter github .` | Generate CI templates for supported providers |
206
+ | `mjolnir dashboard` | Generate a self-contained quality dashboard |
207
+ | `mjolnir exec-report` | Executive KPIs and recommendations (advisory) |
208
+ | `mjolnir enterprise` | Self-hosted templates (prototype) |
209
+ | `mjolnir maturity` | Assess maturity or display maturity levels |
210
+ | `mjolnir mutation tests/mutation-report.json` | Analyze mutation reports; never promotes trust |
211
+ | `mjolnir mcp` | Read-only MCP tools over stdio |
212
+ | `mjolnir explain QA-CI-001` | 是什麼、為什麼、怎麼修,外加實測 FP 率 |
213
+ | `mjolnir why src/a.spec.ts:42` | 解釋這一行為什麼被標記。從不攔截。 |
214
+ | `mjolnir forensics ./test-results/` | 來自真實執行的執行時證據 |
215
+ | `mjolnir trust-report` | 自成一體的 Trust Artifact(md + json) |
216
+ | `mjolnir handoff` | 給程式代理的修正計畫 |
217
+ | `mjolnir --json` / `--format sarif` | 機器可讀的輸出,GitHub Code Scanning |
218
+ | `mjolnir --format codequality` | GitLab Code Quality 報告(MR 元件使用的產物) |
219
+ | `mjolnir --strict` | 同時執行 quarantine 等級的規則(FP 風險較高) |
191
220
 
192
221
  <details>
193
222
  <summary><strong>其他所有指令</strong> — 不穩定測試分類、報告、治理</summary>
@@ -452,18 +481,18 @@ mjolnir ci install
452
481
  或者把 Marketplace 上的 action 加到你現有的 workflow 中:
453
482
 
454
483
  ```yaml
455
- - uses: Sergey-Bar/Mjolnir@v1
484
+ - uses: Sergey-Bar/Mjolnir@v3
456
485
  with:
457
486
  scope: changed
458
487
  fail-on: error
459
488
  ```
460
489
 
461
- 固定 `@v1` 以跟隨主版本線,或固定一個確切的標籤(`@v0.5.32`)以獲得可重現的關卡。[docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) 介紹了 Marketplace、Smithery 和各個 MCP 登錄表。
490
+ 固定 `@v3` 以跟隨主版本線,或固定一個確切的標籤(`@v0.5.32`)以獲得可重現的關卡。[docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) 介紹了 Marketplace、Smithery 和各個 MCP 登錄表。
462
491
 
463
492
  要把發現送進 GitHub Code Scanning,上傳 SARIF(需要在 workflow 或 job 範圍內設定 `security-events: write`):
464
493
 
465
494
  ```yaml
466
- - run: npx mjolnir-qa@latest --format sarif > mjolnir.sarif
495
+ - run: npx mjolnir-qa@3.0.0 --format sarif > mjolnir.sarif
467
496
  continue-on-error: true
468
497
  - uses: github/codeql-action/upload-sarif@v3
469
498
  if: ${{ !cancelled() }}
@@ -476,7 +505,7 @@ mjolnir ci install
476
505
  ### 變更範圍歸因
477
506
 
478
507
  ```bash
479
- npx mjolnir-qa@latest --scope changed
508
+ npx mjolnir-qa@3.0.0 --scope changed
480
509
  ```
481
510
 
482
511
  發現會歸因到你的分支新增的行,以 **merge-base** 為基準計算。範圍與完整掃描發現的檔案集合相同(TS/JS spec 和轉接器設定、`test_*.py`、`*Test.java`、`*Tests.cs`、`.github/workflows/*.yml`),再加上未提交和未追蹤的變更,所以在你提交之前就能使用。基準依 `main → master → origin/main → origin/master → origin/HEAD` 的順序解析;可以用 `--base <ref>` 覆寫。
@@ -504,7 +533,7 @@ SCAN → EVIDENCE → HANDOFF → AGENT → RE-SCAN → PROOF
504
533
  加入自帶 CLI 的用戶端:
505
534
 
506
535
  ```bash
507
- claude mcp add mjolnir -- npx -y mjolnir-qa@latest mcp
536
+ claude mcp add mjolnir -- npx -y mjolnir-qa@3.0.0 mcp
508
537
  ```
509
538
 
510
539
  或者加入任何接受 `mcpServers` 設定區塊的用戶端:
@@ -512,7 +541,7 @@ claude mcp add mjolnir -- npx -y mjolnir-qa@latest mcp
512
541
  ```json
513
542
  {
514
543
  "mcpServers": {
515
- "mjolnir": { "command": "npx", "args": ["-y", "mjolnir-qa@latest", "mcp"] }
544
+ "mjolnir": { "command": "npx", "args": ["-y", "mjolnir-qa@3.0.0", "mcp"] }
516
545
  }
517
546
  }
518
547
  ```
@@ -603,7 +632,7 @@ mjolnir create-rule QA-PW-140 --title "Screenshot without diff bound"
603
632
  <img src="assets/readme/closing.svg" alt="在你的儲存庫上執行它。" width="100%" />
604
633
 
605
634
  ```bash
606
- npx mjolnir-qa@latest
635
+ npx mjolnir-qa@3.0.0
607
636
  ```
608
637
 
609
638
  [閱讀指南](https://sergey-bar.github.io/Mjolnir/guide/getting-started) · [文件網站](https://sergey-bar.github.io/Mjolnir/) · [npm](https://www.npmjs.com/package/mjolnir-qa)