@slope-dev/slope 1.17.0 → 1.19.1

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 (49) hide show
  1. package/dist/cli/commands/loop.js +1 -1
  2. package/dist/cli/commands/review-state.d.ts.map +1 -1
  3. package/dist/cli/commands/review-state.js +6 -45
  4. package/dist/cli/commands/review-state.js.map +1 -1
  5. package/dist/cli/guards/plan-analysis.d.ts +34 -0
  6. package/dist/cli/guards/plan-analysis.d.ts.map +1 -0
  7. package/dist/cli/guards/plan-analysis.js +102 -0
  8. package/dist/cli/guards/plan-analysis.js.map +1 -0
  9. package/dist/cli/guards/pr-review.d.ts.map +1 -1
  10. package/dist/cli/guards/pr-review.js +7 -0
  11. package/dist/cli/guards/pr-review.js.map +1 -1
  12. package/dist/cli/guards/review-tier.d.ts +4 -2
  13. package/dist/cli/guards/review-tier.d.ts.map +1 -1
  14. package/dist/cli/guards/review-tier.js +93 -60
  15. package/dist/cli/guards/review-tier.js.map +1 -1
  16. package/dist/cli/loop/continuous.d.ts.map +1 -1
  17. package/dist/cli/loop/continuous.js +36 -0
  18. package/dist/cli/loop/continuous.js.map +1 -1
  19. package/dist/cli/loop/executor.d.ts.map +1 -1
  20. package/dist/cli/loop/executor.js +92 -50
  21. package/dist/cli/loop/executor.js.map +1 -1
  22. package/dist/cli/loop/guard-runner.d.ts +19 -3
  23. package/dist/cli/loop/guard-runner.d.ts.map +1 -1
  24. package/dist/cli/loop/guard-runner.js +108 -1
  25. package/dist/cli/loop/guard-runner.js.map +1 -1
  26. package/dist/cli/loop/model-selector.d.ts.map +1 -1
  27. package/dist/cli/loop/model-selector.js +3 -2
  28. package/dist/cli/loop/model-selector.js.map +1 -1
  29. package/dist/cli/loop/planner.d.ts +21 -0
  30. package/dist/cli/loop/planner.d.ts.map +1 -0
  31. package/dist/cli/loop/planner.js +298 -0
  32. package/dist/cli/loop/planner.js.map +1 -0
  33. package/dist/cli/loop/pr-lifecycle.d.ts +6 -4
  34. package/dist/cli/loop/pr-lifecycle.d.ts.map +1 -1
  35. package/dist/cli/loop/pr-lifecycle.js +19 -17
  36. package/dist/cli/loop/pr-lifecycle.js.map +1 -1
  37. package/dist/cli/loop/staging.d.ts +19 -0
  38. package/dist/cli/loop/staging.d.ts.map +1 -0
  39. package/dist/cli/loop/staging.js +125 -0
  40. package/dist/cli/loop/staging.js.map +1 -0
  41. package/dist/cli/loop/types.d.ts +31 -1
  42. package/dist/cli/loop/types.d.ts.map +1 -1
  43. package/dist/cli/loop/worktree.d.ts +1 -1
  44. package/dist/cli/loop/worktree.d.ts.map +1 -1
  45. package/dist/cli/loop/worktree.js +5 -2
  46. package/dist/cli/loop/worktree.js.map +1 -1
  47. package/dist/core/guard.js +4 -4
  48. package/dist/core/guard.js.map +1 -1
  49. package/package.json +1 -1
@@ -4,6 +4,8 @@ import { execSync } from 'node:child_process';
4
4
  import { resolveLoopConfig } from './config.js';
5
5
  import { loadBacklog, getRemainingSprintIds } from './backlog.js';
6
6
  import { runSprint, isShuttingDown } from './executor.js';
7
+ import { initStagingBranch, createUmbrellaPr, cleanupStagingBranch } from './staging.js';
8
+ import { checkGhCli } from './pr-lifecycle.js';
7
9
  import { createLogger } from './logger.js';
