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.bn.md CHANGED
@@ -18,7 +18,7 @@ Mjölnir এমন টেস্ট খুঁজে বের করে যেগ
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.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.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` তীব্রতায় সীমিত: এগুলো চিহ্নিত করে, কিন্তু কখনো গেট করে না। ডিফল্ট স্ক্যান (`npx mjolnir-qa@latest` ছাড়া `--strict`) শুধু কোর এবং বর্ধিত নিয়ম কভার করে। পরামর্শমূলক স্তরও চাইলে `--strict` যোগ করুন।
75
+ **কঠোর মোড।** সবচেয়ে আক্রমণাত্মক সনাক্তকরণ — `.only`, `continue-on-error`, ফাঁকা পরীক্ষা, পুনরায় চেষ্টার অপব্যবহার — কোয়ারেন্টাইন স্তরে থাকে। এগুলো শুধু `--strict`-এ চলে এবং `info` তীব্রতায় সীমিত: এগুলো চিহ্নিত করে, কিন্তু কখনো গেট করে না। ডিফল্ট স্ক্যান (`npx mjolnir-qa@3.0.0` ছাড়া `--strict`) শুধু কোর এবং বর্ধিত নিয়ম কভার করে। পরামর্শমূলক স্তরও চাইলে `--strict` যোগ করুন।
62
76
 
63
77
  Mjölnir স্যুট, CI workflow, এবং আপনার কাছে থাকলে একটি প্রকৃত রানের রিপোর্ট পড়ে। এটি আপনার টেস্ট চালায় না, আপনার dependency ইনস্টল করে না, বা এটি যে কোড স্ক্যান করে তা চালায় না। আর যখন এর কাছে প্রমাণ নেই, তখন এটি আস্থা বানিয়ে না নিয়ে সেটাই বলে দেয়:
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` দিয়ে exit করে।
@@ -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 widget artifact) |
190
- | `mjolnir --strict` | quarantine-tier নিয়মও চালায় (উচ্চতর 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 widget artifact) |
219
+ | `mjolnir --strict` | quarantine-tier নিয়মও চালায় (উচ্চতর FP ঝুঁকি) |
191
220
 
192
221
  <details>
193
222
  <summary><strong>অন্য সব কমান্ড</strong> — flake triage, রিপোর্টিং, গভর্নেন্স</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` পিন করুন, অথবা একটি reproducible gate-এর জন্য একটি সঠিক ট্যাগ (`@v0.5.32`)। [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) Marketplace, Smithery, এবং MCP রেজিস্ট্রি কভার করে।
490
+ মেজর লাইন অনুসরণ করতে `@v3` পিন করুন, অথবা একটি reproducible gate-এর জন্য একটি সঠিক ট্যাগ (`@v0.5.32`)। [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) Marketplace, Smithery, এবং MCP রেজিস্ট্রি কভার করে।
462
491
 
463
492
  GitHub Code Scanning-এ সন্ধান রাখতে, SARIF আপলোড করুন (workflow বা job scope-এ `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 @@ GitLab-এ, `--format codequality` সেই Code Quality রিপোর্ট
476
505
  ### Changed-scope attribution
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
  সন্ধানগুলো আপনার ব্রাঞ্চ যোগ করা লাইনগুলোতে attribute করা হয়, **merge-base**-এর বিরুদ্ধে পরিমাপ করা। Scope-টি একই ফাইল সেট যা একটি full scan আবিষ্কার করে (TS/JS spec এবং adapter config, `test_*.py`, `*Test.java`, `*Tests.cs`, `.github/workflows/*.yml`), সাথে uncommitted এবং untracked পরিবর্তন, তাই এটি আপনি কমিট করার আগেই কাজ করে। Base resolve হয় `main → master → origin/main → origin/master → origin/HEAD`; `--base <ref>` দিয়ে override করুন।
