mjolnir-qa 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +125 -0
- package/README.ar.md +3 -3
- package/README.bn.md +3 -3
- package/README.br.md +3 -3
- package/README.bs.md +3 -3
- package/README.da.md +3 -3
- package/README.de.md +3 -3
- package/README.es.md +3 -3
- package/README.fr.md +3 -3
- package/README.gr.md +3 -3
- package/README.he.md +3 -3
- package/README.it.md +3 -3
- package/README.ja.md +3 -3
- package/README.ko.md +3 -3
- package/README.md +3 -3
- package/README.no.md +3 -3
- package/README.pl.md +3 -3
- package/README.ru.md +3 -3
- package/README.th.md +3 -3
- package/README.tr.md +3 -3
- package/README.uk.md +3 -3
- package/README.vi.md +3 -3
- package/README.zh.md +3 -3
- package/README.zht.md +3 -3
- package/dist/cli.d.mts +61 -4
- package/dist/cli.mjs +1255 -327
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,131 @@ Rule behavior changes (new rules, FP-rate changes against the corpus,
|
|
|
9
9
|
severity changes) are first-class entries here — rule IDs are immutable
|
|
10
10
|
once shipped, so this file is the record of what changed between versions.
|
|
11
11
|
|
|
12
|
+
## [0.5.3] — 2026-09-05
|
|
13
|
+
|
|
14
|
+
### Terminal + CI UX Overhaul (plan 1788579907109)
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **Design-system core** (`src/reporter/ui.ts`): one canonical visual
|
|
19
|
+
language — `▚ TITLE` section headers (ASCII fallback `= TITLE`),
|
|
20
|
+
`✗/⚠/ℹ` severity icons (ASCII `X/!/i`), rounded panels, 58-glyph
|
|
21
|
+
dividers, and a dim `$ command` next-step affordance. All
|
|
22
|
+
subcommand renderers (`baseline`, `debt`, `init`, `doctor`, `fix`,
|
|
23
|
+
`impact`, `stats`, `handover`, `triage`, `pw-report`, `explain`,
|
|
24
|
+
`rules-catalog`, `create-rule`, `suppressions`, forensics,
|
|
25
|
+
selector-health) now render through it; per-renderer `▚▞`/`🔨`/`╔══╗`
|
|
26
|
+
headers and `╞══╡` tables are gone. `FORCE_COLOR` is honored
|
|
27
|
+
(chalk convention: `0`/`false`/empty = plain, other values force
|
|
28
|
+
color even piped, winning over `NO_COLOR`).
|
|
29
|
+
- **`mjolnir help` + per-command help** (`src/commands/help.ts`): the
|
|
30
|
+
grouped overview (Scan · CI & PRs · Forensics · Maintenance · Meta,
|
|
31
|
+
copy-pasteable starts, exit-code table, docs link) and
|
|
32
|
+
`mjolnir help <verb>` / `mjolnir <verb> --help` pages for every
|
|
33
|
+
registered verb. **Behavior call-out:** `help` now dispatches as a
|
|
34
|
+
verb BEFORE the scan fall-through — bare `mjolnir help` no longer
|
|
35
|
+
scans the CWD (it never was a documented behavior); a folder named
|
|
36
|
+
`help/` is still scanned via `mjolnir ./help`. `--help`/`-h` on the
|
|
37
|
+
root scan still print usage and exit 10 (frozen contract).
|
|
38
|
+
- **Friendly usage errors** (exit 10 preserved): unknown flags name
|
|
39
|
+
themselves on stderr, suggest up to three nearest real flags
|
|
40
|
+
(hand-rolled Levenshtein ≤ 2 — no new dependencies), and point at
|
|
41
|
+
`mjolnir --help`. The exit-20 crash path says "this is a bug in
|
|
42
|
+
Mjölnir, not your repo", carries the message, and prints the stack
|
|
43
|
+
trace only under `--debug`.
|
|
44
|
+
- **Live scan progress** (`src/reporter/progress.ts`): an event-driven
|
|
45
|
+
stderr line (`Discovering files… → Parsing frameworks… → Running
|
|
46
|
+
rules… → Scoring…`) fed by the new additive `ScanHooks.onProgress`.
|
|
47
|
+
Render-on-event only — no timers, deterministic under a fake stream.
|
|
48
|
+
Auto-off when stderr is not a TTY, in machine formats, under
|
|
49
|
+
`GITHUB_ACTIONS=true`/`CI=true`, or with the new additive
|
|
50
|
+
`--no-progress` flag. stdout purity and `--json` byte-identity are
|
|
51
|
+
unchanged.
|
|
52
|
+
- **`mjolnir summary [mjolnir.json]`** (`src/commands/summary.ts` +
|
|
53
|
+
`src/reporter/github.ts`): reads a saved `--json` report and emits
|
|
54
|
+
GitHub annotations (only when `GITHUB_ACTIONS=true`, per-finding
|
|
55
|
+
`::error|warning|notice` with spec-exact `%25/%0D/%0A/%3A/%2C`
|
|
56
|
+
escaping, messages truncated at ~250 chars) and a step-summary
|
|
57
|
+
markdown document (score + band, text score bar, dimensions table,
|
|
58
|
+
collapsible per-severity `<details>` with `Fix:` lines, honesty
|
|
59
|
+
notice for `partial`/`score:null` reports). `--stdout` forces
|
|
60
|
+
stdout; `--path-prefix <dir>` re-scopes paths for subdirectory
|
|
61
|
+
scans. Exit `0` on success — the gate step decides; `10` missing
|
|
62
|
+
file; `2` invalid JSON.
|
|
63
|
+
- **CI template v2** (`ci install`): the inline `SUMMARY_SCRIPT` step
|
|
64
|
+
is replaced by `mjolnir summary mjolnir.json`; the gate script is
|
|
65
|
+
unchanged. v1-generated workflows are still recognized on
|
|
66
|
+
overwrite-refusal, so `ci install` upgrades stay frictionless. The
|
|
67
|
+
dogfooded `.github/workflows/mjolnir.yml` and `ci.yml` self-scan use
|
|
68
|
+
the same command.
|
|
69
|
+
- **PR comment redesign** (`pr-comment`): header
|
|
70
|
+
`### 🔨 Mjölnir — Verification Trust` with score + band + verdict
|
|
71
|
+
headline, dimensions mini-table, findings grouped in collapsible
|
|
72
|
+
`<details>` (errors open, warnings/infos collapsed) with explicit
|
|
73
|
+
`Fix:` lines and evidence tags, a "what to run next" footer with the
|
|
74
|
+
pinned `npx mjolnir-qa@<ver>` commands, and the
|
|
75
|
+
`✨ N pre-existing findings fixed in this PR` callout. Same
|
|
76
|
+
idempotency marker; same markdown escaping.
|
|
77
|
+
- **Site**: new `site/reference/cli.md` (help, usage errors, summary,
|
|
78
|
+
progress, `FORCE_COLOR`) in the Reference sidebar.
|
|
79
|
+
|
|
80
|
+
### Changed
|
|
81
|
+
|
|
82
|
+
- README output examples and all 22 translations: the `▚▞` header
|
|
83
|
+
glyph in rendered-output samples is now `▚` (the design-system
|
|
84
|
+
token). English README is canonical; translation sync dates unchanged
|
|
85
|
+
(glyph-only diff, advisory parity script).
|
|
86
|
+
- Regenerated committed assets: `assets/readme/terminal-hero.svg`,
|
|
87
|
+
`demo.svg` (`docs:hero`, `docs:demo`), and the forensics/selector
|
|
88
|
+
samples (`docs:forensics-samples`).
|
|
89
|
+
|
|
90
|
+
### Removed
|
|
91
|
+
|
|
92
|
+
- The hand-rolled `╔══╗`/`▚▞`/`🔨` per-command header styles and the
|
|
93
|
+
`╞══╡` ASCII tables they wrapped (replaced by the shared `ui.ts`
|
|
94
|
+
primitives; no CLI surface change).
|
|
95
|
+
|
|
96
|
+
### Fixed — review hardening (post-implementation audit)
|
|
97
|
+
|
|
98
|
+
- **`ci install` v1 recognition actually works now:** the v1 inline
|
|
99
|
+
summary script is matched in its INDENTED form (`indentBlock(…, 10)`)
|
|
100
|
+
— the raw unindented needle never appeared in a real v1 workflow, so
|
|
101
|
+
the first cut of the recognition would have refused every genuine v1
|
|
102
|
+
file despite the "frictionless upgrade" promise. Spec reconstructs
|
|
103
|
+
the embedded form from the real v1 output and pins that
|
|
104
|
+
hand-customized files are still refused.
|
|
105
|
+
- **Advisory template stays green on a crashed scan:** the generated
|
|
106
|
+
"Annotations + Job Summary" step is now `continue-on-error: true` —
|
|
107
|
+
a crashed scan leaves `mjolnir.json` empty and `summary` exits 2,
|
|
108
|
+
which must not turn the advisory job red (v1's inline script never
|
|
109
|
+
did). The gate step still owns the verdict.
|
|
110
|
+
- **Step summary escapes hostile finding metadata:** `ruleId`, `file`,
|
|
111
|
+
`message` and `fix` are markdown-escaped before `$GITHUB_STEP_SUMMARY`
|
|
112
|
+
(GitHub renders HTML there) — a hostile report can no longer break
|
|
113
|
+
out of the `<details>` structure. Annotations additionally sanitize
|
|
114
|
+
`file`/`ruleId`/`message` through the same `sanitizeData` layer the
|
|
115
|
+
terminal uses (OSC/C0 bytes), closing the gap its own docs assumed.
|
|
116
|
+
- **Progress line sanitizes the detail path** through `sanitizeData` —
|
|
117
|
+
a filename with ANSI/OSC bytes can no longer hijack the terminal.
|
|
118
|
+
- **PR comment overflow counts are honest:** the "...and N more
|
|
119
|
+
overall" line now subtracts the actually rendered count
|
|
120
|
+
(Σ min(group, 25)) instead of a flat 25 — no more phantom hidden
|
|
121
|
+
findings, and per-group overflow lines name their group
|
|
122
|
+
("...and 5 more errors").
|
|
123
|
+
- **Usage-error contract completed:** the 8 scan-backed subcommands
|
|
124
|
+
(badge, debt, fix, impact, baseline, diff, pr-comment, handover) no
|
|
125
|
+
longer print the full usage wall after the friendly stderr error;
|
|
126
|
+
`mjolnir summary` rejects unknown flags with the shared
|
|
127
|
+
did-you-mean machinery (exit 10) instead of silently swallowing a
|
|
128
|
+
typo'd `--stdout`; `mjolnir ci --help` / `mjolnir help ci install` /
|
|
129
|
+
`mjolnir ci install --help` now reach the `ci install` help page
|
|
130
|
+
(two-word verb lookup).
|
|
131
|
+
- **Dead surface removed:** `theme.severityTag` (byte-identical twin of
|
|
132
|
+
`ui.severityIcon`, test-only) deleted with the two plugin specs
|
|
133
|
+
re-pointed; the new-module exports nothing without a caller
|
|
134
|
+
(`severityGlyph`, `wrapFor`, `centerIn` dropped; `keyValue` and
|
|
135
|
+
`bullet` remain — the plan's primitive list mandates them).
|
|
136
|
+
|
|
12
137
|
## [0.5.2] — 2026-09-05
|
|
13
138
|
|
|
14
139
|
### npm 12 pack-shape repair of the release pipeline
|
package/README.ar.md
CHANGED
|
@@ -60,7 +60,7 @@ npx mjolnir-qa@latest
|
|
|
60
60
|
شغّل `mjolnir explain QA-CI-001` على الاكتشاف الأول أعلاه وستحصل على:
|
|
61
61
|
|
|
62
62
|
```text
|
|
63
|
-
|
|
63
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
64
64
|
|
|
65
65
|
Severity: error
|
|
66
66
|
Confidence: high
|
|
@@ -368,7 +368,7 @@ E2 إثبات بنيوي؛ واكتشافات E1 تحذيرات موزونة ا
|
|
|
368
368
|
المقياس الرئيسي لأطقم Playwright — ما مدى صمود محدِّداتك:
|
|
369
369
|
|
|
370
370
|
```text
|
|
371
|
-
|
|
371
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
372
372
|
|
|
373
373
|
[█████████████████░░░] 83 / 100
|
|
374
374
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -389,7 +389,7 @@ mjolnir forensics ./test-results/
|
|
|
389
389
|
```
|
|
390
390
|
|
|
391
391
|
```text
|
|
392
|
-
|
|
392
|
+
▚ FLAKINESS LEADERBOARD
|
|
393
393
|
|
|
394
394
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
395
395
|
|
package/README.bn.md
CHANGED
|
@@ -62,7 +62,7 @@ npx mjolnir-qa@latest
|
|
|
62
62
|
পাবেন:
|
|
63
63
|
|
|
64
64
|
```text
|
|
65
|
-
|
|
65
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
66
66
|
|
|
67
67
|
Severity: error
|
|
68
68
|
Confidence: high
|
|
@@ -373,7 +373,7 @@ finding কাঠামোগত প্রমাণ; E1 finding সঠিকভ
|
|
|
373
373
|
Playwright সুইটের হেডলাইন মেট্রিক — আপনার locator কতটা টেকসই:
|
|
374
374
|
|
|
375
375
|
```text
|
|
376
|
-
|
|
376
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
377
377
|
|
|
378
378
|
[█████████████████░░░] 83 / 100
|
|
379
379
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -395,7 +395,7 @@ mjolnir forensics ./test-results/
|
|
|
395
395
|
```
|
|
396
396
|
|
|
397
397
|
```text
|
|
398
|
-
|
|
398
|
+
▚ FLAKINESS LEADERBOARD
|
|
399
399
|
|
|
400
400
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
401
401
|
|
package/README.br.md
CHANGED
|
@@ -65,7 +65,7 @@ Execute `mjolnir explain QA-CI-001` no primeiro finding acima e você
|
|
|
65
65
|
recebe:
|
|
66
66
|
|
|
67
67
|
```text
|
|
68
|
-
|
|
68
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
69
69
|
|
|
70
70
|
Severity: error
|
|
71
71
|
Confidence: high
|
|
@@ -383,7 +383,7 @@ A métrica de destaque para suítes Playwright — quão resilientes são os
|
|
|
383
383
|
seus locators:
|
|
384
384
|
|
|
385
385
|
```text
|
|
386
|
-
|
|
386
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
387
387
|
|
|
388
388
|
[█████████████████░░░] 83 / 100
|
|
389
389
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -406,7 +406,7 @@ mjolnir forensics ./test-results/
|
|
|
406
406
|
```
|
|
407
407
|
|
|
408
408
|
```text
|
|
409
|
-
|
|
409
|
+
▚ FLAKINESS LEADERBOARD
|
|
410
410
|
|
|
411
411
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
412
412
|
|
package/README.bs.md
CHANGED
|
@@ -61,7 +61,7 @@ obara CI ako artefakt odskoči od onoga što alat ispisuje.</sub>
|
|
|
61
61
|
Pokreni `mjolnir explain QA-CI-001` na prvom nalaženom iznad i dobiješ:
|
|
62
62
|
|
|
63
63
|
```text
|
|
64
|
-
|
|
64
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
65
65
|
|
|
66
66
|
Severity: error
|
|
67
67
|
Confidence: high
|
|
@@ -372,7 +372,7 @@ Vodeća metrika za Playwright suiteove — koliko su otporni tvoji
|
|
|
372
372
|
lokatori:
|
|
373
373
|
|
|
374
374
|
```text
|
|
375
|
-
|
|
375
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
376
376
|
|
|
377
377
|
[█████████████████░░░] 83 / 100
|
|
378
378
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -395,7 +395,7 @@ mjolnir forensics ./test-results/
|
|
|
395
395
|
```
|
|
396
396
|
|
|
397
397
|
```text
|
|
398
|
-
|
|
398
|
+
▚ FLAKINESS LEADERBOARD
|
|
399
399
|
|
|
400
400
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
401
401
|
|
package/README.da.md
CHANGED
|
@@ -64,7 +64,7 @@ printer.</sub>
|
|
|
64
64
|
Kør `mjolnir explain QA-CI-001` på det første fund ovenfor, og du får:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
|
|
67
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
68
68
|
|
|
69
69
|
Severity: error
|
|
70
70
|
Confidence: high
|
|
@@ -380,7 +380,7 @@ Et tomt repo scorer `null`, aldrig en falsk 100 — se
|
|
|
380
380
|
Hovedmetrikken for Playwright-suiter — hvor robuste dine locators er:
|
|
381
381
|
|
|
382
382
|
```text
|
|
383
|
-
|
|
383
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
384
384
|
|
|
385
385
|
[█████████████████░░░] 83 / 100
|
|
386
386
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -403,7 +403,7 @@ mjolnir forensics ./test-results/
|
|
|
403
403
|
```
|
|
404
404
|
|
|
405
405
|
```text
|
|
406
|
-
|
|
406
|
+
▚ FLAKINESS LEADERBOARD
|
|
407
407
|
|
|
408
408
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
409
409
|
|
package/README.de.md
CHANGED
|
@@ -65,7 +65,7 @@ Führe `mjolnir explain QA-CI-001` für den ersten Befund oben aus, und du
|
|
|
65
65
|
erhältst:
|
|
66
66
|
|
|
67
67
|
```text
|
|
68
|
-
|
|
68
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
69
69
|
|
|
70
70
|
Severity: error
|
|
71
71
|
Confidence: high
|
|
@@ -385,7 +385,7 @@ Die Headline-Metrik für Playwright-Suiten — wie belastbar deine
|
|
|
385
385
|
Locators sind:
|
|
386
386
|
|
|
387
387
|
```text
|
|
388
|
-
|
|
388
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
389
389
|
|
|
390
390
|
[█████████████████░░░] 83 / 100
|
|
391
391
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -408,7 +408,7 @@ mjolnir forensics ./test-results/
|
|
|
408
408
|
```
|
|
409
409
|
|
|
410
410
|
```text
|
|
411
|
-
|
|
411
|
+
▚ FLAKINESS LEADERBOARD
|
|
412
412
|
|
|
413
413
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
414
414
|
|
package/README.es.md
CHANGED
|
@@ -65,7 +65,7 @@ Ejecuta `mjolnir explain QA-CI-001` sobre el primer hallazgo de arriba
|
|
|
65
65
|
y obtienes:
|
|
66
66
|
|
|
67
67
|
```text
|
|
68
|
-
|
|
68
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
69
69
|
|
|
70
70
|
Severity: error
|
|
71
71
|
Confidence: high
|
|
@@ -383,7 +383,7 @@ La métrica titular para suites de Playwright — qué tan resilientes son
|
|
|
383
383
|
tus locators:
|
|
384
384
|
|
|
385
385
|
```text
|
|
386
|
-
|
|
386
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
387
387
|
|
|
388
388
|
[█████████████████░░░] 83 / 100
|
|
389
389
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -406,7 +406,7 @@ mjolnir forensics ./test-results/
|
|
|
406
406
|
```
|
|
407
407
|
|
|
408
408
|
```text
|
|
409
|
-
|
|
409
|
+
▚ FLAKINESS LEADERBOARD
|
|
410
410
|
|
|
411
411
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
412
412
|
|
package/README.fr.md
CHANGED
|
@@ -64,7 +64,7 @@ Exécutez `mjolnir explain QA-CI-001` sur le premier constat ci-dessus
|
|
|
64
64
|
et vous obtenez :
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
|
|
67
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
68
68
|
|
|
69
69
|
Severity: error
|
|
70
70
|
Confidence: high
|
|
@@ -386,7 +386,7 @@ La métrique vedette pour les suites Playwright — la résilience de vos
|
|
|
386
386
|
locators :
|
|
387
387
|
|
|
388
388
|
```text
|
|
389
|
-
|
|
389
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
390
390
|
|
|
391
391
|
[█████████████████░░░] 83 / 100
|
|
392
392
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -409,7 +409,7 @@ mjolnir forensics ./test-results/
|
|
|
409
409
|
```
|
|
410
410
|
|
|
411
411
|
```text
|
|
412
|
-
|
|
412
|
+
▚ FLAKINESS LEADERBOARD
|
|
413
413
|
|
|
414
414
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
415
415
|
|
package/README.gr.md
CHANGED
|
@@ -64,7 +64,7 @@ npx mjolnir-qa@latest
|
|
|
64
64
|
πάρεις:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
|
|
67
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
68
68
|
|
|
69
69
|
Severity: error
|
|
70
70
|
Confidence: high
|
|
@@ -381,7 +381,7 @@ C# κυκλοφορούν, είναι τεκμηριωμένες και μένο
|
|
|
381
381
|
locators σου:
|
|
382
382
|
|
|
383
383
|
```text
|
|
384
|
-
|
|
384
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
385
385
|
|
|
386
386
|
[█████████████████░░░] 83 / 100
|
|
387
387
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -404,7 +404,7 @@ mjolnir forensics ./test-results/
|
|
|
404
404
|
```
|
|
405
405
|
|
|
406
406
|
```text
|
|
407
|
-
|
|
407
|
+
▚ FLAKINESS LEADERBOARD
|
|
408
408
|
|
|
409
409
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
410
410
|
|
package/README.he.md
CHANGED
|
@@ -60,7 +60,7 @@ npx mjolnir-qa@latest
|
|
|
60
60
|
הריצו `mjolnir explain QA-CI-001` על הממצא הראשון למעלה ותקבלו:
|
|
61
61
|
|
|
62
62
|
```text
|
|
63
|
-
|
|
63
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
64
64
|
|
|
65
65
|
Severity: error
|
|
66
66
|
Confidence: high
|
|
@@ -366,7 +366,7 @@ repo ריק מקבל `null`, לעולם לא 100 מזויף — ראו
|
|
|
366
366
|
המדד הראשי לחבילות Playwright — עד כמה ה‑locators שלך עמידים:
|
|
367
367
|
|
|
368
368
|
```text
|
|
369
|
-
|
|
369
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
370
370
|
|
|
371
371
|
[█████████████████░░░] 83 / 100
|
|
372
372
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -388,7 +388,7 @@ mjolnir forensics ./test-results/
|
|
|
388
388
|
```
|
|
389
389
|
|
|
390
390
|
```text
|
|
391
|
-
|
|
391
|
+
▚ FLAKINESS LEADERBOARD
|
|
392
392
|
|
|
393
393
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
394
394
|
|
package/README.it.md
CHANGED
|
@@ -64,7 +64,7 @@ Esegui `mjolnir explain QA-CI-001` sul primo riscontro qui sopra e
|
|
|
64
64
|
ottieni:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
|
|
67
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
68
68
|
|
|
69
69
|
Severity: error
|
|
70
70
|
Confidence: high
|
|
@@ -383,7 +383,7 @@ La metrica di testa per le suite Playwright — quanto sono resilienti
|
|
|
383
383
|
i tuoi locator:
|
|
384
384
|
|
|
385
385
|
```text
|
|
386
|
-
|
|
386
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
387
387
|
|
|
388
388
|
[█████████████████░░░] 83 / 100
|
|
389
389
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -406,7 +406,7 @@ mjolnir forensics ./test-results/
|
|
|
406
406
|
```
|
|
407
407
|
|
|
408
408
|
```text
|
|
409
|
-
|
|
409
|
+
▚ FLAKINESS LEADERBOARD
|
|
410
410
|
|
|
411
411
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
412
412
|
|
package/README.ja.md
CHANGED
|
@@ -63,7 +63,7 @@ npx mjolnir-qa@latest
|
|
|
63
63
|
上の最初の検出に対して `mjolnir explain QA-CI-001` を実行すると:
|
|
64
64
|
|
|
65
65
|
```text
|
|
66
|
-
|
|
66
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
67
67
|
|
|
68
68
|
Severity: error
|
|
69
69
|
Confidence: high
|
|
@@ -376,7 +376,7 @@ C# は出荷済みでドキュメントもあり、実際のコンシューマ
|
|
|
376
376
|
Playwright スイート向けの看板指標——あなたのロケータはどれだけ丈夫か:
|
|
377
377
|
|
|
378
378
|
```text
|
|
379
|
-
|
|
379
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
380
380
|
|
|
381
381
|
[█████████████████░░░] 83 / 100
|
|
382
382
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -399,7 +399,7 @@ mjolnir forensics ./test-results/
|
|
|
399
399
|
```
|
|
400
400
|
|
|
401
401
|
```text
|
|
402
|
-
|
|
402
|
+
▚ FLAKINESS LEADERBOARD
|
|
403
403
|
|
|
404
404
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
405
405
|
|
package/README.ko.md
CHANGED
|
@@ -61,7 +61,7 @@ docs:demo`로 재생성합니다.
|
|
|
61
61
|
위의 첫 번째 발견에 대해 `mjolnir explain QA-CI-001`을 실행하면:
|
|
62
62
|
|
|
63
63
|
```text
|
|
64
|
-
|
|
64
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
65
65
|
|
|
66
66
|
Severity: error
|
|
67
67
|
Confidence: high
|
|
@@ -372,7 +372,7 @@ TypeScript와 Python이 가장 넓은 측정된 커버리지를 갖습니다. Ja
|
|
|
372
372
|
Playwright 스위트의 대표 지표 — 당신의 로케이터는 얼마나 튼튼한가:
|
|
373
373
|
|
|
374
374
|
```text
|
|
375
|
-
|
|
375
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
376
376
|
|
|
377
377
|
[█████████████████░░░] 83 / 100
|
|
378
378
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -394,7 +394,7 @@ mjolnir forensics ./test-results/
|
|
|
394
394
|
```
|
|
395
395
|
|
|
396
396
|
```text
|
|
397
|
-
|
|
397
|
+
▚ FLAKINESS LEADERBOARD
|
|
398
398
|
|
|
399
399
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
400
400
|
|
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ fails CI if it drifts from what the tool prints.</sub>
|
|
|
53
53
|
Run `mjolnir explain QA-CI-001` on the first finding above and you get:
|
|
54
54
|
|
|
55
55
|
```text
|
|
56
|
-
|
|
56
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
57
57
|
|
|
58
58
|
Severity: error
|
|
59
59
|
Confidence: high
|
|
@@ -362,7 +362,7 @@ An empty repo scores `null`, never a fake 100 — see [Trust model](#trust-model
|
|
|
362
362
|
The headline metric for Playwright suites — how resilient your locators are:
|
|
363
363
|
|
|
364
364
|
```text
|
|
365
|
-
|
|
365
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
366
366
|
|
|
367
367
|
[█████████████████░░░] 83 / 100
|
|
368
368
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -384,7 +384,7 @@ mjolnir forensics ./test-results/
|
|
|
384
384
|
```
|
|
385
385
|
|
|
386
386
|
```text
|
|
387
|
-
|
|
387
|
+
▚ FLAKINESS LEADERBOARD
|
|
388
388
|
|
|
389
389
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
390
390
|
|
package/README.no.md
CHANGED
|
@@ -63,7 +63,7 @@ ut.</sub>
|
|
|
63
63
|
Kjør `mjolnir explain QA-CI-001` på det første funnet over, og du får:
|
|
64
64
|
|
|
65
65
|
```text
|
|
66
|
-
|
|
66
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
67
67
|
|
|
68
68
|
Severity: error
|
|
69
69
|
Confidence: high
|
|
@@ -378,7 +378,7 @@ Et tomt repo scorer `null`, aldri en falsk 100 — se
|
|
|
378
378
|
Hovedmetrikken for Playwright-suiter — hvor robuste locatorene dine er:
|
|
379
379
|
|
|
380
380
|
```text
|
|
381
|
-
|
|
381
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
382
382
|
|
|
383
383
|
[█████████████████░░░] 83 / 100
|
|
384
384
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -401,7 +401,7 @@ mjolnir forensics ./test-results/
|
|
|
401
401
|
```
|
|
402
402
|
|
|
403
403
|
```text
|
|
404
|
-
|
|
404
|
+
▚ FLAKINESS LEADERBOARD
|
|
405
405
|
|
|
406
406
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
407
407
|
|
package/README.pl.md
CHANGED
|
@@ -64,7 +64,7 @@ Uruchom `mjolnir explain QA-CI-001` na pierwszym znalezisku powyżej, a
|
|
|
64
64
|
otrzymasz:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
|
|
67
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
68
68
|
|
|
69
69
|
Severity: error
|
|
70
70
|
Confidence: high
|
|
@@ -382,7 +382,7 @@ Flagowa metryka dla suite'ów Playwright — jak odporne są twoje
|
|
|
382
382
|
lokatory:
|
|
383
383
|
|
|
384
384
|
```text
|
|
385
|
-
|
|
385
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
386
386
|
|
|
387
387
|
[█████████████████░░░] 83 / 100
|
|
388
388
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -405,7 +405,7 @@ mjolnir forensics ./test-results/
|
|
|
405
405
|
```
|
|
406
406
|
|
|
407
407
|
```text
|
|
408
|
-
|
|
408
|
+
▚ FLAKINESS LEADERBOARD
|
|
409
409
|
|
|
410
410
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
411
411
|
|
package/README.ru.md
CHANGED
|
@@ -63,7 +63,7 @@ npx mjolnir-qa@latest
|
|
|
63
63
|
получите:
|
|
64
64
|
|
|
65
65
|
```text
|
|
66
|
-
|
|
66
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
67
67
|
|
|
68
68
|
Severity: error
|
|
69
69
|
Confidence: high
|
|
@@ -381,7 +381,7 @@ _сработавших_ правил измерены; `mjolnir rules --unmeasu
|
|
|
381
381
|
локаторы:
|
|
382
382
|
|
|
383
383
|
```text
|
|
384
|
-
|
|
384
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
385
385
|
|
|
386
386
|
[█████████████████░░░] 83 / 100
|
|
387
387
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -404,7 +404,7 @@ mjolnir forensics ./test-results/
|
|
|
404
404
|
```
|
|
405
405
|
|
|
406
406
|
```text
|
|
407
|
-
|
|
407
|
+
▚ FLAKINESS LEADERBOARD
|
|
408
408
|
|
|
409
409
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
410
410
|
|
package/README.th.md
CHANGED
|
@@ -61,7 +61,7 @@ npx mjolnir-qa@latest
|
|
|
61
61
|
รัน `mjolnir explain QA-CI-001` กับ finding แรกด้านบน แล้วคุณจะได้:
|
|
62
62
|
|
|
63
63
|
```text
|
|
64
|
-
|
|
64
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
65
65
|
|
|
66
66
|
Severity: error
|
|
67
67
|
Confidence: high
|
|
@@ -370,7 +370,7 @@ repo ว่างจะได้คะแนน `null` ไม่ใช่เล
|
|
|
370
370
|
ตัวชี้วัดพาดหัวสำหรับชุด Playwright — locator ของคุณทนทานแค่ไหน:
|
|
371
371
|
|
|
372
372
|
```text
|
|
373
|
-
|
|
373
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
374
374
|
|
|
375
375
|
[█████████████████░░░] 83 / 100
|
|
376
376
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -391,7 +391,7 @@ mjolnir forensics ./test-results/
|
|
|
391
391
|
```
|
|
392
392
|
|
|
393
393
|
```text
|
|
394
|
-
|
|
394
|
+
▚ FLAKINESS LEADERBOARD
|
|
395
395
|
|
|
396
396
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
397
397
|
|
package/README.tr.md
CHANGED
|
@@ -64,7 +64,7 @@ Yukarıdaki ilk bulgu için `mjolnir explain QA-CI-001` komutunu çalıştırın
|
|
|
64
64
|
elde edeceğiniz:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
|
|
67
|
+
▚ QA-CI-001 — continue-on-error masks a failing verification gate
|
|
68
68
|
|
|
69
69
|
Severity: error
|
|
70
70
|
Confidence: high
|
|
@@ -377,7 +377,7 @@ Playwright takımları için başlık metriği — locator'larınız ne kadar
|
|
|
377
377
|
dayanıklı:
|
|
378
378
|
|
|
379
379
|
```text
|
|
380
|
-
|
|
380
|
+
▚ SELECTOR HEALTH — e2e/checkout.spec.ts
|
|
381
381
|
|
|
382
382
|
[█████████████████░░░] 83 / 100
|
|
383
383
|
role/text: 2 · testid: 1 · css-chains: 1 ⚠ · xpath: 0
|
|
@@ -400,7 +400,7 @@ mjolnir forensics ./test-results/
|
|
|
400
400
|
```
|
|
401
401
|
|
|
402
402
|
```text
|
|
403
|
-
|
|
403
|
+
▚ FLAKINESS LEADERBOARD
|
|
404
404
|
|
|
405
405
|
3 tests · 1 failed · 1 flaky · 1 retried
|
|
406
406
|
|