8
10
  /**
9
11
  * Multi-sprint continuous loop with backlog auto-regeneration.
@@ -14,16 +16,33 @@ export async function runContinuous(flags, cwd) {
14
16
  const maxSprints = parseInt(flags.max ?? '10', 10);
15
17
  const pauseSeconds = parseInt(flags.pause ?? '30', 10);
16
18
  const dryRun = flags['dry-run'] === 'true';
19
+ const useStaging = flags.staging === 'true';
17
20
  mkdirSync(join(cwd, config.resultsDir), { recursive: true });
18
21
  mkdirSync(join(cwd, config.logDir), { recursive: true });
19
22
  const log = createLogger('loop:continuous', join(cwd, config.logDir, 'continuous.log'));
20
23
  log.info('=== Continuous Loop Starting ===');
21
24
  log.info(`Max sprints: ${maxSprints}`);
22
25
  log.info(`Pause between sprints: ${pauseSeconds}s`);
26
+ if (useStaging)
27
+ log.info('Staging branch mode enabled');
23
28
  if (dryRun)
24
29
  log.info('DRY RUN mode');
30
+ // Initialize staging branch if requested
31
+ let stagingBranch = '';
32
+ if (useStaging && !dryRun) {
33
+ // Peek at backlog to get first sprint ID for branch naming
34
+ const peekBacklog = loadBacklogSafe(cwd, config, log);
35
+ const peekRemaining = peekBacklog ? getRemainingSprintIds(peekBacklog, cwd, config) : [];
36
+ if (peekRemaining.length > 0) {
37
+ stagingBranch = initStagingBranch(peekRemaining[0], cwd, log);
38
+ }
39
+ else {
40
+ log.warn('No sprints in backlog — skipping staging branch');
41
+ }
42
+ }
25
43
  let completed = 0;
26
44
  let failures = 0;
45
+ const collectedResults = [];
27
46
  while (completed < maxSprints) {
28
47
  if (isShuttingDown()) {
29
48
  log.warn('Shutdown requested — stopping loop');
@@ -51,9 +70,12 @@ export async function runContinuous(flags, cwd) {
51
70
  const runFlags = { sprint: nextSprint };
52
71
  if (dryRun)
53
72
  runFlags['dry-run'] = 'true';
73
+ if (stagingBranch)
74
+ runFlags.stagingBranch = stagingBranch;
54
75
  const result = await runSprint(runFlags, cwd);
55
76
  if (result) {
56
77
  log.info(`Sprint ${nextSprint} completed successfully`);
78
+ collectedResults.push(result);
57
79
  failures = 0;
58
80
  }
59
81
  else {
@@ -76,9 +98,23 @@ export async function runContinuous(flags, cwd) {
76
98
  await sleep(pauseSeconds * 1000);
77
99
  }
78
100
  }
101
+ // Create umbrella PR if staging mode was used (requires manual review and merge)
102
+ if (stagingBranch && collectedResults.length > 0 && checkGhCli(log)) {
103
+ log.info('Creating umbrella PR for staging branch...');
104
+ const umbrella = createUmbrellaPr(stagingBranch, collectedResults, cwd, log);
105
+ if (umbrella) {
106
+ log.info(`Umbrella PR: ${umbrella.url} (requires manual review)`);
107
+ }
108
+ // Cleanup staging branch if umbrella PR was created — safe delete refuses if unmerged
109
+ cleanupStagingBranch(stagingBranch, cwd, log);
110
+ }
79
111
  log.info('=== Continuous Loop Complete ===');
80
112
  log.info(`Sprints attempted: ${completed}`);
81
113
  log.info(`Failures: ${failures}`);
114
+ if (stagingBranch) {
115
+ log.info(`Staging branch: ${stagingBranch}`);
116
+ log.info(`Sprint results collected: ${collectedResults.length}`);
117
+ }
82
118
  }
83
119
  function loadBacklogSafe(cwd, config, log) {
84
120
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"continuous.js","sourceRoot":"","sources":["../../../src/cli/loop/continuous.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuous.js","sourceRoot":"","sources":["../../../src/cli/loop/continuous.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/cli/loop/executor.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAiB,aAAa,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAC;AAMvG,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA8LxG;AAgSD,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA+BxE;AAsBD,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAOtF"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/cli/loop/executor.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAiB,aAAa,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAC;AAWvG,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAwMxG;AAsRD,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAoExE;AAsBD,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAOtF"}
@@ -9,6 +9,11 @@ import { createWorktree, refreshIndex, enrichBacklog, removeWorktree, getHeadSha
9
9
  import { runGuards } from './guard-runner.js';
10
10
  import { checkGhCli, hasCommitsAhead, createPr, runStructuralReview, autoMerge } from './pr-lifecycle.js';
11
11
  import { createLogger } from './logger.js';
12
+ import { generatePlan, formatPlanAsPrompt } from './planner.js';
13
+ // Context budget constants — cap injected context to avoid token overflow
14
+ const MAX_PRIMARY_FILES = 3;
15
+ const CONTEXT_LINE_LIMIT_LOCAL = 200;
16
+ const CONTEXT_LINE_LIMIT_API = 750;
12
17
  let shuttingDown = false;
13
18
  const activeChildPids = new Set();
14
19
  export function isShuttingDown() {
@@ -71,8 +76,9 @@ export async function runSprint(flags, cwd) {
71
76
  if (dryRun) {
72
77
  return dryRunSprint(sprint, config, cwd, log);
73
78
  }
74
- // Create worktree
75
- const wt = createWorktree(sprint.id, mainRepo, log);
79
+ // Create worktree (branch from staging if in staging mode)
80
+ const stagingBranch = flags.stagingBranch || '';
81
+ const wt = createWorktree(sprint.id, mainRepo, log, stagingBranch || undefined);
76
82
  const worktreeCwd = wt.path;
77
83
  try {
78
84
  refreshIndex(worktreeCwd, log);
@@ -121,9 +127,10 @@ export async function runSprint(flags, cwd) {
121
127
  let prNumber;
122
128
  let mergeStatus;
123
129
  let mergeBlockReason;
130
+ const prBaseBranch = stagingBranch || 'main';
124
131
  if (passingCount > 0 && checkGhCli(log)) {
125
- if (hasCommitsAhead(wt.branch, worktreeCwd)) {
126
- const pr = createPr(wt.branch, sprint.id, sprint.title, sprint.strategy, ticketResults, worktreeCwd, log);
132
+ if (hasCommitsAhead(wt.branch, worktreeCwd, prBaseBranch)) {
133
+ const pr = createPr(wt.branch, sprint.id, sprint.title, sprint.strategy, ticketResults, worktreeCwd, log, prBaseBranch);
127
134
  if (pr) {
128
135
  prNumber = pr.number;
129
136
  // Clear stale findings
@@ -143,7 +150,7 @@ export async function runSprint(flags, cwd) {
143
150
  log.warn('Scorecard amendment failed');
144
151
  }
145
152
  }
146
- const mergeResult = autoMerge(pr.number, findingCount, passingCount, config, worktreeCwd, log);
153
+ const mergeResult = autoMerge(pr.number, findingCount, passingCount, config, worktreeCwd, log, stagingBranch ? { isStagingMerge: true } : undefined);
147
154
  mergeStatus = mergeResult.merged ? 'merged' : 'blocked';
148
155
  mergeBlockReason = mergeResult.blockReason;
149
156
  }
@@ -178,10 +185,19 @@ export async function runSprint(flags, cwd) {
178
185
  // Cleanup worktree if merged
179
186
  if (mergeStatus === 'merged') {
180
187
  removeWorktree(wt.path, wt.branch, mainRepo, log);
181
- try {
182
- execFileSync('git', ['pull'], { cwd: mainRepo, stdio: 'pipe' });
188
+ if (stagingBranch) {
189
+ // Update local staging ref so next worktree branches from the latest
190
+ try {
191
+ execFileSync('git', ['fetch', 'origin', `${stagingBranch}:${stagingBranch}`], { cwd: mainRepo, stdio: 'pipe' });
192
+ }
193
+ catch { /* ok */ }
194
+ }
195
+ else {
196
+ try {
197
+ execFileSync('git', ['pull'], { cwd: mainRepo, stdio: 'pipe' });
198
+ }
199
+ catch { /* ok */ }
183
200
  }