@@ -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 @@ Dev সেটআপ, standing-gate কমান্ড, এবং anti-creep এ
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.br.md CHANGED
@@ -18,7 +18,7 @@ e depois pontua até onde o resultado merece confiança, com a evidência de cad
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@4.0.0
22
22
  ```
23
23
 
24
24
  [Veja funcionando](#veja-funcionando) · [Início rápido](#início-rápido) · [O que encontra](#o-que-o-mjölnir-encontra) · [Pontuação](#a-pontuação-de-confiabilidade) · [Evidência](#o-modelo-de-evidência) · [Forense](#forense-de-execução) · [CI](#integridade-de-ci) · [Agentes](#agentes-de-ia) · [Segurança](#confiança-e-segurança) · [Limites](#o-que-o-mjölnir-não-pode-dizer) · [Docs](#documentação)
@@ -28,9 +28,9 @@ npx mjolnir-qa@latest
28
28
 
29
29
  [English](README.md) | [简体中文](README.zh.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.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
  ## Um check verde é uma afirmação, não uma prova
42
56
 
43
57
  Um check verde significa que o pipeline não falhou. Não significa que os testes rodaram, nem que poderiam ter falhado. Todos estes casos passam verdes:
@@ -58,7 +72,7 @@ Nenhum deles deixa o pipeline vermelho, e todos parecem intencionais na revisão
58
72
 
59
73
  <sub>Cada achado que o scan de demonstração reportou para este workflow, na linha reportada. Gerado por `npm run docs:readme-brand` a partir de [`demo-report.json`](assets/readme/demo-report.json) e travado contra desvios na CI.</sub>
60
74
 
61
- **Modo estrito.** As detecções mais agressivas — `.only`, `continue-on-error`, testes vazios, abuso de retry — ficam na quarentena. Só rodam com `--strict` e são limitadas a severidade `info`: elas sinalizam, nunca bloqueiam. O scan padrão (`npx mjolnir-qa@latest` sem `--strict`) cobre apenas regras core e extended. Adicione `--strict` quando quiser a camada de consultoria também.
75
+ **Modo estrito.** As detecções mais agressivas — `.only`, `continue-on-error`, testes vazios, abuso de retry — ficam na quarentena. Só rodam com `--strict` e são limitadas a severidade `info`: elas sinalizam, nunca bloqueiam. O scan padrão (`npx mjolnir-qa@4.0.0` sem `--strict`) cobre apenas regras core e extended. Adicione `--strict` quando quiser a camada de consultoria também.
62
76
 
63
77
  O Mjölnir lê a suíte, os workflows de CI e, se você tiver, o relatório de uma execução real. Ele não roda seus testes, não instala suas dependências e não executa o código que analisa. E quando não tem evidência, ele diz isso em vez de inventar confiança:
64
78
 
@@ -93,7 +107,7 @@ Um scan real de [`examples/demo-repo`](examples/demo-repo), uma pequena suíte P
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="Um quadro da gravação de demonstração: npx mjolnir-qa@latest analisando o repositório de demonstração em uma janela de terminal" width="900" />
110
+ <img src="assets/video/mjolnir-demo-poster.png" alt="Um quadro da gravação de demonstração: npx mjolnir-qa@4.0.0 analisando o repositório de demonstração em uma janela de terminal" width="900" />
97
111
  </a>
98
112
  </p>
99
113
 
@@ -162,7 +176,7 @@ Essa é a unidade de valor: um lugar onde a CI reporta uma aprovação que não
162
176
  ## Início rápido
163
177
 
164
178
  ```bash
165
- npx mjolnir-qa@latest
179
+ npx mjolnir-qa@4.0.0
166
180
  ```
167
181
 
168
182
  Ele analisa o diretório atual e imprime o Trust Report: o que encontrou, até onde você pode confiar, por quê e o que fazer em seguida. Sai com `0` quando nada foi encontrado no nível do gate ou acima.
@@ -170,24 +184,39 @@ Ele analisa o diretório atual e imprime o Trust Report: o que encontrou, até o
170
184
  Na CI, analise só o que a branch introduziu, para que uma suíte legada não afogue seu primeiro pull request:
171
185
 
172
186
  ```bash
