@mmnto/cli 1.12.0 → 1.14.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.
Files changed (116) hide show
  1. package/dist/commands/briefing.d.ts.map +1 -1
  2. package/dist/commands/briefing.js +3 -1
  3. package/dist/commands/briefing.js.map +1 -1
  4. package/dist/commands/briefing.test.js +1 -0
  5. package/dist/commands/briefing.test.js.map +1 -1
  6. package/dist/commands/compile-templates.d.ts +1 -1
  7. package/dist/commands/compile-templates.d.ts.map +1 -1
  8. package/dist/commands/compile-templates.js +56 -39
  9. package/dist/commands/compile-templates.js.map +1 -1
  10. package/dist/commands/compile-upgrade.test.d.ts +2 -0
  11. package/dist/commands/compile-upgrade.test.d.ts.map +1 -0
  12. package/dist/commands/compile-upgrade.test.js +161 -0
  13. package/dist/commands/compile-upgrade.test.js.map +1 -0
  14. package/dist/commands/compile.d.ts +40 -1
  15. package/dist/commands/compile.d.ts.map +1 -1
  16. package/dist/commands/compile.js +190 -16
  17. package/dist/commands/compile.js.map +1 -1
  18. package/dist/commands/config-drift.test.js +10 -5
  19. package/dist/commands/config-drift.test.js.map +1 -1
  20. package/dist/commands/doctor.d.ts +32 -0
  21. package/dist/commands/doctor.d.ts.map +1 -1
  22. package/dist/commands/doctor.js +223 -6
  23. package/dist/commands/doctor.js.map +1 -1
  24. package/dist/commands/doctor.test.js +286 -2
  25. package/dist/commands/doctor.test.js.map +1 -1
  26. package/dist/commands/extract-local.d.ts.map +1 -1
  27. package/dist/commands/extract-local.js +3 -1
  28. package/dist/commands/extract-local.js.map +1 -1
  29. package/dist/commands/extract-pr.d.ts.map +1 -1
  30. package/dist/commands/extract-pr.js +3 -1
  31. package/dist/commands/extract-pr.js.map +1 -1
  32. package/dist/commands/extract-scan.d.ts.map +1 -1
  33. package/dist/commands/extract-scan.js +3 -1
  34. package/dist/commands/extract-scan.js.map +1 -1
  35. package/dist/commands/extract-shared.d.ts.map +1 -1
  36. package/dist/commands/extract-shared.js +3 -1
  37. package/dist/commands/extract-shared.js.map +1 -1
  38. package/dist/commands/extract.test.js +2 -0
  39. package/dist/commands/extract.test.js.map +1 -1
  40. package/dist/commands/review-learn.d.ts.map +1 -1
  41. package/dist/commands/review-learn.js +3 -1
  42. package/dist/commands/review-learn.js.map +1 -1
  43. package/dist/commands/review-learn.test.js +1 -0
  44. package/dist/commands/review-learn.test.js.map +1 -1
  45. package/dist/commands/run-compiled-rules.d.ts.map +1 -1
  46. package/dist/commands/run-compiled-rules.js +2 -1
  47. package/dist/commands/run-compiled-rules.js.map +1 -1
  48. package/dist/commands/search.d.ts.map +1 -1
  49. package/dist/commands/search.js +3 -1
  50. package/dist/commands/search.js.map +1 -1
  51. package/dist/commands/shield.d.ts.map +1 -1
  52. package/dist/commands/shield.js +6 -2
  53. package/dist/commands/shield.js.map +1 -1
  54. package/dist/commands/shield.test.js +2 -0
  55. package/dist/commands/shield.test.js.map +1 -1
  56. package/dist/commands/spec.d.ts.map +1 -1
  57. package/dist/commands/spec.js +8 -2
  58. package/dist/commands/spec.js.map +1 -1
  59. package/dist/commands/spec.test.js +2 -0
  60. package/dist/commands/spec.test.js.map +1 -1
  61. package/dist/commands/stats.d.ts.map +1 -1
  62. package/dist/commands/stats.js +3 -1
  63. package/dist/commands/stats.js.map +1 -1
  64. package/dist/commands/test-rules.d.ts.map +1 -1
  65. package/dist/commands/test-rules.js +10 -3
  66. package/dist/commands/test-rules.js.map +1 -1
  67. package/dist/commands/triage.d.ts.map +1 -1
  68. package/dist/commands/triage.js +3 -1
  69. package/dist/commands/triage.js.map +1 -1
  70. package/dist/commands/triage.test.js +1 -0
  71. package/dist/commands/triage.test.js.map +1 -1
  72. package/dist/hooks/__tests__/auto-context.test.js +1 -0
  73. package/dist/hooks/__tests__/auto-context.test.js.map +1 -1
  74. package/dist/hooks/auto-context.d.ts.map +1 -1
  75. package/dist/hooks/auto-context.js +2 -2
  76. package/dist/hooks/auto-context.js.map +1 -1
  77. package/dist/index.js +2 -0
  78. package/dist/index.js.map +1 -1
  79. package/dist/orchestrators/anthropic-orchestrator.d.ts +0 -6
  80. package/dist/orchestrators/anthropic-orchestrator.d.ts.map +1 -1
  81. package/dist/orchestrators/anthropic-orchestrator.js +55 -1
  82. package/dist/orchestrators/anthropic-orchestrator.js.map +1 -1
  83. package/dist/orchestrators/anthropic-orchestrator.test.js +174 -0
  84. package/dist/orchestrators/anthropic-orchestrator.test.js.map +1 -1
  85. package/dist/orchestrators/gemini-orchestrator.d.ts.map +1 -1
  86. package/dist/orchestrators/gemini-orchestrator.js +25 -1
  87. package/dist/orchestrators/gemini-orchestrator.js.map +1 -1
  88. package/dist/orchestrators/gemini-orchestrator.test.js +38 -0
  89. package/dist/orchestrators/gemini-orchestrator.test.js.map +1 -1
  90. package/dist/orchestrators/ollama-orchestrator.d.ts.map +1 -1
  91. package/dist/orchestrators/ollama-orchestrator.js +18 -2
  92. package/dist/orchestrators/ollama-orchestrator.js.map +1 -1
  93. package/dist/orchestrators/ollama-orchestrator.test.js +34 -0
  94. package/dist/orchestrators/ollama-orchestrator.test.js.map +1 -1
  95. package/dist/orchestrators/openai-orchestrator.d.ts.map +1 -1
  96. package/dist/orchestrators/openai-orchestrator.js +19 -2
  97. package/dist/orchestrators/openai-orchestrator.js.map +1 -1
  98. package/dist/orchestrators/openai-orchestrator.test.js +38 -0
  99. package/dist/orchestrators/openai-orchestrator.test.js.map +1 -1
  100. package/dist/orchestrators/orchestrator.d.ts +38 -0
  101. package/dist/orchestrators/orchestrator.d.ts.map +1 -1
  102. package/dist/orchestrators/orchestrator.js.map +1 -1
  103. package/dist/orchestrators/orchestrator.test.js +115 -0
  104. package/dist/orchestrators/orchestrator.test.js.map +1 -1
  105. package/dist/orchestrators/shell-orchestrator.d.ts.map +1 -1
  106. package/dist/orchestrators/shell-orchestrator.js +11 -2
  107. package/dist/orchestrators/shell-orchestrator.js.map +1 -1
  108. package/dist/orchestrators/shell-orchestrator.test.js +69 -0
  109. package/dist/orchestrators/shell-orchestrator.test.js.map +1 -1
  110. package/dist/utils.d.ts +8 -0
  111. package/dist/utils.d.ts.map +1 -1
  112. package/dist/utils.js +85 -16
  113. package/dist/utils.js.map +1 -1
  114. package/dist/utils.test.js +198 -1
  115. package/dist/utils.test.js.map +1 -1
  116. package/package.json +2 -2
