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/CHANGELOG.md +360 -6
- package/README.ar.md +58 -29
- package/README.bn.md +58 -29
- package/README.br.md +58 -29
- package/README.bs.md +58 -29
- package/README.da.md +59 -30
- package/README.de.md +59 -30
- package/README.es.md +58 -29
- package/README.fr.md +59 -30
- package/README.gr.md +58 -29
- package/README.he.md +58 -29
- package/README.it.md +58 -29
- package/README.ja.md +58 -29
- package/README.ko.md +58 -29
- package/README.md +95 -56
- package/README.no.md +58 -29
- package/README.pl.md +58 -29
- package/README.ru.md +58 -29
- package/README.th.md +58 -29
- package/README.tr.md +58 -29
- package/README.uk.md +58 -29
- package/README.vi.md +58 -29
- package/README.zh.md +58 -29
- package/README.zht.md +58 -29
- package/dist/cli.d.mts +218 -14
- package/dist/cli.mjs +1410 -883
- package/dist/mcp/stdio.mjs +1072 -408
- package/dist/scan-pipeline-Bg-46cLS.mjs +2 -0
- package/dist/{scan-pipeline-CAH9_Qgh.mjs → scan-pipeline-CCJdEKNa.mjs} +1443 -809
- package/package.json +52 -8
- package/dist/scan-pipeline-CRe7-MQn.mjs +0 -2
package/README.tr.md
CHANGED
|
@@ -18,7 +18,7 @@ ardından sonuca ne kadar güvenilebileceğini, her puanın kanıtıyla birlikte
|
|
|
18
18
|
[](https://nodejs.org)
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
npx mjolnir-qa@
|
|
21
|
+
npx mjolnir-qa@3.0.0
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
[Çalışırken görün](#çalışırken-görün) · [Hızlı başlangıç](#hızlı-başlangıç) · [Neler bulur](#mjölnir-neler-bulur) · [Puan](#güvenilirlik-puanı) · [Kanıt](#kanıt-modeli) · [Çalıştırma analizi](#test-çalıştırma-analizi) · [CI](#ci-bütünlüğü) · [Ajanlar](#yapay-zekâ-ajanları) · [Güvenlik](#güven-ve-güvenlik) · [Sınırlar](#mjölnirin-size-söyleyemedikleri) · [Belgeler](#belgeler)
|
|
@@ -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.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-
|
|
31
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-26.
|
|
32
32
|
|
|
33
|
-
<!-- Source hash:
|
|
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
|
## Yeşil onay işareti bir iddiadır, kanıt değil
|
|
42
56
|
|
|
43
57
|
Yeşil onay işareti pipeline'ın başarısız olmadığı anlamına gelir. Testlerin çalıştığı ya da başarısız olabilecekleri anlamına gelmez. Bunların her biri yeşil geçer:
|
|
@@ -58,7 +72,7 @@ Hiçbiri pipeline'ı kırmızıya çevirmez ve her biri incelemede kasıtlı gö
|
|
|
58
72
|
|
|
59
73
|
<sub>Demo taramasının bu workflow için raporladığı her bulgu, raporlandığı satırda. `npm run docs:readme-brand` ile [`demo-report.json`](assets/readme/demo-report.json) kaynağından üretilir ve CI'da sapmaya karşı kilitlenir.</sub>
|
|
60
74
|
|
|
61
|
-
**Katı mod.** En agresif tespitler — `.only`, `continue-on-error`, boş testler, tekrar kötüye kullanımı — karantina katında yaşar. Yalnızca `--strict` altında çalışır ve `info` şiddetindedir: işaretlerler, asla engellemezler. Varsayılan tarama (`--strict` olmayan `npx mjolnir-qa@
|
|
75
|
+
**Katı mod.** En agresif tespitler — `.only`, `continue-on-error`, boş testler, tekrar kötüye kullanımı — karantina katında yaşar. Yalnızca `--strict` altında çalışır ve `info` şiddetindedir: işaretlerler, asla engellemezler. Varsayılan tarama (`--strict` olmayan `npx mjolnir-qa@3.0.0`) yalnızca çekirdek ve genişletilmiş kuralları kapsar. Danışmanlık katmanını da istediğinizde `--strict` ekleyin.
|
|
62
76
|
|
|
63
77
|
Mjölnir test paketini, CI workflow'larını ve varsa gerçek bir çalıştırmanın raporunu okur. Testlerinizi çalıştırmaz, bağımlılıklarınızı kurmaz ve taradığı kodu yürütmez. Kanıtı olmadığında da güven uydurmak yerine bunu açıkça söyler:
|
|
64
78
|
|
|
@@ -93,7 +107,7 @@ CI workflow'u olan küçük bir Playwright paketi olan [`examples/demo-repo`](ex
|
|
|
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="Demo kaydından bir kare: npx mjolnir-qa@
|
|
110
|
+
<img src="assets/video/mjolnir-demo-poster.png" alt="Demo kaydından bir kare: npx mjolnir-qa@3.0.0 bir terminal penceresinde demo deposunu tarıyor" width="900" />
|
|
97
111
|
</a>
|
|
98
112
|
</p>
|
|
99
113
|
|
|
@@ -162,7 +176,7 @@ Değer birimi budur: CI'ın hak etmediği bir geçişi raporladığı tek bir ye
|
|
|
162
176
|
## Hızlı başlangıç
|
|
163
177
|
|
|
164
178
|
```bash
|
|
165
|
-
npx mjolnir-qa@
|
|
179
|
+
npx mjolnir-qa@3.0.0
|
|
166
180
|
```
|
|
167
181
|
|
|
168
182
|
Geçerli dizini tarar ve Trust Report'u yazdırır: ne bulduğunu, ne kadar güvenebileceğinizi, nedenini ve sırada ne yapmanız gerektiğini. Kapı düzeyinde ya da üstünde hiçbir şey bulunmazsa `0` ile çıkar.
|
|
@@ -170,24 +184,39 @@ Geçerli dizini tarar ve Trust Report'u yazdırır: ne bulduğunu, ne kadar güv
|
|
|
170
184
|
CI'da yalnızca dalın getirdiklerini tarayın; böylece eski bir test paketi ilk pull request'inizi boğmaz:
|
|
171
185
|
|
|
172
186
|
```bash
|
|
173
|
-
npx mjolnir-qa@
|
|
187
|
+
npx mjolnir-qa@3.0.0 --scope changed
|
|
174
188
|
```
|
|
175
189
|
|
|
176
|
-
`mjolnir ci install` bunu, ana `
|
|
177
|
-
|
|
178
|
-
| Komut
|
|
179
|
-
|
|
|
180
|
-
| `mjolnir`
|
|
181
|
-
| `mjolnir --scope changed`
|
|
182
|
-
| `mjolnir ci install`
|
|
183
|
-
| `mjolnir
|
|
184
|
-
| `mjolnir
|
|
185
|
-
| `mjolnir
|
|
186
|
-
| `mjolnir
|
|
187
|
-
| `mjolnir
|
|
188
|
-
| `mjolnir
|
|
189
|
-
| `mjolnir
|
|
190
|
-
| `mjolnir --
|
|
190
|
+
`mjolnir ci install` bunu, ana `v3` etiketine sabitlenmiş [action](https://github.com/Sergey-Bar/Mjolnir#readme) ile bir GitHub Actions workflow'u olarak yazar (ya da `--no-action` ile düz `npx`). Siz engellemesi gerektiğine karar verene kadar tavsiye niteliğinde kalır.
|
|
191
|
+
|
|
192
|
+
| Komut | Ne yapar |
|
|
193
|
+
| --------------------------------------------- | --------------------------------------------------------------------- |
|
|
194
|
+
| `mjolnir` | Trust Report: karar, güven düzeyi, sonraki adım |
|
|
195
|
+
| `mjolnir --scope changed` | Yalnızca dalınızın getirdikleri (CI biçimi) |
|
|
196
|
+
| `mjolnir ci install` | Tavsiye niteliğindeki PR workflow'unu üretir (action tabanlı) |
|
|
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` | Ne, neden ve düzeltme; ayrıca ölçülmüş FP oranı |
|
|
213
|
+
| `mjolnir why src/a.spec.ts:42` | Tam olarak bu satırın neden işaretlendiği. Asla engellemez. |
|
|
214
|
+
| `mjolnir forensics ./test-results/` | Gerçek bir çalıştırmadan çalışma zamanı kanıtı |
|
|
215
|
+
| `mjolnir trust-report` | Kendi içinde bütün Trust Artifact (md + json) |
|
|
216
|
+
| `mjolnir handoff` | Kodlama ajanı için iyileştirme planı |
|
|
217
|
+
| `mjolnir --json` / `--format sarif` | Makine tarafından okunabilir çıktı, GitHub Code Scanning |
|
|
218
|
+
| `mjolnir --format codequality` | GitLab Code Quality raporu (MR widget'ı artefaktı) |
|
|
219
|
+
| `mjolnir --strict` | quarantine düzeyindeki kuralları da çalıştırır (daha yüksek FP riski) |
|
|
191
220
|
|
|
192
221
|
<details>
|
|
193
222
|
<summary><strong>Diğer tüm komutlar</strong> — kararsız test triyajı, raporlama, yönetişim</summary>
|
|
@@ -452,18 +481,18 @@ mjolnir ci install
|
|
|
452
481
|
Ya da Marketplace action'ını mevcut bir workflow'a ekleyin:
|
|
453
482
|
|
|
454
483
|
```yaml
|
|
455
|
-
- uses: Sergey-Bar/Mjolnir@
|
|
484
|
+
- uses: Sergey-Bar/Mjolnir@v3
|
|
456
485
|
with:
|
|
457
486
|
scope: changed
|
|
458
487
|
fail-on: error
|
|
459
488
|
```
|
|
460
489
|
|
|
461
|
-
Ana sürüm hattını izlemek için `@
|
|
490
|
+
Ana sürüm hattını izlemek için `@v3`'i, tekrarlanabilir bir kapı için ise tam bir etiketi (`@v0.5.32`) sabitleyin. [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) Marketplace'i, Smithery'yi ve MCP kayıtlarını kapsar.
|
|
462
491
|
|
|
463
492
|
Bulguları GitHub Code Scanning'e aktarmak için SARIF yükleyin (workflow veya job kapsamında `security-events: write` gerekir):
|
|
464
493
|
|
|
465
494
|
```yaml
|
|
466
|
-
- run: npx mjolnir-qa@
|
|
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'de `--format codequality`, MR widget'ının ve diff açıklamalarının o
|
|
|
476
505
|
### Değişen kapsamda atıf
|
|
477
506
|
|
|
478
507
|
```bash
|
|
479
|
-
npx mjolnir-qa@
|
|
508
|
+
npx mjolnir-qa@3.0.0 --scope changed
|
|
480
509
|
```
|
|
481
510
|
|
|
482
511
|
Bulgular, dalınızın eklediği satırlara **merge-base**'e göre ölçülerek atfedilir. Kapsam, tam bir taramanın keşfettiği dosya kümesinin aynısıdır (TS/JS spec'leri ve adaptör yapılandırmaları, `test_*.py`, `*Test.java`, `*Tests.cs`, `.github/workflows/*.yml`); buna commit edilmemiş ve izlenmeyen değişiklikler de eklenir, böylece commit etmeden önce de çalışır. Taban `main → master → origin/main → origin/master → origin/HEAD` sırasıyla çözülür; `--base <ref>` ile geçersiz kılabilirsiniz.
|
|
@@ -504,7 +533,7 @@ SCAN → EVIDENCE → HANDOFF → AGENT → RE-SCAN → PROOF
|
|
|
504
533
|
Kendi CLI'ı olan bir istemciye ekleyin:
|
|
505
534
|
|
|
506
535
|
```bash
|
|
507
|
-
claude mcp add mjolnir -- npx -y mjolnir-qa@
|
|
536
|
+
claude mcp add mjolnir -- npx -y mjolnir-qa@3.0.0 mcp
|
|
508
537
|
```
|
|
509
538
|
|
|
510
539
|
Ya da `mcpServers` bloğu kabul eden herhangi bir istemciye:
|
|
@@ -512,7 +541,7 @@ Ya da `mcpServers` bloğu kabul eden herhangi bir istemciye:
|
|
|
512
541
|
```json
|
|
513
542
|
{
|
|
514
543
|
"mcpServers": {
|
|
515
|
-
"mjolnir": { "command": "npx", "args": ["-y", "mjolnir-qa@
|
|
544
|
+
"mjolnir": { "command": "npx", "args": ["-y", "mjolnir-qa@3.0.0", "mcp"] }
|
|
516
545
|
}
|
|
517
546
|
}
|
|
518
547
|
```
|
|
@@ -603,7 +632,7 @@ Geliştirme ortamı, kalıcı kapı komutları ve anti-creep ile fixture güvenl
|
|
|
603
632
|
<img src="assets/readme/closing.svg" alt="Deponuzda çalıştırın." width="100%" />
|
|
604
633
|
|
|
605
634
|
```bash
|
|
606
|
-
npx mjolnir-qa@
|
|
635
|
+
npx mjolnir-qa@3.0.0
|
|
607
636
|
```
|
|
608
637
|
|
|
609
638
|
[Rehberi okuyun](https://sergey-bar.github.io/Mjolnir/guide/getting-started) · [Belge sitesi](https://sergey-bar.github.io/Mjolnir/) · [npm](https://www.npmjs.com/package/mjolnir-qa)
|
package/README.uk.md
CHANGED
|
@@ -18,7 +18,7 @@ Mjölnir знаходить тести, які не можуть впасти,
|
|
|
18
18
|
[](https://nodejs.org)
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
npx mjolnir-qa@
|
|
21
|
+
npx mjolnir-qa@3.0.0
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
[Подивитися в роботі](#подивитися-в-роботі) · [Швидкий старт](#швидкий-старт) · [Що знаходить](#що-знаходить-mjölnir) · [Оцінка](#оцінка-надійності) · [Докази](#модель-доказів) · [Аналіз прогонів](#аналіз-прогонів-тестів) · [CI](#цілісність-ci) · [Агенти](#ші-агенти) · [Безпека](#довіра-і-безпека) · [Обмеження](#чого-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.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-
|
|
31
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-26.
|
|
32
32
|
|
|
33
|
-
<!-- Source hash:
|
|
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@
|
|
75
|
+
**Суворий режим.** Найагресивніші детекції — `.only`, `continue-on-error`, порожні тести, зловживання повторами — живуть у карантинному ярусі. Вони запускаються лише з `--strict` і обмежені серйозністю `info`: позначають, але ніколи не блокують. Сканування за замовчуванням (`npx mjolnir-qa@3.0.0` без `--strict`) покриває лише основні та розширені правила. Додайте `--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@
|
|
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@
|
|
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@
|
|
187
|
+
npx mjolnir-qa@3.0.0 --scope changed
|
|
174
188
|
```
|
|
175
189
|
|
|
176
|
-
`mjolnir ci install` записує це як workflow GitHub Actions з [action](https://github.com/Sergey-Bar/Mjolnir#readme), закріпленим на мажорному тезі `
|
|
177
|
-
|
|
178
|
-
| Команда
|
|
179
|
-
|
|
|
180
|
-
| `mjolnir`
|
|
181
|
-
| `mjolnir --scope changed`
|
|
182
|
-
| `mjolnir ci install`
|
|
183
|
-
| `mjolnir
|
|
184
|
-
| `mjolnir
|
|
185
|
-
| `mjolnir
|
|
186
|
-
| `mjolnir
|
|
187
|
-
| `mjolnir
|
|
188
|
-
| `mjolnir
|
|
189
|
-
| `mjolnir
|
|
190
|
-
| `mjolnir --
|
|
190
|
+
`mjolnir ci install` записує це як workflow GitHub Actions з [action](https://github.com/Sergey-Bar/Mjolnir#readme), закріпленим на мажорному тезі `v3` (або просто `npx` з `--no-action`). Він залишається рекомендаційним, доки ви не вирішите, що він має блокувати.
|
|
191
|
+
|
|
192
|
+
| Команда | Що робить |
|
|
193
|
+
| --------------------------------------------- | ---------------------------------------------------------- |
|
|
194
|
+
| `mjolnir` | Trust Report: вердикт, упевненість, наступна дія |
|
|
195
|
+
| `mjolnir --scope changed` | Лише те, що внесла ваша гілка (варіант для CI) |
|
|
196
|
+
| `mjolnir ci install` | Створює рекомендаційний workflow для PR (на основі 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
|
Або додайте action із Marketplace до вже наявного workflow:
|
|
453
482
|
|
|
454
483
|
```yaml
|
|
455
|
-
- uses: Sergey-Bar/Mjolnir@
|
|
484
|
+
- uses: Sergey-Bar/Mjolnir@v3
|
|
456
485
|
with:
|
|
457
486
|
scope: changed
|
|
458
487
|
fail-on: error
|
|
459
488
|
```
|
|
460
489
|
|
|
461
|
-
Закріпіть `@
|
|
490
|
+
Закріпіть `@v3`, щоб слідувати мажорній лінії, або точний тег (`@v0.5.32`) для відтворюваного гейта. [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) описує Marketplace, Smithery та реєстри MCP.
|
|
462
491
|
|
|
463
492
|
Щоб надіслати знахідки в GitHub Code Scanning, завантажте SARIF (потрібен `security-events: write` на рівні workflow або job):
|
|
464
493
|
|
|
465
494
|
```yaml
|
|
466
|
-
- run: npx mjolnir-qa@
|
|
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@
|
|
508
|
+
npx mjolnir-qa@3.0.0 --scope changed
|
|
480
509
|
```
|
|
481
510
|
|
|
482
511
|
Знахідки прив'язуються до рядків, доданих вашою гілкою, відносно **merge-base**. Область — той самий набір файлів, що знаходить повне сканування (специфікації TS/JS і конфігурації адаптерів, `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@
|
|
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@
|
|
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@
|
|
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.vi.md
CHANGED
|
@@ -18,7 +18,7 @@ rồi chấm điểm mức độ đáng tin của kết quả, kèm bằng chứ
|
|
|
18
18
|
[](https://nodejs.org)
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
npx mjolnir-qa@
|
|
21
|
+
npx mjolnir-qa@3.0.0
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
[Xem cách hoạt động](#xem-cách-hoạt-động) · [Bắt đầu nhanh](#bắt-đầu-nhanh) · [Phát hiện gì](#mjölnir-phát-hiện-gì) · [Điểm](#điểm-đáng-tin) · [Bằng chứng](#mô-hình-bằng-chứng) · [Phân tích lần chạy](#phân-tích-pháp-chứng-lúc-chạy) · [CI](#tính-toàn-vẹn-ci) · [Tác tử](#tác-tử-ai) · [Bảo mật](#tin-cậy-và-bảo-mật) · [Giới hạn](#những-điều-mjölnir-không-thể-cho-bạn-biết) · [Tài liệu](#tài-liệu)
|
|
@@ -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.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-
|
|
31
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-26.
|
|
32
32
|
|
|
33
|
-
<!-- Source hash:
|
|
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
|
## Dấu tích xanh là một lời khẳng định, không phải bằng chứng
|
|
42
56
|
|
|
43
57
|
Dấu tích xanh nghĩa là pipeline không thất bại. Nó không có nghĩa là test đã chạy, hay test đã có thể thất bại. Mỗi trường hợp dưới đây đều qua với màu xanh:
|
|
@@ -58,7 +72,7 @@ Không cái nào khiến pipeline chuyển đỏ, và cái nào trông cũng có
|
|
|
58
72
|
|
|
59
73
|
<sub>Mọi phát hiện mà lần quét demo báo cáo cho workflow này, tại dòng được báo cáo. Được tạo bởi `npm run docs:readme-brand` từ [`demo-report.json`](assets/readme/demo-report.json) và được khóa chống sai lệch trong CI.</sub>
|
|
60
74
|
|
|
61
|
-
**Chế độ nghiêm ngặt.** Các phát hiện hung hăng nhất — `.only`, `continue-on-error`, kiểm tra trống, lạm dụng thử lại — nằm ở tầng cách ly. Chúng chỉ chạy với `--strict` và bị giới hạn ở mức nghiêm trọng `info`: chúng đánh dấu, không bao giờ chặn. Quét mặc định (`npx mjolnir-qa@
|
|
75
|
+
**Chế độ nghiêm ngặt.** Các phát hiện hung hăng nhất — `.only`, `continue-on-error`, kiểm tra trống, lạm dụng thử lại — nằm ở tầng cách ly. Chúng chỉ chạy với `--strict` và bị giới hạn ở mức nghiêm trọng `info`: chúng đánh dấu, không bao giờ chặn. Quét mặc định (`npx mjolnir-qa@3.0.0` không có `--strict`) chỉ bao gồm các quy tắc cốt lõi và mở rộng. Thêm `--strict` khi bạn cũng muốn lớp tư vấn.
|
|
62
76
|
|
|
63
77
|
Mjölnir đọc bộ test, các workflow CI và, nếu bạn có, báo cáo của một lần chạy thật. Nó không chạy test của bạn, không cài dependency và không thực thi mã mà nó quét. Khi không có bằng chứng, nó nói thẳng như vậy thay vì bịa ra sự tự tin:
|
|
64
78
|
|
|
@@ -93,7 +107,7 @@ Một lần quét thật trên [`examples/demo-repo`](examples/demo-repo), một
|
|
|
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="Một khung hình từ bản ghi demo: npx mjolnir-qa@
|
|
110
|
+
<img src="assets/video/mjolnir-demo-poster.png" alt="Một khung hình từ bản ghi demo: npx mjolnir-qa@3.0.0 đang quét kho demo trong cửa sổ terminal" 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
|
## Bắt đầu nhanh
|
|
163
177
|
|
|
164
178
|
```bash
|
|
165
|
-
npx mjolnir-qa@
|
|
179
|
+
npx mjolnir-qa@3.0.0
|
|
166
180
|
```
|
|
167
181
|
|
|
168
182
|
Nó quét thư mục hiện tại và in ra Trust Report: nó tìm thấy gì, bạn có thể tin đến mức nào, vì sao, và bước tiếp theo là gì. Nó thoát với `0` khi không tìm thấy gì ở mức cổng hoặc cao hơn.
|
|
@@ -170,24 +184,39 @@ Nó quét thư mục hiện tại và in ra Trust Report: nó tìm thấy gì, b
|
|
|
170
184
|
Trong CI, chỉ quét những gì nhánh đưa vào, để một bộ test cũ không nhấn chìm pull request đầu tiên của bạn:
|
|
171
185
|
|
|
172
186
|
```bash
|
|
173
|
-
npx mjolnir-qa@
|
|
187
|
+
npx mjolnir-qa@3.0.0 --scope changed
|
|
174
188
|
```
|
|
175
189
|
|
|
176
|
-
`mjolnir ci install` ghi điều đó thành một workflow GitHub Actions, dùng [action](https://github.com/Sergey-Bar/Mjolnir#readme) được ghim vào tag chính `
|
|
177
|
-
|
|
178
|
-
| Lệnh
|
|
179
|
-
|
|
|
180
|
-
| `mjolnir`
|
|
181
|
-
| `mjolnir --scope changed`
|
|
182
|
-
| `mjolnir ci install`
|
|
183
|
-
| `mjolnir
|
|
184
|
-
| `mjolnir
|
|
185
|
-
| `mjolnir
|
|
186
|
-
| `mjolnir
|
|
187
|
-
| `mjolnir
|
|
188
|
-
| `mjolnir
|
|
189
|
-
| `mjolnir
|
|
190
|
-
| `mjolnir --
|
|
190
|
+
`mjolnir ci install` ghi điều đó thành một workflow GitHub Actions, dùng [action](https://github.com/Sergey-Bar/Mjolnir#readme) được ghim vào tag chính `v3` (hoặc `npx` thuần với `--no-action`). Nó chỉ mang tính tư vấn cho đến khi bạn quyết định nó nên chặn.
|
|
191
|
+
|
|
192
|
+
| Lệnh | Chức năng |
|
|
193
|
+
| --------------------------------------------- | ------------------------------------------------------ |
|
|
194
|
+
| `mjolnir` | Trust Report: kết luận, độ tin, hành động tiếp theo |
|
|
195
|
+
| `mjolnir --scope changed` | Chỉ những gì nhánh của bạn đưa vào (dạng dùng cho CI) |
|
|
196
|
+
| `mjolnir ci install` | Tạo workflow PR mang tính tư vấn (dựa trên 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` | Cái gì, vì sao và cách sửa, kèm tỷ lệ FP đã đo |
|
|
213
|
+
| `mjolnir why src/a.spec.ts:42` | Vì sao chính dòng này bị đánh dấu. Không bao giờ chặn. |
|
|
214
|
+
| `mjolnir forensics ./test-results/` | Bằng chứng runtime từ một lần chạy thật |
|
|
215
|
+
| `mjolnir trust-report` | Trust Artifact độc lập (md + json) |
|
|
216
|
+
| `mjolnir handoff` | Kế hoạch khắc phục cho tác tử lập trình |
|
|
217
|
+
| `mjolnir --json` / `--format sarif` | Đầu ra máy đọc được, GitHub Code Scanning |
|
|
218
|
+
| `mjolnir --format codequality` | Báo cáo GitLab Code Quality (artifact cho widget MR) |
|
|
219
|
+
| `mjolnir --strict` | Chạy cả các quy tắc cấp quarantine (rủi ro FP cao hơn) |
|
|
191
220
|
|
|
192
221
|
<details>
|
|
193
222
|
<summary><strong>Mọi lệnh khác</strong> — phân loại test chập chờn, báo cáo, quản trị</summary>
|
|
@@ -452,18 +481,18 @@ mjolnir ci install
|
|
|
452
481
|
Hoặc thêm action trên Marketplace vào một workflow bạn đã có:
|
|
453
482
|
|
|
454
483
|
```yaml
|
|
455
|
-
- uses: Sergey-Bar/Mjolnir@
|
|
484
|
+
- uses: Sergey-Bar/Mjolnir@v3
|
|
456
485
|
with:
|
|
457
486
|
scope: changed
|
|
458
487
|
fail-on: error
|
|
459
488
|
```
|
|
460
489
|
|
|
461
|
-
Ghim `@
|
|
490
|
+
Ghim `@v3` để theo dòng phiên bản chính, hoặc một tag chính xác (`@v0.5.32`) để có cổng tái lập được. [docs/DISTRIBUTION-KIT.md](docs/DISTRIBUTION-KIT.md) đề cập đến Marketplace, Smithery và các sổ đăng ký MCP.
|
|
462
491
|
|
|
463
492
|
Để đưa phát hiện vào GitHub Code Scanning, hãy tải lên SARIF (yêu cầu `security-events: write` ở phạm vi workflow hoặc job):
|
|
464
493
|
|
|
465
494
|
```yaml
|
|
466
|
-
- run: npx mjolnir-qa@
|
|
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 @@ Trên GitLab, `--format codequality` ghi báo cáo Code Quality mà widget MR v
|
|
|
476
505
|
### Quy trách nhiệm theo phạm vi thay đổi
|
|
477
506
|
|
|
478
507
|
```bash
|
|
479
|
-
npx mjolnir-qa@
|
|
508
|
+
npx mjolnir-qa@3.0.0 --scope changed
|
|
480
509
|
```
|
|
481
510
|
|
|
482
511
|
Phát hiện được quy về các dòng mà nhánh của bạn đã thêm, đo so với **merge-base**. Phạm vi là cùng tập tệp mà một lần quét đầy đủ phát hiện (spec TS/JS và cấu hình adapter, `test_*.py`, `*Test.java`, `*Tests.cs`, `.github/workflows/*.yml`), cộng thêm các thay đổi chưa commit và chưa theo dõi, nên nó hoạt động cả trước khi bạn commit. Nhánh gốc được xác định theo thứ tự `main → master → origin/main → origin/master → origin/HEAD`; ghi đè bằng `--base <ref>`.
|
|
@@ -504,7 +533,7 @@ SCAN → EVIDENCE → HANDOFF → AGENT → RE-SCAN → PROOF
|
|
|
504
533
|
Thêm vào một client có CLI riêng:
|
|
505
534
|
|
|
506
535
|
```bash
|
|
507
|
-
claude mcp add mjolnir -- npx -y mjolnir-qa@
|
|
536
|
+
claude mcp add mjolnir -- npx -y mjolnir-qa@3.0.0 mcp
|
|
508
537
|
```
|
|
509
538
|
|
|
510
539
|
Hoặc vào bất kỳ client nào nhận khối `mcpServers`:
|
|
@@ -512,7 +541,7 @@ Hoặc vào bất kỳ client nào nhận khối `mcpServers`:
|
|
|
512
541
|
```json
|
|
513
542
|
{
|
|
514
543
|
"mcpServers": {
|
|
515
|
-
"mjolnir": { "command": "npx", "args": ["-y", "mjolnir-qa@
|
|
544
|
+
"mjolnir": { "command": "npx", "args": ["-y", "mjolnir-qa@3.0.0", "mcp"] }
|
|
516
545
|
}
|
|
517
546
|
}
|
|
518
547
|
```
|
|
@@ -603,7 +632,7 @@ Thiết lập môi trường phát triển, các lệnh cổng thường trực,
|
|
|
603
632
|
<img src="assets/readme/closing.svg" alt="Chạy nó trên kho của bạn." width="100%" />
|
|
604
633
|
|
|
605
634
|
```bash
|
|
606
|
-
npx mjolnir-qa@
|
|
635
|
+
npx mjolnir-qa@3.0.0
|
|
607
636
|
```
|
|
608
637
|
|
|
609
638
|
[Đọc hướng dẫn](https://sergey-bar.github.io/Mjolnir/guide/getting-started) · [Trang tài liệu](https://sergey-bar.github.io/Mjolnir/) · [npm](https://www.npmjs.com/package/mjolnir-qa)
|