memento-mori-jester 0.1.40 → 0.1.41
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 +16 -0
- package/ROADMAP.md +2 -1
- package/docs/DEMO.md +2 -2
- package/docs/RELEASE_NOTES_v0.1.41.md +30 -0
- package/examples/fixtures/preset-review-cases.json +120 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ All notable changes to Memento Mori Jester are tracked here.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.1.41
|
|
8
|
+
|
|
9
|
+
- Added a focused precision-fixture pass for `jester tune` evidence so more sparse rule families now have at least two matching examples.
|
|
10
|
+
- Added new `preset-review-cases.json` fixtures for:
|
|
11
|
+
- `universal-privileged-command-plan`
|
|
12
|
+
- `plan-skip-tests-2`
|
|
13
|
+
- `plan-vibes-based-plan-2`
|
|
14
|
+
- `diff-test-removal-caution-2`
|
|
15
|
+
- `diff-ts-ignore-pass-3`
|
|
16
|
+
- `diff-temporary-marker-pass-3`
|
|
17
|
+
- `diff-console-debug-pass`
|
|
18
|
+
- `diff-package-install-script-pass-3`
|
|
19
|
+
- `command-chmod-777-pass`
|
|
20
|
+
- `diff-large-removal-pass-2`
|
|
21
|
+
- Updated demo fixture counters in `docs/DEMO.md` to the expanded corpus.
|
|
22
|
+
|
|
7
23
|
## 0.1.40
|
|
8
24
|
|
|
9
25
|
- Added more deterministic fixture examples for `jester tune` so sparse signals get stronger, more stable evidence:
|
package/ROADMAP.md
CHANGED
|
@@ -26,10 +26,11 @@ Memento Mori Jester is usable today as a CLI, MCP server, GitHub Action, and git
|
|
|
26
26
|
- README demo snapshot generated as a small deterministic SVG.
|
|
27
27
|
- Kind-aware fixture coverage and confidence-triage surface for `jester tune` outputs.
|
|
28
28
|
- Deterministic tune fixture support signal (`none` / `thin` / `limited` / `strong`) for sparse/noisy families.
|
|
29
|
+
- Precision-pass fixture expansion in v0.1.41 to strengthen repeat signal coverage for plan/command/diff families.
|
|
29
30
|
|
|
30
31
|
## Product Ideas
|
|
31
32
|
|
|
32
|
-
- Continue precision pass work by adding
|
|
33
|
+
- Continue precision pass work by adding example-backed rule-specific fixtures for the remaining thin families, then add a second-pass confidence signal before broad rollout.
|
|
33
34
|
|
|
34
35
|
## Quality And Safety
|
|
35
36
|
|
package/docs/DEMO.md
CHANGED
|
@@ -180,8 +180,8 @@ Severity: S3
|
|
|
180
180
|
Fixture tuning evidence:
|
|
181
181
|
Support: thin
|
|
182
182
|
Confidence: low
|
|
183
|
-
Total fixtures checked:
|
|
184
|
-
Weighted fixtures checked:
|
|
183
|
+
Total fixtures checked: 50
|
|
184
|
+
Weighted fixtures checked: 96.95
|
|
185
185
|
Matching fixtures: 6
|
|
186
186
|
Weighted matches: 13
|
|
187
187
|
Expected-match weight: 2
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# v0.1.41 Release Notes
|
|
2
|
+
|
|
3
|
+
This maintenance pass adds fixture-backed precision improvements for `jester tune` so sparse/noisy families have broader deterministic guidance coverage.
|
|
4
|
+
|
|
5
|
+
## Added
|
|
6
|
+
|
|
7
|
+
- Added additional deterministic fixtures to `examples/fixtures/preset-review-cases.json`:
|
|
8
|
+
- `universal-privileged-command-plan`
|
|
9
|
+
- `plan-skip-tests-2`
|
|
10
|
+
- `plan-vibes-based-plan-2`
|
|
11
|
+
- `diff-test-removal-caution-2`
|
|
12
|
+
- `diff-ts-ignore-pass-3`
|
|
13
|
+
- `diff-temporary-marker-pass-3`
|
|
14
|
+
- `diff-console-debug-pass`
|
|
15
|
+
- `diff-package-install-script-pass-3`
|
|
16
|
+
- `command-chmod-777-pass`
|
|
17
|
+
- `diff-large-removal-pass-2`
|
|
18
|
+
- Updated demo fixture counters in `docs/DEMO.md` for the expanded suite.
|
|
19
|
+
- No review logic or CLI behavior changes.
|
|
20
|
+
|
|
21
|
+
## Release Validation
|
|
22
|
+
|
|
23
|
+
```powershell
|
|
24
|
+
npm.cmd test
|
|
25
|
+
npm.cmd run demo:svg:check
|
|
26
|
+
npm.cmd run pack:dry
|
|
27
|
+
git diff --check
|
|
28
|
+
node .\dist\cli.js tune risky-domain --json
|
|
29
|
+
node .\dist\cli.js tune risky-domain
|
|
30
|
+
```
|
|
@@ -251,6 +251,18 @@
|
|
|
251
251
|
"privileged-command"
|
|
252
252
|
]
|
|
253
253
|
},
|
|
254
|
+
{
|
|
255
|
+
"id": "universal-privileged-command-plan",
|
|
256
|
+
"preset": "default",
|
|
257
|
+
"kind": "plan",
|
|
258
|
+
"description": "Plan language requesting elevated command should still be surfaced as privileged.",
|
|
259
|
+
"content": "This step requires sudo to patch the cert store. Keep it narrow and documented.",
|
|
260
|
+
"weight": 2,
|
|
261
|
+
"expectedVerdict": "caution",
|
|
262
|
+
"expectedRuleIds": [
|
|
263
|
+
"privileged-command"
|
|
264
|
+
]
|
|
265
|
+
},
|
|
254
266
|
{
|
|
255
267
|
"id": "universal-risky-domain-caution",
|
|
256
268
|
"preset": "default",
|
|
@@ -299,6 +311,18 @@
|
|
|
299
311
|
"vibes-based-plan"
|
|
300
312
|
]
|
|
301
313
|
},
|
|
314
|
+
{
|
|
315
|
+
"id": "plan-vibes-based-plan-2",
|
|
316
|
+
"preset": "default",
|
|
317
|
+
"kind": "plan",
|
|
318
|
+
"description": "A second style of vibes-based language should remain a caution.",
|
|
319
|
+
"content": "This is just probably should work once the cache warms up.",
|
|
320
|
+
"weight": 2,
|
|
321
|
+
"expectedVerdict": "caution",
|
|
322
|
+
"expectedRuleIds": [
|
|
323
|
+
"vibes-based-plan"
|
|
324
|
+
]
|
|
325
|
+
},
|
|
302
326
|
{
|
|
303
327
|
"id": "plan-skip-tests",
|
|
304
328
|
"preset": "default",
|
|
@@ -311,6 +335,18 @@
|
|
|
311
335
|
"skip-tests"
|
|
312
336
|
]
|
|
313
337
|
},
|
|
338
|
+
{
|
|
339
|
+
"id": "plan-skip-tests-2",
|
|
340
|
+
"preset": "default",
|
|
341
|
+
"kind": "plan",
|
|
342
|
+
"description": "Explicitly declining tests in a second style should still trigger the skip-tests check.",
|
|
343
|
+
"content": "Skip tests for this change in the rollout path.",
|
|
344
|
+
"weight": 2,
|
|
345
|
+
"expectedVerdict": "block",
|
|
346
|
+
"expectedRuleIds": [
|
|
347
|
+
"skip-tests"
|
|
348
|
+
]
|
|
349
|
+
},
|
|
314
350
|
{
|
|
315
351
|
"id": "plan-missing-verification-step",
|
|
316
352
|
"preset": "default",
|
|
@@ -371,6 +407,18 @@
|
|
|
371
407
|
"test-removal"
|
|
372
408
|
]
|
|
373
409
|
},
|
|
410
|
+
{
|
|
411
|
+
"id": "diff-test-removal-caution-2",
|
|
412
|
+
"preset": "default",
|
|
413
|
+
"kind": "diff",
|
|
414
|
+
"description": "Removing another test chunk should also surface the test-removal check.",
|
|
415
|
+
"content": "diff --git a/src/utils.spec.ts b/src/utils.spec.ts\n--- a/src/utils.spec.ts\n+++ b/src/utils.spec.ts\n@@ -1,3 +1,0 @@\n-it(\"helper helper\", () => {});\n-it(\"edge\", () => {});\n",
|
|
416
|
+
"weight": 2,
|
|
417
|
+
"expectedVerdict": "caution",
|
|
418
|
+
"expectedRuleIds": [
|
|
419
|
+
"test-removal"
|
|
420
|
+
]
|
|
421
|
+
},
|
|
374
422
|
{
|
|
375
423
|
"id": "diff-ts-ignore-pass",
|
|
376
424
|
"preset": "default",
|
|
@@ -395,6 +443,18 @@
|
|
|
395
443
|
"ts-ignore"
|
|
396
444
|
]
|
|
397
445
|
},
|
|
446
|
+
{
|
|
447
|
+
"id": "diff-ts-ignore-pass-3",
|
|
448
|
+
"preset": "default",
|
|
449
|
+
"kind": "diff",
|
|
450
|
+
"description": "TS expect-error markers should stay visible in fixture evidence too.",
|
|
451
|
+
"content": "diff --git a/src/bridge.ts b/src/bridge.ts\n--- a/src/bridge.ts\n+++ b/src/bridge.ts\n@@ -1 +1,2 @@\n+// @ts-expect-error\n+const value: number = \"oops\";\n",
|
|
452
|
+
"weight": 2,
|
|
453
|
+
"expectedVerdict": "pass",
|
|
454
|
+
"expectedRuleIds": [
|
|
455
|
+
"ts-ignore"
|
|
456
|
+
]
|
|
457
|
+
},
|
|
398
458
|
{
|
|
399
459
|
"id": "diff-temporary-marker-pass",
|
|
400
460
|
"preset": "default",
|
|
@@ -419,6 +479,18 @@
|
|
|
419
479
|
"temporary-marker"
|
|
420
480
|
]
|
|
421
481
|
},
|
|
482
|
+
{
|
|
483
|
+
"id": "diff-temporary-marker-pass-3",
|
|
484
|
+
"preset": "default",
|
|
485
|
+
"kind": "diff",
|
|
486
|
+
"description": "Hack markers should still be called out.",
|
|
487
|
+
"content": "diff --git a/src/legacy.ts b/src/legacy.ts\n--- a/src/legacy.ts\n+++ b/src/legacy.ts\n@@ -1 +1,2 @@\n+// HACK: keep this around until partner team updates their integration.\n",
|
|
488
|
+
"weight": 2,
|
|
489
|
+
"expectedVerdict": "pass",
|
|
490
|
+
"expectedRuleIds": [
|
|
491
|
+
"temporary-marker"
|
|
492
|
+
]
|
|
493
|
+
},
|
|
422
494
|
{
|
|
423
495
|
"id": "diff-console-log-pass",
|
|
424
496
|
"preset": "default",
|
|
@@ -431,6 +503,18 @@
|
|
|
431
503
|
"console-log"
|
|
432
504
|
]
|
|
433
505
|
},
|
|
506
|
+
{
|
|
507
|
+
"id": "diff-console-debug-pass",
|
|
508
|
+
"preset": "default",
|
|
509
|
+
"kind": "diff",
|
|
510
|
+
"description": "Console debug calls should be flagged in alternate method form.",
|
|
511
|
+
"content": "diff --git a/src/trace.ts b/src/trace.ts\n--- a/src/trace.ts\n+++ b/src/trace.ts\n@@ -1 +1,2 @@\n+console.debug(\"Trace path entered\");\n",
|
|
512
|
+
"weight": 1,
|
|
513
|
+
"expectedVerdict": "pass",
|
|
514
|
+
"expectedRuleIds": [
|
|
515
|
+
"console-log"
|
|
516
|
+
]
|
|
517
|
+
},
|
|
434
518
|
{
|
|
435
519
|
"id": "diff-package-install-script-pass",
|
|
436
520
|
"preset": "default",
|
|
@@ -443,6 +527,18 @@
|
|
|
443
527
|
"package-install-script"
|
|
444
528
|
]
|
|
445
529
|
},
|
|
530
|
+
{
|
|
531
|
+
"id": "diff-package-install-script-pass-3",
|
|
532
|
+
"preset": "default",
|
|
533
|
+
"kind": "diff",
|
|
534
|
+
"description": "Prepare/install scripts are still high-risk and should remain a fixture signal.",
|
|
535
|
+
"content": "diff --git a/package.json b/package.json\n--- a/package.json\n+++ b/package.json\n@@ -3,6 +3,7 @@\n \"scripts\": {\n+ \"prepare\": \"node scripts/prepare.js\"\n }\n ",
|
|
536
|
+
"weight": 2,
|
|
537
|
+
"expectedVerdict": "caution",
|
|
538
|
+
"expectedRuleIds": [
|
|
539
|
+
"package-install-script"
|
|
540
|
+
]
|
|
541
|
+
},
|
|
446
542
|
{
|
|
447
543
|
"id": "diff-package-install-script-pass-2",
|
|
448
544
|
"preset": "default",
|
|
@@ -479,6 +575,18 @@
|
|
|
479
575
|
"wildcard-file-operation"
|
|
480
576
|
]
|
|
481
577
|
},
|
|
578
|
+
{
|
|
579
|
+
"id": "command-chmod-777-pass",
|
|
580
|
+
"preset": "default",
|
|
581
|
+
"kind": "command",
|
|
582
|
+
"description": "Another over-broad permissions command should keep the same caution signal alive.",
|
|
583
|
+
"content": "chmod -R 777 ./tmp/secrets",
|
|
584
|
+
"weight": 2,
|
|
585
|
+
"expectedVerdict": "caution",
|
|
586
|
+
"expectedRuleIds": [
|
|
587
|
+
"chmod-777"
|
|
588
|
+
]
|
|
589
|
+
},
|
|
482
590
|
{
|
|
483
591
|
"id": "command-wildcard-file-operation-pass-2",
|
|
484
592
|
"preset": "default",
|
|
@@ -490,5 +598,17 @@
|
|
|
490
598
|
"expectedRuleIds": [
|
|
491
599
|
"wildcard-file-operation"
|
|
492
600
|
]
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"id": "diff-large-removal-pass-2",
|
|
604
|
+
"preset": "default",
|
|
605
|
+
"kind": "diff",
|
|
606
|
+
"description": "Another large deletion example for structural coverage.",
|
|
607
|
+
"content": "diff --git a/src/big-cleanup.ts b/src/big-cleanup.ts\n--- a/src/big-cleanup.ts\n+++ b/src/big-cleanup.ts\n@@ -1,90 +1,4 @@\n-old-item-01\n-old-item-02\n-old-item-03\n-old-item-04\n-old-item-05\n-old-item-06\n-old-item-07\n-old-item-08\n-old-item-09\n-old-item-10\n-old-item-11\n-old-item-12\n-old-item-13\n-old-item-14\n-old-item-15\n-old-item-16\n-old-item-17\n-old-item-18\n-old-item-19\n-old-item-20\n-old-item-21\n-old-item-22\n-old-item-23\n-old-item-24\n-old-item-25\n-old-item-26\n-old-item-27\n-old-item-28\n-old-item-29\n-old-item-30\n-old-item-31\n-old-item-32\n-old-item-33\n-old-item-34\n-old-item-35\n-old-item-36\n-old-item-37\n-old-item-38\n-old-item-39\n-old-item-40\n-old-item-41\n-old-item-42\n-old-item-43\n-old-item-44\n-old-item-45\n-old-item-46\n-old-item-47\n-old-item-48\n-old-item-49\n-old-item-50\n-old-item-51\n-old-item-52\n-old-item-53\n-old-item-54\n-old-item-55\n-old-item-56\n-old-item-57\n-old-item-58\n-old-item-59\n-old-item-60\n-old-item-61\n-old-item-62\n-old-item-63\n-old-item-64\n-old-item-65\n-old-item-66\n-old-item-67\n-old-item-68\n-old-item-69\n-old-item-70\n-old-item-71\n-old-item-72\n-old-item-73\n-old-item-74\n-old-item-75\n-old-item-76\n-old-item-77\n-old-item-78\n-old-item-79\n-old-item-80\n-old-item-81\n-old-item-82\n-old-item-83\n-old-item-84\n-old-item-85\n+// intentional cleanup with replacement notes\n+// review replacement path separately\n",
|
|
608
|
+
"weight": 3,
|
|
609
|
+
"expectedVerdict": "pass",
|
|
610
|
+
"expectedRuleIds": [
|
|
611
|
+
"large-removal"
|
|
612
|
+
]
|
|
493
613
|
}
|
|
494
614
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "memento-mori-jester",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.41",
|
|
4
4
|
"description": "A local court-jester sidecar for AI coding agents: review plans, commands, diffs, and final claims before they get too pleased with themselves.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|