173
- npx mjolnir-qa@latest --scope changed
187
+ npx mjolnir-qa@4.0.0 --scope changed
174
188
  ```
175
189
 
176
- `mjolnir ci install` grava isso como um workflow do GitHub Actions, usando a [action](https://github.com/Sergey-Bar/Mjolnir#readme) fixada na tag principal `v1` (ou `npx` puro com `--no-action`). Ele continua consultivo até você decidir que deve bloquear.
177
-
178
- | Comando | O que faz |
179
- | ----------------------------------- | ------------------------------------------------------------- |
180
- | `mjolnir` | Trust Report: veredito, confiança, próxima ação |
181
- | `mjolnir --scope changed` | Só o que sua branch introduziu (a forma para CI) |
182
- | `mjolnir ci install` | Gera o workflow consultivo de PR (baseado na action) |
183
- | `mjolnir explain QA-CI-001` | O quê, por quê e correção, mais a taxa de FP medida |
184
- | `mjolnir why src/a.spec.ts:42` | Por que exatamente esta linha foi apontada. Nunca bloqueia. |
185
- | `mjolnir forensics ./test-results/` | Evidência de runtime de uma execução real |
186
- | `mjolnir trust-report` | Trust Artifact autocontido (md + json) |
187
- | `mjolnir handoff` | Plano de correção para um agente de código |
188
- | `mjolnir --json` / `--format sarif` | Saída legível por máquina, GitHub Code Scanning |
189
- | `mjolnir --format codequality` | Relatório do GitLab Code Quality (artefato do widget de MR) |
190
- | `mjolnir --strict` | Também roda as regras do nível quarantine (maior risco de FP) |
190
+ `mjolnir ci install` grava isso como um workflow do GitHub Actions, usando a [action](https://github.com/Sergey-Bar/Mjolnir#readme) fixada na tag principal `v3` (ou `npx` puro com `--no-action`). Ele continua consultivo até você decidir que deve bloquear.
191
+
192
+ | Comando | O que faz |
193
+ | --------------------------------------------- | ------------------------------------------------------------- |
194
+ | `mjolnir` | Trust Report: veredito, confiança, próxima ação |
195
+ | `mjolnir --scope changed` | Só o que sua branch introduziu (a forma para CI) |
196
+ | `mjolnir ci install` | Gera o workflow consultivo de PR (baseado na 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` | O quê, por quê e correção, mais a taxa de FP medida |
213
+ | `mjolnir why src/a.spec.ts:42` | Por que exatamente esta linha foi apontada. Nunca bloqueia. |
214
+ | `mjolnir forensics ./test-results/` | Evidência de runtime de uma execução real |
215
+ | `mjolnir trust-report` | Trust Artifact autocontido (md + json) |
216
+ | `mjolnir handoff` | Plano de correção para um agente de código |
217
+ | `mjolnir --json` / `--format sarif` | Saída legível por máquina, GitHub Code Scanning |
218
+ | `mjolnir --format codequality` | Relatório do GitLab Code Quality (artefato do widget de MR) |
219
+ | `mjolnir --strict` | Também roda as regras do nível quarantine (maior risco de FP) |
191
220
 
192
221
  <details>
193
222
  <summary><strong>Todos os outros comandos</strong> — triagem de testes instáveis, relatórios, governança</summary>
@@ -452,18 +481,18 @@ mjolnir ci install
452
481
  Ou adicione a action do Marketplace a um workflow que você já tem:
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
- Fixe `@v1` para acompanhar a linha principal, ou uma tag exata (`@v0.5.32`) para um gate reproduzível. [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) cobre o Marketplace, o Smithery e os registros MCP.
490
+ Fixe `@v3` para acompanhar a linha principal, ou uma tag exata (`@v0.5.32`) para um gate reproduzível. [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) cobre o Marketplace, o Smithery e os registros MCP.
462
491
 
463
492
  Para levar os achados ao GitHub Code Scanning, envie o SARIF (requer `security-events: write` no escopo do workflow ou job):
464
493
 
