memento-mori-jester 0.1.42 → 0.1.43
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 +6 -0
- package/ROADMAP.md +1 -0
- package/dist/fixtures.js +12 -29
- package/dist/fixtures.js.map +1 -1
- package/docs/CLI.md +2 -0
- package/docs/RELEASE_NOTES_v0.1.43.md +22 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ All notable changes to Memento Mori Jester are tracked here.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.1.43
|
|
8
|
+
|
|
9
|
+
- Improved `jester tune` fixture support/confidence scoring so it rewards rule-specific expected fixture coverage instead of penalizing every rule against the full fixture corpus size.
|
|
10
|
+
- Clean sparse rule families can now surface as `limited` / `medium`, while well-covered low-surprise families can surface as `strong` / `high`.
|
|
11
|
+
- Added regression coverage for the updated scoring on `console-log`, `risky-domain`, and `package-install-script`.
|
|
12
|
+
|
|
7
13
|
## 0.1.42
|
|
8
14
|
|
|
9
15
|
- Tightened `jester tune` fixture evidence so built-in and structural rules always evaluate the fixture suite with each fixture's intended preset config.
|
package/ROADMAP.md
CHANGED
|
@@ -28,6 +28,7 @@ Memento Mori Jester is usable today as a CLI, MCP server, GitHub Action, and git
|
|
|
28
28
|
- Deterministic tune fixture support signal (`none` / `thin` / `limited` / `strong`) for sparse/noisy families.
|
|
29
29
|
- Precision-pass fixture expansion in v0.1.41 to strengthen repeat signal coverage for plan/command/diff families.
|
|
30
30
|
- Tune fixture evidence determinism in v0.1.42 so project-config rules no longer borrow generic preset fixture coverage.
|
|
31
|
+
- Rule-specific tune support/confidence scoring in v0.1.43 so sparse clean evidence is no longer punished by total fixture corpus growth.
|
|
31
32
|
|
|
32
33
|
## Product Ideas
|
|
33
34
|
|
package/dist/fixtures.js
CHANGED
|
@@ -29,40 +29,33 @@ function fixtureWeight(rawWeight) {
|
|
|
29
29
|
function edgeCasePenalty(isEdgeCase) {
|
|
30
30
|
return isEdgeCase ? 0.65 : 1;
|
|
31
31
|
}
|
|
32
|
-
function fixtureEvidenceConfidence(matchWeight, expectedWeight, unexpectedWeight
|
|
32
|
+
function fixtureEvidenceConfidence(matchCount, matchWeight, expectedWeight, unexpectedWeight) {
|
|
33
33
|
if (matchWeight === 0) {
|
|
34
34
|
return "none";
|
|
35
35
|
}
|
|
36
|
-
const
|
|
36
|
+
const expectedRatio = expectedWeight / Math.max(0.5, matchWeight);
|
|
37
37
|
const unexpectedRatio = unexpectedWeight / Math.max(0.5, matchWeight);
|
|
38
|
-
if (
|
|
38
|
+
if (expectedWeight < 2 || expectedRatio < 0.6 || unexpectedRatio >= 0.5) {
|
|
39
39
|
return "low";
|
|
40
40
|
}
|
|
41
|
-
if (
|
|
42
|
-
return "low";
|
|
43
|
-
}
|
|
44
|
-
if (unexpectedWeight === 0 && expectedWeight >= 4 && coverageRatio >= 0.15) {
|
|
41
|
+
if (matchCount >= 3 && expectedWeight >= 5 && expectedRatio >= 0.85 && unexpectedRatio <= 0.15) {
|
|
45
42
|
return "high";
|
|
46
43
|
}
|
|
47
44
|
return "medium";
|
|
48
45
|
}
|
|
49
|
-
function fixtureEvidenceSupport(matchCount, matchWeight, expectedWeight, unexpectedWeight
|
|
46
|
+
function fixtureEvidenceSupport(matchCount, matchWeight, expectedWeight, unexpectedWeight) {
|
|
50
47
|
if (matchWeight === 0) {
|
|
51
48
|
return "none";
|
|
52
49
|
}
|
|
53
|
-
if (coverage.weightedTotal === 0) {
|
|
54
|
-
return "thin";
|
|
55
|
-
}
|
|
56
|
-
const weightedCoverage = matchWeight / coverage.weightedTotal;
|
|
57
50
|
const expectedRatio = matchWeight > 0 ? expectedWeight / Math.max(0.5, matchWeight) : 0;
|
|
58
51
|
const unexpectedRatio = unexpectedWeight / Math.max(0.5, matchWeight);
|
|
59
|
-
if (
|
|
60
|
-
return "
|
|
52
|
+
if (expectedWeight < 2 || expectedRatio < 0.6 || unexpectedRatio >= 0.5) {
|
|
53
|
+
return "thin";
|
|
61
54
|
}
|
|
62
|
-
if (matchCount >=
|
|
63
|
-
return "
|
|
55
|
+
if (matchCount >= 3 && expectedWeight >= 5 && unexpectedRatio <= 0.15 && expectedRatio >= 0.85) {
|
|
56
|
+
return "strong";
|
|
64
57
|
}
|
|
65
|
-
return "
|
|
58
|
+
return "limited";
|
|
66
59
|
}
|
|
67
60
|
function fixtureCoverageTotals(fixtures) {
|
|
68
61
|
let total = 0;
|
|
@@ -180,24 +173,14 @@ export async function ruleFixtureEvidence(ruleId, options = {}) {
|
|
|
180
173
|
const evidence = {
|
|
181
174
|
ruleId,
|
|
182
175
|
matchCount,
|
|
183
|
-
support: fixtureEvidenceSupport(matchCount, Number(matchWeight.toFixed(3)), Number(expectedWeight.toFixed(3)), Number(unexpectedWeight.toFixed(3)),
|
|
184
|
-
total: coverageTotals.total,
|
|
185
|
-
matched: matchCount,
|
|
186
|
-
weightedTotal: coverageTotals.weightedTotal,
|
|
187
|
-
weightedMatched: Number(matchWeight.toFixed(3))
|
|
188
|
-
}),
|
|
176
|
+
support: fixtureEvidenceSupport(matchCount, Number(matchWeight.toFixed(3)), Number(expectedWeight.toFixed(3)), Number(unexpectedWeight.toFixed(3))),
|
|
189
177
|
totalFixtures: coverageTotals.total,
|
|
190
178
|
totalWeightedFixtures: coverageTotals.weightedTotal,
|
|
191
179
|
matchWeight: Number(matchWeight.toFixed(3)),
|
|
192
180
|
expectedWeight: Number(expectedWeight.toFixed(3)),
|
|
193
181
|
unexpectedWeight: Number(unexpectedWeight.toFixed(3)),
|
|
194
182
|
edgeCaseMatches,
|
|
195
|
-
confidence: fixtureEvidenceConfidence(matchWeight, expectedWeight, unexpectedWeight,
|
|
196
|
-
total: coverageTotals.total,
|
|
197
|
-
matched: matchCount,
|
|
198
|
-
weightedTotal: coverageTotals.weightedTotal,
|
|
199
|
-
weightedMatched: Number(matchWeight.toFixed(3))
|
|
200
|
-
}),
|
|
183
|
+
confidence: fixtureEvidenceConfidence(matchCount, matchWeight, expectedWeight, unexpectedWeight),
|
|
201
184
|
coverage: {
|
|
202
185
|
total: coverageTotals.total,
|
|
203
186
|
matched: matchCount,
|
package/dist/fixtures.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAgEnC,MAAM,eAAe,GAAG,OAAO,CAC7B,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,+CAA+C,CAChD,CAAC;AACF,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,IAAI,eAAe,GAA0C,IAAI,CAAC;AAClE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;aAChD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;YAExD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,SAAyC;IAC9D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAkB,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,eAAe,CAAC,UAAmB;IAC1C,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,yBAAyB,CAChC,WAAmB,EACnB,cAAsB,EACtB,gBAAwB
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
|
package/docs/CLI.md
CHANGED
|
@@ -152,6 +152,8 @@ Use `jester tune <id>` when the question is practical: should this noisy rule be
|
|
|
152
152
|
- deterministic fixture IDs + descriptions with sample truncation,
|
|
153
153
|
- and explicit `No fixture coverage is currently available for this rule.` when no fixture references apply.
|
|
154
154
|
|
|
155
|
+
Support and confidence are rule-specific signals: they reward expected fixture matches and low surprise rates rather than measuring how much of the whole fixture corpus a single rule touches.
|
|
156
|
+
|
|
155
157
|
Project-config rules intentionally do not borrow generic fixture coverage: local `blockedCommands`, `sensitiveDomains`, and custom rules report no fixture coverage unless a future fixture suite explicitly covers that project-specific rule.
|
|
156
158
|
|
|
157
159
|
If a rule is too noisy for a repo, add its id to `disabledRules` in `jester.config.json`:
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# v0.1.43 Release Notes
|
|
2
|
+
|
|
3
|
+
This maintenance release makes `jester tune` fixture support and confidence scoring more useful for sparse but well-curated rule families.
|
|
4
|
+
|
|
5
|
+
## Improved
|
|
6
|
+
|
|
7
|
+
- Support/confidence scoring now rewards rule-specific expected fixture coverage instead of measuring every rule against the full fixture corpus size.
|
|
8
|
+
- Clean sparse rule evidence can now show `limited` support and `medium` confidence.
|
|
9
|
+
- Well-covered low-surprise rule evidence can now show `strong` support and `high` confidence.
|
|
10
|
+
- Broad/noisy rules with many surprise matches still stay `thin` / `low`.
|
|
11
|
+
|
|
12
|
+
## Release Validation
|
|
13
|
+
|
|
14
|
+
```powershell
|
|
15
|
+
npm.cmd test
|
|
16
|
+
npm.cmd run demo:svg:check
|
|
17
|
+
npm.cmd run pack:dry
|
|
18
|
+
git diff --check
|
|
19
|
+
node .\dist\cli.js tune console-log --json --no-config
|
|
20
|
+
node .\dist\cli.js tune package-install-script --json --no-config
|
|
21
|
+
node .\dist\cli.js tune risky-domain --json --no-config
|
|
22
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "memento-mori-jester",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.43",
|
|
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": {
|