184
- catch { /* ok */ }
185
201
  log.info(`=== Sprint ${sprint.id} done (merged, worktree cleaned) ===`);
186
202
  }
187
203
  else {
@@ -212,7 +228,17 @@ async function processTicket(ticket, config, cwd, log, strategy) {
212
228
  execFileSync('pnpm', ['slope', 'claim', `--target=${ticket.key}`], { cwd, stdio: 'pipe' });
213
229
  }
214
230
  catch { /* ok */ }
215
- const prompt = buildPrompt(ticket, primaryModel);
231
+ // Generate execution plan (planner) with fallback to generic prompt
232
+ let prompt;
233
+ try {
234
+ const plan = generatePlan(ticket, primaryModel, cwd, tLog);
235
+ prompt = formatPlanAsPrompt(plan, ticket);
236
+ tLog.info(`Plan generated (${plan.generated} tier, ${plan.files.length} files)`);
237
+ }
238
+ catch (err) {
239
+ tLog.warn(`Planner failed, falling back to buildPrompt: ${err instanceof Error ? err.message : err}`);
240
+ prompt = buildPrompt(ticket, primaryModel);
241
+ }
216
242
  const preSha = getHeadSha(cwd);
217
243
  let finalModel = primaryModel;
218
244
  let escalated = false;
@@ -270,7 +296,7 @@ async function runAiderWithGuards(ticketKey, model, timeout, prompt, ticket, pre
270
296
  log.warn('No code changes produced (no-op)');
271
297
  return { passed: true, noop: true, spawnFailed: false };
272
298
  }
273
- const guardResult = runGuards(preSha, config, cwd, log);
299
+ const guardResult = runGuards(preSha, config, cwd, log, ticket);
274
300
  if (guardResult.passed) {
275
301
  log.info('Guards passed');
276
302
  return { passed: true, noop: false, spawnFailed: false };
@@ -306,7 +332,7 @@ async function runAider(ticketKey, model, timeout, prompt, ticket, config, cwd,
306
332
  }
307
333
  }
308
334
  // Semantic context injection (capture output instead of shell redirect)
309
- const contextLineLimit = local ? 200 : 1000;
335
+ const contextLineLimit = local ? CONTEXT_LINE_LIMIT_LOCAL : CONTEXT_LINE_LIMIT_API;
310
336
  const contextTop = local ? 4 : 8;
311
337
  const contextFile = join(cwd, config.logDir, `${ticketKey}-context.md`);
312
338
  try {
@@ -343,32 +369,13 @@ async function runAider(ticketKey, model, timeout, prompt, ticket, config, cwd,
343
369
  if (existsSync(codemap))
344
370
  aiderArgs.push('--read', codemap);
345
371
  }
346
- // Prep plan injection (capture output instead of shell redirect)
347
- const prepFile = join(cwd, config.logDir, `${ticketKey}-prep.md`);
348
- try {
349
- const prepOutput = execFileSync('pnpm', [
350
- 'slope', 'prep', ticketKey, '--top=5',
351
- ], { cwd, encoding: 'utf8' });
352
- writeFileSync(prepFile, prepOutput);
353
- const words = prepOutput.split(/\s+/).length;
354
- if (words > 0 && words < 1600) {
355
- aiderArgs.push('--read', prepFile);
356
- log.info(`Injected prep plan (~${Math.round(words / 4)} tokens)`);
357
- }
358
- else if (words >= 1600) {
359
- log.info(`Prep plan too large (~${Math.round(words / 4)} tokens) — skipping`);
360
- }
361
- }
362
- catch {
363
- log.info('slope prep failed — continuing without plan');
364
- }
365
372
  // Primary files from enriched ticket as --file flags (editable)
366
373
  if (ticket.files?.primary) {
367
374
  let fileCount = 0;
368
375
  for (const f of ticket.files.primary) {
369
- if (fileCount >= 5)
376
+ if (fileCount >= MAX_PRIMARY_FILES)
370
377
  break;
371
- if (f && existsSync(join(cwd, f)) && /\.(ts|js|sh)$/.test(f)) {
378
+ if (f && existsSync(join(cwd, f)) && /\.(ts|js|sh)$/.test(f) && !f.includes('.test.')) {
372
379
  aiderArgs.push('--file', f);
373
380
  fileCount++;
374
381
  }
@@ -440,32 +447,67 @@ async function runAider(ticketKey, model, timeout, prompt, ticket, config, cwd,
440
447
  }
441
448
  // ── Prompt Builder ─────────────────────────────────
442
449
  export function buildPrompt(ticket, model) {
443
- const acceptance = ticket.acceptance_criteria.join('; ');
450
+ const local = isLocalModel(model);
451
+ // Calculate token budget based on club and model tier
452
+ const clubBudgets = {
453
+ putter: 4000,
454
+ wedge: 4000,
455
+ short_iron: 8000,
456
+ long_iron: 16000,
457
+ driver: 24000,
458
+ };
459
+ const baseBudget = clubBudgets[ticket.club] ?? 8000;
460
+ const tokenBudget = local ? Math.floor(baseBudget / 2) : baseBudget;
461
+ // Build structured file list from enriched primary files or modules
462
+ const targetFiles = ticket.files?.primary?.slice(0, 5) ?? ticket.modules?.slice(0, 5) ?? [];
463
+ const fileSection = targetFiles.length > 0
464
+ ? targetFiles.map(f => ` - ${f}`).join('\n')
465
+ : ' (read the description to identify target files)';
466
+ // Build structured acceptance criteria — each on its own line with checkbox
467
+ const acSection = ticket.acceptance_criteria
468
+ .map(ac => ` [ ] ${ac}`)
469
+ .join('\n');
444
470
  let prompt = `You are working on the SLOPE project (Sprint Lifecycle & Operational Performance Engine).
445
471
  This is a TypeScript monorepo using pnpm, vitest for tests, and strict TypeScript.
446
472
 
447
- TICKET: ${ticket.title}
448
- DESCRIPTION: ${ticket.description}
449
- ACCEPTANCE CRITERIA: ${acceptance}
473
+ ## Task
474
+ ${ticket.key}: ${ticket.title}
475
+
476
+ ## Description
477
+ ${ticket.description}
450
478
 
451
- RULES:
452
- - Make minimal, focused changes — do not refactor unrelated code
453
- - Read the relevant source files FIRST before making changes
454
- - Run 'pnpm test' to verify your changes
455
- - Run 'pnpm typecheck' to check types
456
- - Commit with a message starting with '${ticket.key}:'
479
+ ## Target Files
480
+ ${fileSection}
481
+
482
+ ## Acceptance Criteria (ALL must pass)
483
+ ${acSection}
484
+
485
+ ## Token Budget
486
+ You have ~${tokenBudget} tokens — focus on the core change. Avoid verbose explanations or refactoring unrelated code.
487
+
488
+ ## Verification Commands
489
+ 1. pnpm typecheck
490
+ 2. pnpm test
491
+
492
+ ## Rules
493
+ - Read each target file BEFORE modifying it — understand existing patterns
494
+ - Make real, substantive changes — do NOT add only comments, whitespace, or no-op edits
495
+ - If a file already satisfies the criteria, move to the next file — do not force changes
496
+ - Keep changes minimal and focused on this ticket only
497
+ - Commit with message: '${ticket.key}: <what you changed>'
457
498
  `;
458
- if (model.includes('minimax') || model.includes('claude')) {
459
- prompt += `\nAPPROACH: Plan before coding. List files to modify, changes per file, verification steps. Then execute step by step.`;
499
+ if (local) {
500
+ prompt += `\n## Approach (local model keep it simple)
501
+ - Focus on ONE file at a time
502
+ - Make the smallest possible change that satisfies the criteria
503
+ - Prefer editing existing code over adding new files`;
460
504
  }
461
505
  else {
462
- prompt += `\nAPPROACH: Make the smallest possible change. Focus on a single file at a time. Keep edits minimal.`;
463
- }
464
- if (ticket.files?.primary && ticket.files.primary.length > 0) {
465
- const fileList = ticket.files.primary.slice(0, 5).map(f => `- ${f}`).join('\n');
466
- prompt += `\n\nFILES TO MODIFY:\n${fileList}`;
506
+ prompt += `\n## Approach (plan then execute)
507
+ 1. List the specific changes needed per file
508
+ 2. For each file: read it, make the change, verify
509
+ 3. Run verification commands after all changes`;
467
510
  }
468
- prompt += `\nSTART by reading the relevant source files, then implement the change.`;
469
511
  return prompt;
470
512
  }
471
513
  // ── Helpers ────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/cli/loop/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/cli/loop/executor.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,30 @@
1
- import type { LoopConfig } from './types.js';
1
+ import type { BacklogTicket, LoopConfig } from './types.js';
2
2
  import type { Logger } from './logger.js';
3
3
  export interface GuardResult {
4
4
  passed: boolean;
5
- failedGuard?: 'typecheck' | 'tests';
5
+ failedGuard?: 'typecheck' | 'tests' | 'substantiveness' | 'diff_scope';
6
6
  }
7
+ export interface DiffScopeResult {
8
+ inScope: boolean;
9
+ outOfScopeFiles: string[];
10
+ }
11
+ /**
12
+ * Check if the diff since preSha is within the ticket's module scope.
13
+ * A file is in scope if it matches a module path, is under a module directory,
14
+ * or is a test file for an in-scope module.
15
+ */
16
+ export declare function isDiffInScope(preSha: string, modules: string[], cwd: string): DiffScopeResult;
7
17
  /**
8
18
  * Run post-ticket guards: typecheck + tests.
9
19
  * If either fails, auto-revert to preSha.
10
20
  *
11
21
  * @returns Guard result with pass/fail status
12
22
  */
13
- export declare function runGuards(preSha: string, config: LoopConfig, cwd: string, log: Logger): GuardResult;
23
+ export declare function runGuards(preSha: string, config: LoopConfig, cwd: string, log: Logger, ticket?: BacklogTicket): GuardResult;
24
+ /**
25
+ * Check if changes since preSha are substantive (not just comments/whitespace).
26
+ * Uses `git diff --stat` to count insertions/deletions, then checks
27
+ * if the non-comment/non-whitespace diff is meaningful.
28
+ */
29
+ export declare function isSubstantive(preSha: string, cwd: string): boolean;
14
30
  //# sourceMappingURL=guard-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard-runner.d.ts","sourceRoot":"","sources":["../../../src/cli/loop/guard-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;CACrC;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,WAAW,CAsBb"}
1
+ {"version":3,"file":"guard-runner.d.ts","sourceRoot":"","sources":["../../../src/cli/loop/guard-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAEhB,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,iBAAiB,GAAG,YAAY,CAAC;CACxE;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAiD7F;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,aAAa,GACrB,WAAW,CAsCb;AAWD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CA+BlE"}
@@ -1,12 +1,83 @@
1
1
  import { execSync, execFileSync } from 'node:child_process';
2
2
  const SHA_PATTERN = /^[0-9a-f]{40}$/;
3
+ /**
4
+ * Check if the diff since preSha is within the ticket's module scope.
5
+ * A file is in scope if it matches a module path, is under a module directory,
6
+ * or is a test file for an in-scope module.
7
+ */
8
+ export function isDiffInScope(preSha, modules, cwd) {
9
+ if (modules.length === 0)
10
+ return { inScope: true, outOfScopeFiles: [] };
11
+ let changedFiles;
12
+ try {
13
+ const output = execFileSync('git', ['diff', '--name-only', preSha, 'HEAD'], {
14
+ cwd,
15
+ encoding: 'utf8',
16
+ });
17
+ changedFiles = output.split('\n').map(f => f.trim()).filter(Boolean);
18
+ }
19
+ catch {
20
+ // If diff fails, assume in scope (don't block on errors)
21
+ return { inScope: true, outOfScopeFiles: [] };
22
+ }
23
+ if (changedFiles.length === 0)
24
+ return { inScope: true, outOfScopeFiles: [] };
25
+ const outOfScopeFiles = [];
26
+ for (const file of changedFiles) {
27
+ const fileInScope = modules.some(mod => {
28
+ // Direct path match
29
+ if (file === mod)
30
+ return true;
31
+ // File is under a module directory
32
+ if (file.startsWith(mod.endsWith('/') ? mod : mod + '/'))
33
+ return true;
34
+ // Test file for an in-scope module: test path mirrors src path
35
+ // e.g., "tests/cli/loop/planner.test.ts" is in scope for "src/cli/loop/planner.ts"
36
+ if (file.includes('.test.')) {
37
+ const srcEquiv = file
38
+ .replace(/^tests\//, 'src/')
39
+ .replace(/\.test\.(ts|js)$/, '.$1');
40
+ if (srcEquiv === mod)
41
+ return true;
42
+ if (srcEquiv.startsWith(mod + '/'))
43
+ return true;
44
+ // Also check if the test is under a module directory in tests/
45
+ const testDir = mod.replace(/^src\//, 'tests/');
46
+ if (file.startsWith(testDir + '/') || file.startsWith(testDir))
47
+ return true;
48
+ }
49
+ return false;
50
+ });
51
+ if (!fileInScope) {
52
+ outOfScopeFiles.push(file);
53
+ }
54
+ }
55
+ // Threshold: more than half of files must be out of scope to flag (warn-only)
56
+ const SCOPE_THRESHOLD = 0.5;
57
+ const inScope = outOfScopeFiles.length / changedFiles.length <= SCOPE_THRESHOLD;
58
+ return { inScope, outOfScopeFiles };
59
+ }
3
60
  /**
4
61
  * Run post-ticket guards: typecheck + tests.
5
62
  * If either fails, auto-revert to preSha.
6
63
  *
7
64
  * @returns Guard result with pass/fail status
8
65
  */
9
- export function runGuards(preSha, config, cwd, log) {
66
+ export function runGuards(preSha, config, cwd, log, ticket) {
67
+ // Guard 0a: Diff scope — warn if changes are outside ticket modules
68
+ if (ticket && ticket.modules.length > 0) {
69
+ const scopeResult = isDiffInScope(preSha, ticket.modules, cwd);
70
+ if (!scopeResult.inScope) {
71
+ log.warn(`Diff scope warning: ${scopeResult.outOfScopeFiles.length} file(s) outside ticket modules: ${scopeResult.outOfScopeFiles.join(', ')}`);
72
+ // Warn only — do NOT return failure
73
+ }
74
+ }
75
+ // Guard 0b: Substantiveness — detect stub/whitespace-only changes
76
+ if (!isSubstantive(preSha, cwd)) {
77
+ log.warn('Changes are not substantive (comments/whitespace only) — reverting');
78
+ revert(preSha, cwd);
79
+ return { passed: false, failedGuard: 'substantiveness' };
80
+ }
10
81
  // Guard 1: Typecheck
11
82
  try {
12
83
  execSync('pnpm typecheck', { cwd, stdio: 'pipe', timeout: 120_000 });
@@ -39,6 +110,42 @@ function revert(sha, cwd) {
39
110
  }
40
111
  catch { /* ok */ }
41
112
  }
113
+ /**
114
+ * Check if changes since preSha are substantive (not just comments/whitespace).
115
+ * Uses `git diff --stat` to count insertions/deletions, then checks
116
+ * if the non-comment/non-whitespace diff is meaningful.
117
+ */
118
+ export function isSubstantive(preSha, cwd) {
119
+ try {
120
+ // Get the actual code diff (ignore whitespace changes)
121
+ const diff = execFileSync('git', ['diff', '-w', '--no-color', preSha, 'HEAD'], {
122
+ cwd,
123
+ encoding: 'utf8',
124
+ maxBuffer: 1024 * 1024,
125
+ });
126
+ // Extract only added/removed lines (not diff headers)
127
+ const changedLines = diff.split('\n').filter(line => (line.startsWith('+') || line.startsWith('-')) &&
128
+ !line.startsWith('+++') && !line.startsWith('---'));
129
+ // Filter out comment-only and empty lines
130
+ const substantiveLines = changedLines.filter(line => {
131
+ const content = line.slice(1).trim(); // Remove +/- prefix
132
+ if (content === '')
133
+ return false;
134
+ // Skip pure comment lines
135
+ if (content.startsWith('//') || content.startsWith('/*') || content.startsWith('*') || content.startsWith('#'))
136
+ return false;
137
+ // Skip JSDoc-only lines
138
+ if (content.startsWith('/**') || content === '*/')
139
+ return false;
140
+ return true;
141
+ });
142
+ return substantiveLines.length >= 3;
143
+ }
144
+ catch {
145
+ // If diff fails, assume substantive (don't block on errors)
146
+ return true;
147
+ }
148
+ }
42
149
  /** Count commits that would be reverted */
43
150
  function countRevertable(preSha, cwd) {
44
151
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"guard-runner.js","sourceRoot":"","sources":["../../../src/cli/loop/guard-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAS5D,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,MAAc,EACd,MAAkB,EAClB,GAAW,EACX,GAAW;IAEX,qBAAqB;IACrB,IAAI,CAAC;QACH,QAAQ,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,yCAAyC,WAAW,YAAY,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACrD,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC;QACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,qCAAqC,WAAW,YAAY,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,iDAAiD;AACjD,SAAS,MAAM,CAAC,GAAW,EAAE,GAAW;IACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;IACnE,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;AACtB,CAAC;AAED,2CAA2C;AAC3C,SAAS,eAAe,CAAC,MAAc,EAAE,GAAW;IAClD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1F,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnH,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"guard-runner.js","sourceRoot":"","sources":["../../../src/cli/loop/guard-runner.ts"],"names":[],"mappings":"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"}