465
494
  ```yaml
466
- - run: npx mjolnir-qa@latest --format sarif > mjolnir.sarif
495
+ - run: npx mjolnir-qa@4.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 @@ No GitLab, `--format codequality` grava o relatório do Code Quality que o widge
476
505
  ### Atribuição no escopo alterado
477
506
 
478
507
  ```bash
479
- npx mjolnir-qa@latest --scope changed
508
+ npx mjolnir-qa@4.0.0 --scope changed
480
509
  ```
481
510
 
482
511
  Os achados são atribuídos às linhas que sua branch adicionou, medidas contra a **merge-base**. O escopo é o mesmo conjunto de arquivos que um scan completo descobre (specs TS/JS e configurações de adaptadores, `test_*.py`, `*Test.java`, `*Tests.cs`, `.github/workflows/*.yml`), mais as alterações não commitadas e não rastreadas, então funciona antes do commit. A base é resolvida como `main → master → origin/main → origin/master → origin/HEAD`; substitua com `--base <ref>`.
@@ -504,7 +533,7 @@ SCAN → EVIDENCE → HANDOFF → AGENT → RE-SCAN → PROOF
504
533
  Adicione-o a um cliente que tenha sua própria 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@4.0.0 mcp
508
537
  ```
509
538
 
510
539
  Ou a qualquer cliente que aceite um bloco `mcpServers`:
@@ -512,7 +541,7 @@ Ou a qualquer cliente que aceite um bloco `mcpServers`:
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@4.0.0", "mcp"] }
516
545
  }
517
546
  }
518
547
  ```
@@ -603,7 +632,7 @@ O ambiente de desenvolvimento, os comandos dos gates permanentes e as leis anti-
603
632
  <img src="assets/readme/closing.svg" alt="Rode no seu repo." width="100%" />
604
633
 
605
634
  ```bash
606
- npx mjolnir-qa@latest
635
+ npx mjolnir-qa@4.0.0
607
636
  ```
608
637
 
609
638
  [Leia o guia](https://sergey-bar.github.io/Mjolnir/guide/getting-started) · [Site de documentação](https://sergey-bar.github.io/Mjolnir/) · [npm](https://www.npmjs.com/package/mjolnir-qa)
package/README.bs.md CHANGED
@@ -18,7 +18,7 @@ a zatim ocjenjuje koliko se rezultatu može vjerovati, uz dokaz za svaki bod.
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
  [Pogledajte kako radi](#pogledajte-kako-radi) · [Brzi početak](#brzi-početak) · [Šta pronalazi](#šta-mjölnir-pronalazi) · [Ocjena](#ocjena-vrijednosti) · [Dokazi](#model-dokaza) · [Analiza pokretanja](#analiza-pokretanja-testova) · [CI](#integritet-ci-ja) · [Agenti](#ai-agenti) · [Sigurnost](#povjerenje-i-sigurnost) · [Ograničenja](#šta-vam-mjölnir-ne-može-reći) · [Dokumentacija](#dokumentacija)
@@ -28,9 +28,9 @@ npx mjolnir-qa@latest
28
28
 
29
29
  [English](README.md) | [简体中文](README.zh.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
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
  ## Zelena kvačica je tvrdnja, a ne dokaz
42
56
 
43
57
  Zelena kvačica znači da pipeline nije pao. Ne znači da su se testovi izvršili, niti da su mogli pasti. Svaki od ovih slučajeva prolazi zeleno:
@@ -58,7 +72,7 @@ Nijedan od njih ne boji pipeline u crveno, a svaki na reviewu izgleda namjerno.
58
72
 
59
73
  <sub>Svaki nalaz koji je demo skeniranje prijavilo za ovaj workflow, u redu u kojem je prijavljen. Generisano naredbom `npm run docs:readme-brand` iz [`demo-report.json`](assets/readme/demo-report.json) i zaključano protiv odstupanja u CI-ju.</sub>
60
74
 
61
- **Strogi režim.** Najagresivnija otkrivanja — `.only`, `continue-on-error`, prazni testovi, zloupotreba ponavljanja — žive u karantinskom nivou. Rade samo pod `--strict` i ograničena su na `info` ozbiljnost: označavaju, ali nikada ne blokiraju. Podrazumijevano skeniranje (`npx mjolnir-qa@latest` bez `--strict`) pokriva samo osnovna i proširena pravila. Dodajte `--strict` kada želite i savjetodavni sloj.
75
+ **Strogi režim.** Najagresivnija otkrivanja — `.only`, `continue-on-error`, prazni testovi, zloupotreba ponavljanja — žive u karantinskom nivou. Rade samo pod `--strict` i ograničena su na `info` ozbiljnost: označavaju, ali nikada ne blokiraju. Podrazumijevano skeniranje (`npx mjolnir-qa@3.0.0` bez `--strict`) pokriva samo osnovna i proširena pravila. Dodajte `--strict` kada želite i savjetodavni sloj.
62
76
 
63
77
  Mjölnir čita skup testova, CI workflowe i, ako ga imate, izvještaj stvarnog pokretanja. Ne pokreće vaše testove, ne instalira vaše zavisnosti i ne izvršava kod koji skenira. A kada nema dokaza, to i kaže umjesto da izmišlja pouzdanost:
64
78
 
@@ -93,7 +107,7 @@ Stvarno skeniranje [`examples/demo-repo`](examples/demo-repo), malog Playwright
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="Kadar demo snimka: npx mjolnir-qa@latest skenira demo repozitorij u prozoru terminala" width="900" />
110
+ <img src="assets/video/mjolnir-demo-poster.png" alt="Kadar demo snimka: npx mjolnir-qa@3.0.0 skenira demo repozitorij u prozoru terminala" width="900" />
97
111
  </a>
98
112
  </p>
99
113
 
@@ -162,7 +176,7 @@ To je jedinica vrijednosti: jedno mjesto na kojem CI prijavljuje prolaz koji nij
162
176
  ## Brzi početak
163
177
 
164
178
  ```bash
165
- npx mjolnir-qa@latest
179
+ npx mjolnir-qa@3.0.0
166
180
  ```
167
181
 
168
182
  Skenira trenutni direktorij i ispisuje Trust Report: šta je pronašao, koliko mu možete vjerovati, zašto i šta dalje uraditi. Završava s `0` kada ništa na nivou kapije ili iznad nije pronađeno.
@@ -170,24 +184,39 @@ Skenira trenutni direktorij i ispisuje Trust Report: šta je pronašao, koliko m
170
184
  U CI-ju skenirajte samo ono što je grana uvela, kako stari skup testova ne bi potopio vaš prvi 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` to zapisuje kao GitHub Actions workflow, koristeći [action](https://github.com/Sergey-Bar/Mjolnir#readme) prikovan za glavni tag `v1` (ili obični `npx` s `--no-action`). Ostaje savjetodavan dok ne odlučite da treba blokirati.
177
-
178
- | Naredba | Šta radi |
179
- | ----------------------------------- | ------------------------------------------------------- |
180
- | `mjolnir` | Trust Report: presuda, pouzdanost, sljedeći korak |
181
- | `mjolnir --scope changed` | Samo ono što je vaša grana uvela (CI oblik) |
182
- | `mjolnir ci install` | Generiše savjetodavni PR workflow (zasnovan na actionu) |
183
- | `mjolnir explain QA-CI-001` | Šta, zašto i ispravka, plus izmjerena FP stopa |
184
- | `mjolnir why src/a.spec.ts:42` | Zašto je baš ovaj red označen. Nikad ne blokira. |
185
- | `mjolnir forensics ./test-results/` | Dokazi iz stvarnog pokretanja |
186
- | `mjolnir trust-report` | Samostalni Trust Artifact (md + json) |
187
- | `mjolnir handoff` | Plan sanacije za agenta za kodiranje |
188
- | `mjolnir --json` / `--format sarif` | Mašinski čitljiv izlaz, GitHub Code Scanning |
189
- | `mjolnir --format codequality` | GitLab Code Quality izvještaj (artefakt MR widgeta) |
190
- | `mjolnir --strict` | Pokreće i pravila nivoa quarantine (veći FP rizik) |
190
+ `mjolnir ci install` to zapisuje kao GitHub Actions workflow, koristeći [action](https://github.com/Sergey-Bar/Mjolnir#readme) prikovan za glavni tag `v3` (ili obični `npx` s `--no-action`). Ostaje savjetodavan dok ne odlučite da treba blokirati.
191
+
192
+ | Naredba | Šta radi |
193
+ | --------------------------------------------- | ------------------------------------------------------- |
194
+ | `mjolnir` | Trust Report: presuda, pouzdanost, sljedeći korak |
195
+ | `mjolnir --scope changed` | Samo ono što je vaša grana uvela (CI oblik) |
196
+ | `mjolnir ci install` | Generiše savjetodavni PR workflow (zasnovan na actionu) |
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` | Šta, zašto i ispravka, plus izmjerena FP stopa |
213
+ | `mjolnir why src/a.spec.ts:42` | Zašto je baš ovaj red označen. Nikad ne blokira. |
214
+ | `mjolnir forensics ./test-results/` | Dokazi iz stvarnog pokretanja |
215
+ | `mjolnir trust-report` | Samostalni Trust Artifact (md + json) |
216
+ | `mjolnir handoff` | Plan sanacije za agenta za kodiranje |
217
+ | `mjolnir --json` / `--format sarif` | Mašinski čitljiv izlaz, GitHub Code Scanning |
218
+ | `mjolnir --format codequality` | GitLab Code Quality izvještaj (artefakt MR widgeta) |
219
+ | `mjolnir --strict` | Pokreće i pravila nivoa quarantine (veći FP rizik) |
191
220
 
192
221
  <details>
193
222
  <summary><strong>Sve ostale naredbe</strong> — trijaža nestabilnih testova, izvještavanje, upravljanje</summary>
@@ -452,18 +481,18 @@ mjolnir ci install
452
481
  Ili dodajte Marketplace action u workflow koji već imate:
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
- Prikujte `@v1` da pratite glavnu liniju, ili tačan tag (`@v0.5.32`) za ponovljivu kapiju. [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) pokriva Marketplace, Smithery i MCP registre.
490
+ Prikujte `@v3` da pratite glavnu liniju, ili tačan tag (`@v0.5.32`) za ponovljivu kapiju. [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) pokriva Marketplace, Smithery i MCP registre.
462
491
 
463
492
  Da nalaze stavite u GitHub Code Scanning, otpremite SARIF (potrebno `security-events: write` na nivou workflowa ili joba):
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 @@ Na GitLabu, `--format codequality` zapisuje Code Quality izvještaj koji čitaju
476
505
  ### Pripisivanje u opsegu promjena
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
  Nalazi se pripisuju redovima koje je vaša grana dodala, mjereno u odnosu na **merge-base**. Opseg je isti skup datoteka koji otkriva puno skeniranje (TS/JS specifikacije i konfiguracije adaptera, `test_*.py`, `*Test.java`, `*Tests.cs`, `.github/workflows/*.yml`), plus necommitovane i nepraćene promjene, pa radi i prije commita. Baza se razrješava redom `main → master → origin/main → origin/master → origin/HEAD`; zamijenite je s `--base <ref>`.
@@ -504,7 +533,7 @@ SCAN → EVIDENCE → HANDOFF → AGENT → RE-SCAN → PROOF
504
533
  Dodajte ga klijentu koji ima vlastiti 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
  Ili bilo kojem klijentu koji prima `mcpServers` blok:
@@ -512,7 +541,7 @@ Ili bilo kojem klijentu koji prima `mcpServers` blok:
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 @@ Razvojno okruženje, naredbe stalnih kapija te zakoni anti-creep i zaštitnog zi
603
632
  <img src="assets/readme/closing.svg" alt="Pokrenite ga na svom repozitoriju." 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
  [Pročitajte vodič](https://sergey-bar.github.io/Mjolnir/guide/getting-started) · [Stranica dokumentacije](https://sergey-bar.github.io/Mjolnir/) · [npm](https://www.npmjs.com/package/mjolnir-qa)