@@ -4,6 +4,28 @@ const COMPILED_RULES_FILE = 'compiled-rules.json';
4
4
  const DEFAULT_CONCURRENCY = 5;
5
5
  const MAX_CONCURRENCY = 20;
6
6
  const CLOUD_CONCURRENCY = 50;
7
+ // ─── Telemetry directive (mmnto/totem#1131) ────────────────────
8
+ /**
9
+ * Build the directive injected into the Sonnet system prompt for `--upgrade`.
10
+ *
11
+ * `unknown` is excluded from both the numerator and the denominator because it
12
+ * holds historical / unclassified telemetry (pre-context-aware hits, or events
13
+ * where the rule runner did not provide an `astContext`). Including it would
14
+ * dilute the classified signal and produce misleading ratios.
15
+ */
16
+ export function buildTelemetryPrefix(contextCounts) {
17
+ const classifiedTotal = contextCounts.code + contextCounts.string + contextCounts.comment + contextCounts.regex;
18
+ const nonCode = contextCounts.string + contextCounts.comment + contextCounts.regex;
19
+ const pct = classifiedTotal > 0 ? Math.round((nonCode / classifiedTotal) * 100) : 0;
20
+ const unknownNote = contextCounts.unknown > 0
21
+ ? ` Unclassified (historical) matches: ${contextCounts.unknown}.`
22
+ : '';
23
+ return [
24
+ `This rule was flagged because ${pct}% of its classified matches occur in non-code contexts`,
25
+ `(strings: ${contextCounts.string}, comments: ${contextCounts.comment}, regex literals: ${contextCounts.regex}). Please prefer an ast-grep`,
26
+ `structural pattern that only matches executable code, not string or comment content.${unknownNote}`,
27
+ ].join(' ');
28
+ }
7
29
  // ─── Logging helpers ────────────────────────────────
