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 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, coverage) {
32
+ function fixtureEvidenceConfidence(matchCount, matchWeight, expectedWeight, unexpectedWeight) {
33
33
  if (matchWeight === 0) {
34
34
  return "none";
35
35
  }
36
- const coverageRatio = coverage.weightedMatched / Math.max(1, coverage.weightedTotal);
36
+ const expectedRatio = expectedWeight / Math.max(0.5, matchWeight);
37
37
  const unexpectedRatio = unexpectedWeight / Math.max(0.5, matchWeight);
38
- if (coverageRatio < 0.05) {
38
+ if (expectedWeight < 2 || expectedRatio < 0.6 || unexpectedRatio >= 0.5) {
39
39
  return "low";
40
40
  }
41
- if (unexpectedRatio >= 0.5 || expectedWeight < 1.2) {
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, coverage) {
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 (matchCount >= 4 && weightedCoverage >= 0.18 && unexpectedRatio <= 0.2 && expectedRatio >= 0.85) {
60
- return "strong";
52
+ if (expectedWeight < 2 || expectedRatio < 0.6 || unexpectedRatio >= 0.5) {
53
+ return "thin";
61
54
  }
62
- if (matchCount >= 2 && weightedCoverage >= 0.08 && unexpectedRatio <= 0.4 && expectedRatio >= 0.7) {
63
- return "limited";
55
+ if (matchCount >= 3 && expectedWeight >= 5 && unexpectedRatio <= 0.15 && expectedRatio >= 0.85) {
56
+ return "strong";
64
57
  }
65
- return "thin";
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,
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
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.42",
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": {