8
30
  function logCompiledRule(log, lesson, rule) {
9
31
  const engine = rule.engine;
@@ -14,8 +36,10 @@ function logCompiledRule(log, lesson, rule) {
14
36
  else if (engine === 'ast') {
15
37
  log.success(TAG, `[${lesson.heading}] Compiled (ast, ${severity}): ${rule.astQuery}`); // totem-ignore
16
38
  }
17
- else if (rule.lessonHeading === rule.message) {
18
- // Manual pattern — message equals heading
39
+ else if (rule.manual === true || rule.lessonHeading === rule.message) {
40
+ // Manual pattern — `manual: true` flag (post-mmnto/totem#1265) or legacy heading=message heuristic.
41
+ // The legacy heuristic only worked when manual rules had no rich message; the explicit
42
+ // flag is the reliable post-mmnto/totem#1265 signal.
19
43
  const manualEngine = rule.engine;
20
44
  log.success(TAG, `[${lesson.heading}] Compiled (manual ${manualEngine}, ${severity}): ${rule.pattern}`); // totem-ignore
21
45
  }
@@ -113,10 +137,72 @@ export async function compileCommand(options) {
113
137
  throw new TotemError('NO_LESSONS', 'No lessons found. Nothing to compile.', 'Add lessons with `totem extract <pr>` or create .totem/lessons/*.md files manually.');
114
138
  }
115
139
  log.info(TAG, `Found ${lessons.length} lessons`); // totem-ignore
140
+ // ─── Telemetry-driven re-compile (mmnto/totem#1131) ──
141
+ // --upgrade <hash> targets ONE rule by hash (full or short prefix match), evicts
142
+ // it from the cache so it alone gets recompiled, and threads a telemetry directive
143
+ // into its Pipeline 2 prompt. All other rules pass through unchanged.
144
+ //
145
+ // `lessonsInScope` is what we validate and iterate for compilation. It starts
146
+ // as the full lesson set (default behavior) and is narrowed to just the
147
+ // target lesson for --upgrade so that:
148
+ // 1. An unrelated invalid lesson can't abort the upgrade (validateLessons)
149
+ // 2. An unrelated cache-miss lesson doesn't leak into the compile batch
150
+ // 3. `totem doctor --pr` branches stay scoped to the flagged rule only
151
+ // The full `lessons` array is still used for `currentHashes` pruning so the
152
+ // other 389 compiled rules remain in newRules.
153
+ let telemetryPrefix;
154
+ let upgradeTargetHash;
155
+ let lessonsInScope = lessons;
156
+ if (options.upgrade) {
157
+ if (options.cloud) {
158
+ throw new TotemError('UPGRADE_CLOUD_UNSUPPORTED', '--upgrade is not supported with --cloud.', 'Run `totem compile --upgrade <hash>` without --cloud. The cloud worker cannot thread a per-lesson telemetry directive yet (mmnto/totem#1221).');
159
+ }
160
+ if (options.force) {
161
+ // --force empties the cache before scoped eviction runs, silently turning
162
+ // --upgrade into a full recompile. Reject the combo so intent is explicit.
163
+ throw new TotemConfigError('--upgrade cannot be combined with --force.', 'Run `totem compile --upgrade <hash>` without --force. The upgrade path already bypasses the cache for the target rule only, preserving every other compiled rule.', 'CONFIG_INVALID');
164
+ }
165
+ const target = options.upgrade.toLowerCase();
166
+ const matches = lessons.filter((l) => {
167
+ const lessonHash = hashLesson(l.heading, l.body).toLowerCase();
168
+ return lessonHash === target || lessonHash.startsWith(target);
169
+ });
170
+ if (matches.length === 0) {
171
+ throw new TotemError('UPGRADE_HASH_NOT_FOUND', `No lesson matches hash '${options.upgrade}'.`, 'Run `totem doctor` to see flagged upgrade candidates, then re-run with the printed hash.');
172
+ }
173
+ if (matches.length > 1) {
174
+ const found = matches
175
+ .map((m) => `${hashLesson(m.heading, m.body)} (${m.heading})`)
176
+ .join(', ');
177
+ throw new TotemError('UPGRADE_HASH_AMBIGUOUS', `Hash prefix '${options.upgrade}' matches ${matches.length} lessons: ${found}`, 'Use the full hash to disambiguate.');
178
+ }
179
+ upgradeTargetHash = hashLesson(matches[0].heading, matches[0].body);
180
+ lessonsInScope = [matches[0]];
181
+ log.info(TAG, `--upgrade: targeting ${upgradeTargetHash} (${matches[0].heading})`);
182
+ // Load existing telemetry to build the directive
183
+ try {
184
+ const { loadRuleMetrics } = await import('@mmnto/totem');
185
+ const metricsFile = loadRuleMetrics(totemDir);
186
+ const metric = metricsFile.rules[upgradeTargetHash];
187
+ if (metric?.contextCounts) {
188
+ telemetryPrefix = buildTelemetryPrefix(metric.contextCounts);
189
+ log.dim(TAG, `--upgrade: telemetry directive prepared (${telemetryPrefix.length} chars)`);
190
+ }
191
+ else {
192
+ log.warn(TAG, `--upgrade: no telemetry found for ${upgradeTargetHash}; recompiling without directive.`);
193
+ }
194
+ }
195
+ catch (err) {
196
+ const msg = err instanceof Error ? err.message : String(err);
197
+ log.warn(TAG, `--upgrade: failed to load telemetry — ${msg}`);
198
+ }
199
+ }
116
200
  // ─── Pre-compilation gate: validate Pipeline 1 metadata ──
201
+ // For --upgrade, scope validation to the target so unrelated invalid lessons
202
+ // cannot block the upgrade (mmnto/totem#1234 CR finding).
117
203
  {
118
204
  const { validateLessons } = await import('@mmnto/totem');
119
- const lintResult = validateLessons(lessons);
205
+ const lintResult = validateLessons(lessonsInScope);
120
206
  const errors = lintResult.diagnostics.filter((d) => d.severity === 'error');
121
207
  const warnings = lintResult.diagnostics.filter((d) => d.severity === 'warning');
122
208
  for (const d of warnings) {
@@ -144,6 +230,11 @@ export async function compileCommand(options) {
144
230
  scaffoldFixture,
145
231
  scaffoldFixturePath,
146
232
  };
233
+ // Track the terminal outcome of the --upgrade target's compile attempt so
234
+ // we can return it to the caller. Default 'noop' covers the case where the
235
+ // target was never enqueued for some reason (shouldn't happen with the
236
+ // cache-bypass logic below, but safe default).
237
+ let upgradeOutcome = 'noop';
147
238
  // ─── Phase 1: Regex compilation (requires orchestrator) ──
148
239
  if (config.orchestrator) {
149
240
  const existingFile = options.force
@@ -151,18 +242,33 @@ export async function compileCommand(options) {
151
242
  : loadCompiledRulesFile(rulesPath);
152
243
  const existingRules = existingFile.rules;
153
244
  const existingByHash = new Map(existingRules.map((r) => [r.lessonHash, r]));
154
- const nonCompilableSet = new Set(existingFile.nonCompilable ?? []);
245
+ // mmnto/totem#1280: nonCompilable is now Map<hash, title> internally for observability.
246
+ // The schema's transform normalizes legacy string entries to {hash, title} tuples
247
+ // on read, so existingFile.nonCompilable is always tuple-shaped here.
248
+ const nonCompilableMap = new Map((existingFile.nonCompilable ?? []).map((entry) => [entry.hash, entry.title]));
249
+ // Note: we do NOT delete the --upgrade target from existingByHash here.
250
+ // buildCompiledRule in @mmnto/totem looks up the old entry to preserve
251
+ // metadata (createdAt, audit lineage). Deleting would make the upgraded
252
+ // rule look brand-new and break garbage-collection heuristics. Instead,
253
+ // we bypass the cache check for the target inside the loop below.
155
254
  const toCompile = [];
156
- for (const lesson of lessons) {
255
+ // For --upgrade, iterate only the target lesson so unrelated cache-miss
256
+ // lessons don't leak into the compile batch (mmnto/totem#1234 CR finding).
257
+ for (const lesson of lessonsInScope) {
157
258
  const hash = hashLesson(lesson.heading, lesson.body);
158
- if (existingByHash.has(hash))
159
- continue; // already compiled
160
- if (nonCompilableSet.has(hash))
161
- continue; // cached as non-compilable
259
+ // --upgrade: always recompile the target, even if it's in the cache or
260
+ // was previously marked non-compilable. The telemetry directive may
261
+ // unlock a pattern the compiler couldn't produce on the first pass.
262
+ if (hash !== upgradeTargetHash) {
263
+ if (existingByHash.has(hash))
264
+ continue; // already compiled
265
+ if (nonCompilableMap.has(hash))
266
+ continue; // cached as non-compilable
267
+ }
162
268
  toCompile.push({ index: lesson.index, heading: lesson.heading, body: lesson.body, hash });
163
269
  }
164
270
  if (toCompile.length === 0) {
165
- log.success(TAG, `All ${lessons.length} lessons already processed (${existingRules.length} compiled, ${nonCompilableSet.size} non-compilable). Use --force to recompile.`); // totem-ignore
271
+ log.success(TAG, `All ${lessonsInScope.length} lesson(s) in scope already processed (${existingRules.length} compiled, ${nonCompilableMap.size} non-compilable). Use --force to recompile.`); // totem-ignore
166
272
  }
167
273
  else {
168
274
  const { createSpinner } = await import('../ui.js');
@@ -180,9 +286,26 @@ export async function compileCommand(options) {
180
286
  }
181
287
  newRules.length = 0;
182
288
  newRules.push(...freshRules);
289
+ // --upgrade: the stale copy is NOT pre-filtered here. If we removed it now
290
+ // and compilation failed (network error, LLM refusal, parser failure), the
291
+ // rule would be silently deleted from compiled-rules.json. Instead, we
292
+ // splice the stale copy inside the `case 'compiled':` handler below, so
293
+ // the fresh rule only replaces the old one on a successful re-compile.
183
294
  const coreDeps = {
184
295
  parseCompilerResponse,
185
- runOrchestrator: (prompt) => runOrchestrator({ prompt, tag: TAG, options, config, cwd, temperature: 0 }),
296
+ // mmnto/totem#1291 Phase 3: thread the optional systemPrompt from
297
+ // compileLesson through to runOrchestrator so the static compiler
298
+ // template gets cached server-side by Anthropic instead of being
299
+ // re-billed at full input-token cost on every lesson.
300
+ runOrchestrator: (prompt, systemPrompt) => runOrchestrator({
301
+ prompt,
302
+ systemPrompt,
303
+ tag: TAG,
304
+ options,
305
+ config,
306
+ cwd,
307
+ temperature: 0,
308
+ }),
186
309
  existingByHash,
187
310
  pipeline3Prompt: PIPELINE3_COMPILER_PROMPT,
188
311
  callbacks: {
@@ -281,7 +404,8 @@ export async function compileCommand(options) {
281
404
  continue;
282
405
  }
283
406
  if (!parsed.compilable) {
284
- nonCompilableSet.add(lesson.hash);
407
+ // mmnto/totem#1280: capture title alongside hash for observability
408
+ nonCompilableMap.set(lesson.hash, lesson.heading);
285
409
  skippedLessons.push({ heading: lesson.heading, reason: parsed.reason });
286
410
  skipped++;
287
411
  continue;
@@ -320,7 +444,9 @@ export async function compileCommand(options) {
320
444
  for (let i = 0; i < toCompile.length; i += CONCURRENCY) {
321
445
  const batch = toCompile.slice(i, i + CONCURRENCY);
322
446
  const results = await Promise.all(batch.map((lesson) => {
323
- return withRetry(() => compileLessonCore(lesson, COMPILER_SYSTEM_PROMPT, coreDeps), {
447
+ // Per-lesson deps: telemetry prefix only applies to the --upgrade target.
448
+ const lessonDeps = lesson.hash === upgradeTargetHash ? { ...coreDeps, telemetryPrefix } : coreDeps;
449
+ return withRetry(() => compileLessonCore(lesson, COMPILER_SYSTEM_PROMPT, lessonDeps), {
324
450
  onRetry: (attempt, delayMs) => {
325
451
  log.warn(TAG, `[${lesson.heading}] Rate limited — retry ${attempt} in ${delayMs}ms`);
326
452
  },
@@ -339,6 +465,39 @@ export async function compileCommand(options) {
339
465
  });
340
466
  }));
341
467
  for (const { lesson, result } of results) {
468
+ // --upgrade: remove the stale copy from newRules up front for any
469
+ // terminal outcome where the rule's state CHANGES (compiled → new
470
+ // pattern replaces old; skipped → rule moves to nonCompilable and
471
+ // must no longer appear as an active rule). For `failed`
472
+ // (transient error) and `noop` (no change), leave the old rule
473
+ // intact so a flaky network / rate-limit doesn't silently delete
474
+ // work (mmnto/totem#1234 GCA finding).
475
+ if (lesson.hash === upgradeTargetHash &&
476
+ (result.status === 'compiled' || result.status === 'skipped')) {
477
+ const staleIdx = newRules.findIndex((r) => r.lessonHash === upgradeTargetHash);
478
+ if (staleIdx >= 0)
479
+ newRules.splice(staleIdx, 1);
480
+ }
481
+ // --upgrade: record the terminal outcome for the target. Used by
482
+ // `totem doctor --pr` to distinguish real replacements from
483
+ // noop/skipped/failed so its PR body doesn't lie about work done
484
+ // (mmnto/totem#1234 CR finding).
485
+ if (lesson.hash === upgradeTargetHash) {
486
+ switch (result.status) {
487
+ case 'compiled':
488
+ upgradeOutcome = 'replaced';
489
+ break;
490
+ case 'skipped':
491
+ upgradeOutcome = 'skipped';
492
+ break;
493
+ case 'failed':
494
+ upgradeOutcome = 'failed';
495
+ break;
496
+ case 'noop':
497
+ upgradeOutcome = 'noop';
498
+ break;
499
+ }
500
+ }
342
501
  switch (result.status) {
343
502
  case 'compiled':
344
503
  // ADR-065: Pipeline 1 error rules require a test fixture
@@ -350,12 +509,19 @@ export async function compileCommand(options) {
350
509
  log.warn(TAG, `[${lesson.heading}] Downgraded to warning — no test fixture (ADR-065)`);
351
510
  }
352
511
  }
512
+ // --upgrade: also clear any stale nonCompilable entry so the
513
+ // successfully-compiled rule doesn't coexist with a
514
+ // non-compilable marker for the same hash.
515
+ if (lesson.hash === upgradeTargetHash) {
516
+ nonCompilableMap.delete(upgradeTargetHash);
517
+ }
353
518
  newRules.push(result.rule);
354
519
  compiled++;
355
520
  logCompiledRule(log, lesson, result.rule);
356
521
  break;
357
522
  case 'skipped':
358
- nonCompilableSet.add(result.hash);
523
+ // mmnto/totem#1280: capture title alongside hash for observability
524
+ nonCompilableMap.set(result.hash, lesson.heading);
359
525
  skippedLessons.push({ heading: lesson.heading, reason: result.reason });
360
526
  skipped++;
361
527
  break;
@@ -369,8 +535,11 @@ export async function compileCommand(options) {
369
535
  }
370
536
  } // end cloud/local else
371
537
  if (!options.raw) {
372
- // Prune stale non-compilable hashes (lesson was edited or removed)
373
- const freshNonCompilable = [...nonCompilableSet].filter((h) => currentHashes.has(h));
538
+ // mmnto/totem#1280: Prune stale non-compilable entries (lesson was edited or removed)
539
+ // and write the result as {hash, title} tuples for observability.
540
+ const freshNonCompilable = [...nonCompilableMap.entries()]
541
+ .filter(([h]) => currentHashes.has(h))
542
+ .map(([hash, title]) => ({ hash, title }));
374
543
  saveCompiledRulesFile(rulesPath, {
375
544
  version: 1,
376
545
  rules: newRules,
@@ -422,5 +591,10 @@ export async function compileCommand(options) {
422
591
  log.success(TAG, `Exported ${lessons.length} rules to ${filePath} (${name})`); // totem-ignore
423
592
  }
424
593
  }
594
+ // Return the upgrade outcome so callers can report it precisely. Only set
595
+ // when --upgrade was requested; default compile runs return void.
596
+ if (upgradeTargetHash) {
597
+ return { hash: upgradeTargetHash, status: upgradeOutcome };
598
+ }
425
599
  }
426
600
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
@@ -74,17 +74,22 @@ describe('agent instruction files match consumer AI_PROMPT_BLOCK', () => {
74
74
  });
75
75
  });
76
76
  // ─── Instruction file length limits (FR-C01) ─────────
77
- describe('agent instruction files stay under 50 lines (FMEA-001 / FR-C01)', () => {
78
- const MAX_LINES = 50;
77
+ describe('agent instruction files stay concise (FMEA-001 / FR-C01)', () => {
78
+ const MAX_CHARS = 3000;
79
+ const MAX_DIRECTIVES = 25;
79
80
  const files = [
80
81
  { name: 'CLAUDE.md', content: readRoot('CLAUDE.md') },
81
82
  { name: 'GEMINI.md', content: readRoot('GEMINI.md') },
82
83
  { name: '.junie/guidelines.md', content: readRoot('.junie/guidelines.md') },
83
84
  ];
84
85
  for (const { name, content } of files) {
85
- it(`${name} is under ${MAX_LINES} lines`, () => {
86
- const lineCount = content.split('\n').length;
87
- expect(lineCount).toBeLessThanOrEqual(MAX_LINES);
86
+ it(`${name} is under ${MAX_CHARS} characters`, () => {
87
+ expect(content.length).toBeLessThanOrEqual(MAX_CHARS);
88
+ });
89
+ it(`${name} has fewer than ${MAX_DIRECTIVES} directives`, () => {
90
+ // Count bullet points and numbered items as distinct directives
91
+ const directives = content.split('\n').filter((l) => /^\s*[-*]\s|^\s*\d+\.\s/.test(l)).length;
92
+ expect(directives).toBeLessThanOrEqual(MAX_DIRECTIVES);
88
93
  });
89
94
  }
90
95
  });
@@ -1 +1 @@
1
- {"version":3,"file":"config-drift.test.js","sourceRoot":"","sources":["../../src/commands/config-drift.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-drift.test.js","sourceRoot":"","sources":["../../src/commands/config-drift.test.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,42 @@ export declare function checkEmbeddingConfig(cwd: string): DiagnosticResult;
12
12
  export declare function checkIndex(cwd: string, lanceDir?: string): DiagnosticResult;
13
13
  export declare function checkSecretLeaks(cwd: string, totemDir?: string): Promise<DiagnosticResult>;
14
14
  export declare function checkSecretsFileTracked(cwd: string, totemDir?: string): DiagnosticResult;
15
+ /**
16
+ * Pure helper: scan compiled rules + metrics and return structured upgrade candidates.
17
+ * Used by both `checkUpgradeCandidates` (read-only diagnostic) and `runSelfHealing`
18
+ * (auto-recompile phase). Returns null if rules/metrics cannot be loaded.
19
+ *
20
+ * IMPORTANT: Uses `contextCounts` (per-context match buckets), NOT `triggerCount`
21
+ * (the rolled-up total). `triggerCount` includes ALL matches, not just code matches.
22
+ */
23
+ export declare function findUpgradeCandidates(cwd: string, totemDir?: string): Promise<UpgradeCandidate[] | null>;
24
+ /**
25
+ * Find regex/ast rules whose telemetry shows >NON_CODE_THRESHOLD of matches landing
26
+ * in non-code contexts (strings, comments, regex literals). These are good candidates
27
+ * for being upgraded to structural ast-grep patterns via `totem compile --upgrade`.
28
+ */
29
+ export declare function checkUpgradeCandidates(cwd: string, totemDir?: string): Promise<DiagnosticResult>;
15
30
  /** Bypass rate above which a rule is considered "struggling" and eligible for downgrade. */
16
31
  export declare const BYPASS_THRESHOLD = 0.3;
17
32
  /** Minimum total events (triggers + bypasses) required before acting on a rule. */
18
33
  export declare const MIN_EVENTS = 5;
34
+ /** Non-code match ratio above which a regex/ast rule is flagged for ast-grep upgrade. */
35
+ export declare const NON_CODE_THRESHOLD = 0.2;
36
+ /** Minimum total context events required before flagging a rule as an upgrade candidate. */
37
+ export declare const MIN_CONTEXT_EVENTS = 5;
38
+ export interface UpgradeCandidate {
39
+ lessonHash: string;
40
+ heading: string;
41
+ /**
42
+ * Always `'regex'` — `findUpgradeCandidates` filters to regex rules only
43
+ * because only they carry trustworthy non-code telemetry. Narrowed from
44
+ * the broader engine union so the type matches the implementation.
45
+ */
46
+ engine: 'regex';
47
+ total: number;
48
+ codeCount: number;
49
+ nonCodeRatio: number;
50
+ }
19
51
  export interface DoctorOptions {
20
52
  pr?: boolean;
21
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAyBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAiBzD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,gBAAgB,CAiCrF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CA+D3D;AAsBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CA2FlE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAa,GAAG,gBAAgB,CA4C/E;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,QAAQ,SAAW,GAClB,OAAO,CAAC,gBAAgB,CAAC,CA8E3B;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,gBAAgB,CAyB1F;AA2CD,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,mFAAmF;AACnF,eAAO,MAAM,UAAU,IAAI,CAAC;AAI5B,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAID,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmP/D;AAID,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyC5F"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAyBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAiBzD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,gBAAgB,CAiCrF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CA+D3D;AAsBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CA2FlE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAa,GAAG,gBAAgB,CA4C/E;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,QAAQ,SAAW,GAClB,OAAO,CAAC,gBAAgB,CAAC,CA8E3B;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,gBAAgB,CAyB1F;AAID;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,QAAQ,SAAW,GAClB,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAoEpC;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,SAAW,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAyC3B;AA2CD,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,mFAAmF;AACnF,eAAO,MAAM,UAAU,IAAI,CAAC;AAI5B,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAIpC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAKD,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiW/D;AAID,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA0C5F"}