@bradtaylorsf/alpha-loop 1.15.0 → 1.15.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.
@@ -10,6 +10,23 @@ export type Issue = {
10
10
  body: string;
11
11
  labels: string[];
12
12
  comments?: Comment[];
13
+ milestone?: string | null;
14
+ };
15
+ export type RoadmapEpicChildContext = {
16
+ issueNum: number;
17
+ title: string;
18
+ bodySummary: string;
19
+ checked: boolean;
20
+ };
21
+ export type RoadmapEpicContext = {
22
+ issueNum: number;
23
+ title: string;
24
+ bodySummary: string;
25
+ currentMilestone: string | null;
26
+ completedChildCount: number;
27
+ totalChildCount: number;
28
+ openChildCount: number;
29
+ children: RoadmapEpicChildContext[];
13
30
  };
14
31
  export type Milestone = {
15
32
  number: number;
@@ -44,7 +61,7 @@ export declare function labelIssue(repo: string, issueNum: number, addLabel: str
44
61
  * Comment on an issue.
45
62
  * Uses --body-file to avoid shell escaping issues with newlines and special characters.
46
63
  */
47
- export declare function commentIssue(repo: string, issueNum: number, body: string): void;
64
+ export declare function commentIssue(repo: string, issueNum: number, body: string): boolean;
48
65
  /**
49
66
  * Assign an issue to a user.
50
67
  */
@@ -82,7 +99,7 @@ export declare function createIssue(repo: string, title: string, body: string, l
82
99
  export declare function updateIssue(repo: string, issueNum: number, updates: {
83
100
  title?: string;
84
101
  body?: string;
85
- }): void;
102
+ }): boolean;
86
103
  /**
87
104
  * Close an issue with an optional reason.
88
105
  */
@@ -107,6 +124,12 @@ export declare function setIssueMilestone(repo: string, issueNum: number, milest
107
124
  * List all open issues (no label filter). Default limit 100.
108
125
  */
109
126
  export declare function listOpenIssues(repo: string, limit?: number): Issue[];
127
+ /**
128
+ * List open epics with ordered child issue summaries for roadmap planning.
129
+ * Known open issues are used first; missing child issue details are fetched
130
+ * individually so checked/closed child refs can still provide context.
131
+ */
132
+ export declare function listRoadmapEpics(repo: string, knownOpenIssues?: Issue[]): RoadmapEpicContext[];
110
133
  /**
111
134
  * List all open issues with their comments in a single API call.
112
135
  * Avoids the N+1 problem of fetching comments per-issue.
@@ -120,6 +143,18 @@ export declare function getIssueComments(repo: string, issueNum: number): Commen
120
143
  * Fetch a single issue with its full body and comments.
121
144
  */
122
145
  export declare function getIssueWithComments(repo: string, issueNum: number): Issue | null;
146
+ /**
147
+ * Fetch only the current body for an issue.
148
+ */
149
+ export declare function getIssueBody(repo: string, issueNum: number): string | null;
150
+ /**
151
+ * Update the body for an epic issue.
152
+ */
153
+ export declare function updateEpicIssueBody(repo: string, epicNum: number, body: string): boolean;
154
+ /**
155
+ * Add a lightweight backlink comment from a child issue to its parent epic.
156
+ */
157
+ export declare function commentChildEpicBacklink(repo: string, childIssueNum: number, epicNum: number): boolean;
123
158
  /**
124
159
  * Add an issue to a GitHub Project v2.
125
160
  */
@@ -127,7 +162,9 @@ export declare function addIssueToProject(owner: string, projectNum: number, rep
127
162
  /**
128
163
  * List open issues labeled `epic`.
129
164
  */
130
- export declare function listEpics(repo: string): Issue[];
165
+ export declare function listEpics(repo: string, options?: {
166
+ milestone?: string;
167
+ }): Issue[];
131
168
  /**
132
169
  * Fetch an epic and return its parsed sub-issue refs in checklist order.
133
170
  * Returns empty array if the epic cannot be fetched.
@@ -105,12 +105,12 @@ function getMilestoneIssueNumbers(repo, milestone) {
105
105
  }
106
106
  /**
107
107
  * Fallback: poll issues by label when no project board is configured.
108
- * Optionally filters by milestone. When a milestone is specified, the
109
- * milestone is the primary filter and the label is not required.
108
+ * Optionally filters by milestone; the ready label remains authoritative
109
+ * because milestones are scheduling metadata, not workflow state.
110
110
  */
111
111
  function pollIssuesByLabel(repo, label, limit, milestone) {
112
112
  const milestoneFlag = milestone ? ` --milestone "${milestone}"` : '';
113
- const labelFlag = milestone ? '' : ` --label "${label}"`;
113
+ const labelFlag = label ? ` --label "${label}"` : '';
114
114
  const result = ghExec(`gh issue list --repo "${repo}"${labelFlag} --state open${milestoneFlag} --json number,title,body,labels --limit ${limit}`);
115
115
  if (result.exitCode !== 0) {
116
116
  log.warn(`Failed to poll issues: ${result.stderr}`);
@@ -157,7 +157,9 @@ export function commentIssue(repo, issueNum, body) {
157
157
  const result = ghExec(`gh issue comment ${issueNum} --repo "${repo}" --body-file "${bodyFile}"`, undefined, true);
158
158
  if (result.exitCode !== 0) {
159
159
  log.warn(`Failed to comment on issue #${issueNum}: ${result.stderr}`);
160
+ return false;
160
161
  }
162
+ return true;
161
163
  }
162
164
  finally {
163
165
  try {
@@ -382,7 +384,7 @@ export function createIssue(repo, title, body, labels, milestone) {
382
384
  */
383
385
  export function updateIssue(repo, issueNum, updates) {
384
386
  if (!updates.title && updates.body === undefined)
385
- return;
387
+ return true;
386
388
  let bodyFile;
387
389
  try {
388
390
  let cmd = `gh issue edit ${issueNum} --repo "${repo}"`;
@@ -397,7 +399,9 @@ export function updateIssue(repo, issueNum, updates) {
397
399
  const result = ghExec(cmd, undefined, true);
398
400
  if (result.exitCode !== 0) {
399
401
  log.warn(`Failed to update issue #${issueNum}: ${result.stderr}`);
402
+ return false;
400
403
  }
404
+ return true;
401
405
  }
402
406
  finally {
403
407
  if (bodyFile) {
@@ -482,25 +486,99 @@ export function setIssueMilestone(repo, issueNum, milestoneTitle) {
482
486
  */
483
487
  export function listOpenIssues(repo, limit = 100) {
484
488
  const safeLimit = Math.max(1, Math.min(1000, Math.floor(limit)));
485
- const result = ghExec(`gh issue list --repo "${repo}" --state open --json number,title,body,labels --limit ${safeLimit}`);
489
+ const result = ghExec(`gh issue list --repo "${repo}" --state open --json number,title,body,labels,milestone --limit ${safeLimit}`);
486
490
  if (result.exitCode !== 0) {
487
491
  log.warn(`Failed to list open issues: ${result.stderr}`);
488
492
  return [];
489
493
  }
490
494
  try {
491
495
  const raw = JSON.parse(result.stdout);
492
- return raw.map((issue) => ({
493
- number: issue.number,
494
- title: issue.title,
495
- body: issue.body ?? '',
496
- labels: (issue.labels ?? []).map((l) => l.name),
497
- }));
496
+ return raw.map((issue) => {
497
+ const msTitle = milestoneTitle(issue.milestone);
498
+ return {
499
+ number: issue.number,
500
+ title: issue.title,
501
+ body: issue.body ?? '',
502
+ labels: (issue.labels ?? []).map((l) => l.name),
503
+ ...(msTitle ? { milestone: msTitle } : {}),
504
+ };
505
+ });
498
506
  }
499
507
  catch {
500
508
  log.warn('Failed to parse open issues JSON');
501
509
  return [];
502
510
  }
503
511
  }
512
+ function milestoneTitle(raw) {
513
+ if (!raw)
514
+ return null;
515
+ if (typeof raw === 'string')
516
+ return raw;
517
+ if (typeof raw === 'object' && raw !== null && 'title' in raw) {
518
+ const title = raw.title;
519
+ return typeof title === 'string' ? title : null;
520
+ }
521
+ return null;
522
+ }
523
+ function summarizeBody(body, maxChars) {
524
+ const text = body
525
+ .replace(/\r\n/g, '\n')
526
+ .split('\n')
527
+ .map((line) => line.trim())
528
+ .filter(Boolean)
529
+ .join(' ');
530
+ if (text.length <= maxChars)
531
+ return text;
532
+ return `${text.slice(0, maxChars)}...`;
533
+ }
534
+ function summarizeEpicBody(body, maxChars) {
535
+ const checklistLines = new Set(parseSubIssues(body).map((ref) => ref.lineIndex));
536
+ const text = body
537
+ .replace(/\r\n/g, '\n')
538
+ .split('\n')
539
+ .filter((_, index) => !checklistLines.has(index))
540
+ .join('\n');
541
+ return summarizeBody(text, maxChars);
542
+ }
543
+ /**
544
+ * List open epics with ordered child issue summaries for roadmap planning.
545
+ * Known open issues are used first; missing child issue details are fetched
546
+ * individually so checked/closed child refs can still provide context.
547
+ */
548
+ export function listRoadmapEpics(repo, knownOpenIssues = []) {
549
+ const epics = listEpics(repo);
550
+ const issueMap = new Map();
551
+ for (const issue of knownOpenIssues) {
552
+ issueMap.set(issue.number, issue);
553
+ }
554
+ return epics.map((epic) => {
555
+ const refs = parseSubIssues(epic.body);
556
+ const children = refs.map((ref) => {
557
+ let child = issueMap.get(ref.number);
558
+ if (!child) {
559
+ child = getIssueWithComments(repo, ref.number) ?? undefined;
560
+ if (child)
561
+ issueMap.set(child.number, child);
562
+ }
563
+ return {
564
+ issueNum: ref.number,
565
+ title: child?.title ?? '(issue details unavailable)',
566
+ bodySummary: child ? summarizeBody(child.body, 220) : '',
567
+ checked: ref.checked,
568
+ };
569
+ });
570
+ return {
571
+ issueNum: epic.number,
572
+ title: epic.title,
573
+ bodySummary: summarizeEpicBody(epic.body, 500),
574
+ currentMilestone: epic.milestone ?? null,
575
+ completedChildCount: refs.filter((ref) => ref.checked).length,
576
+ totalChildCount: refs.length,
577
+ openChildCount: refs.filter((ref) => !ref.checked).length,
578
+ children,
579
+ };
580
+ });
581
+ }
504
582
  /**
505
583
  * List all open issues with their comments in a single API call.
506
584
  * Avoids the N+1 problem of fetching comments per-issue.
@@ -581,6 +659,25 @@ export function getIssueWithComments(repo, issueNum) {
581
659
  return null;
582
660
  }
583
661
  }
662
+ /**
663
+ * Fetch only the current body for an issue.
664
+ */
665
+ export function getIssueBody(repo, issueNum) {
666
+ const issue = getIssueWithComments(repo, issueNum);
667
+ return issue?.body ?? null;
668
+ }
669
+ /**
670
+ * Update the body for an epic issue.
671
+ */
672
+ export function updateEpicIssueBody(repo, epicNum, body) {
673
+ return updateIssue(repo, epicNum, { body });
674
+ }
675
+ /**
676
+ * Add a lightweight backlink comment from a child issue to its parent epic.
677
+ */
678
+ export function commentChildEpicBacklink(repo, childIssueNum, epicNum) {
679
+ return commentIssue(repo, childIssueNum, `Grouped under parent epic #${epicNum}.\n\n_Triaged by alpha-loop._`);
680
+ }
584
681
  /**
585
682
  * Add an issue to a GitHub Project v2.
586
683
  */
@@ -602,8 +699,9 @@ function truncateBody(body) {
602
699
  /**
603
700
  * List open issues labeled `epic`.
604
701
  */
605
- export function listEpics(repo) {
606
- const result = ghExec(`gh issue list --repo "${repo}" --label "epic" --state open --json number,title,body,labels --limit 100`);
702
+ export function listEpics(repo, options) {
703
+ const milestoneFlag = options?.milestone ? ` --milestone ${JSON.stringify(options.milestone)}` : '';
704
+ const result = ghExec(`gh issue list --repo "${repo}" --label "epic" --state open${milestoneFlag} --json number,title,body,labels,milestone --limit 100`);
607
705
  if (result.exitCode !== 0) {
608
706
  log.warn(`Failed to list epics: ${result.stderr}`);
609
707
  return [];
@@ -615,6 +713,7 @@ export function listEpics(repo) {
615
713
  title: issue.title,
616
714
  body: issue.body ?? '',
617
715
  labels: (issue.labels ?? []).map((l) => l.name),
716
+ milestone: milestoneTitle(issue.milestone),
618
717
  }));
619
718
  }
620
719
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { EscalationTracker } from './escalation.js';
2
2
  import type { EscalationEvent } from './escalation.js';
3
+ import { type EpicPromptContext } from './prompts.js';
3
4
  import type { Config } from './config.js';
4
5
  import type { SessionContext } from './session.js';
5
6
  /**
@@ -62,12 +63,15 @@ export type PipelineResult = {
62
63
  /** Structured escalation events recorded while processing this issue. */
63
64
  escalationEvents?: EscalationEvent[];
64
65
  };
66
+ export type PipelineOptions = {
67
+ epicContext?: EpicPromptContext;
68
+ };
65
69
  /**
66
70
  * Process a single issue through the full pipeline.
67
71
  * Steps: status → worktree → plan → implement → test+retry → verify+retry →
68
72
  * review → PR → learnings → update → auto-merge → cleanup
69
73
  */
70
- export declare function processIssue(issueNum: number, title: string, body: string, config: Config, session: SessionContext, trackerOverride?: EscalationTracker): Promise<PipelineResult>;
74
+ export declare function processIssue(issueNum: number, title: string, body: string, config: Config, session: SessionContext, trackerOrOptions?: EscalationTracker | PipelineOptions, maybeOptions?: PipelineOptions): Promise<PipelineResult>;
71
75
  /**
72
76
  * Process a batch of issues through a single plan → implement → test → review cycle.
73
77
  * Instead of spawning separate agents per issue, combines all issues into one prompt
@@ -79,5 +83,5 @@ export declare function processBatch(issues: Array<{
79
83
  number: number;
80
84
  title: string;
81
85
  body: string;
82
- }>, config: Config, session: SessionContext): Promise<PipelineResult[]>;
86
+ }>, config: Config, session: SessionContext, options?: PipelineOptions): Promise<PipelineResult[]>;
83
87
  export declare function buildPRBody(issueNum: number, title: string, reviewGate: GateResult, testOutput: string, testsPassing: boolean, verifyPassing: boolean, verifySkipped: boolean, body: string, epicNum?: number): string;
@@ -9,7 +9,7 @@ import { spawnAgent, buildEndpointEnv } from './agent.js';
9
9
  import { classifyToolError, classifyToolErrors, EscalationTracker, defaultEscalationStatePath, appendEscalationEventToTrace, } from './escalation.js';
10
10
  import { setupWorktree, cleanupWorktree } from './worktree.js';
11
11
  import { assignIssue, labelIssue, commentIssue, createPR, mergePR, updateProjectStatus, getIssueComments, } from './github.js';
12
- import { buildImplementPrompt, buildReviewPrompt, buildAssumptionsPrompt, buildBatchPlanPrompt, buildBatchImplementPrompt, buildBatchReviewPrompt, } from './prompts.js';
12
+ import { buildIssuePlanPrompt, buildImplementPrompt, buildReviewPrompt, buildAssumptionsPrompt, buildBatchPlanPrompt, buildBatchImplementPrompt, buildBatchReviewPrompt, formatEpicPromptContext, } from './prompts.js';
13
13
  import { runTests } from './testing.js';
14
14
  import { runVerify } from './verify.js';
15
15
  import { extractLearnings, getLearningContext } from './learning.js';
@@ -214,6 +214,20 @@ export function formatGateFindings(gate, gateType) {
214
214
  }
215
215
  return lines.join('\n');
216
216
  }
217
+ function resolvePipelineOptions(trackerOrOptions, maybeOptions) {
218
+ if (trackerOrOptions instanceof EscalationTracker) {
219
+ return { trackerOverride: trackerOrOptions, options: maybeOptions ?? {} };
220
+ }
221
+ return { options: trackerOrOptions ?? {} };
222
+ }
223
+ function epicPromptOption(options) {
224
+ return options.epicContext ? { epicContext: options.epicContext } : {};
225
+ }
226
+ function formatEpicFixContext(options, issueNum) {
227
+ if (!options.epicContext)
228
+ return '';
229
+ return `\n\n${formatEpicPromptContext(options.epicContext)}\n\nUse the parent epic context to keep fixes scoped to issue #${issueNum} while preserving integration with sibling work.`;
230
+ }
217
231
  /**
218
232
  * Build a StageTelemetry entry from the agent result and append it to the
219
233
  * run's stages.jsonl file. Called alongside each stepCosts.push site so that
@@ -374,15 +388,17 @@ async function spawnStageAgent(options, config, ctx) {
374
388
  * Steps: status → worktree → plan → implement → test+retry → verify+retry →
375
389
  * review → PR → learnings → update → auto-merge → cleanup
376
390
  */
377
- export async function processIssue(issueNum, title, body, config, session, trackerOverride) {
391
+ export async function processIssue(issueNum, title, body, config, session, trackerOrOptions, maybeOptions) {
378
392
  const startTime = Date.now();
379
393
  const projectDir = process.cwd();
380
394
  const stepCosts = [];
381
395
  const stepsCompleted = [];
382
396
  const escalationEvents = [];
397
+ const { trackerOverride, options: pipelineOptions } = resolvePipelineOptions(trackerOrOptions, maybeOptions);
383
398
  const tracker = trackerOverride ?? new EscalationTracker({
384
399
  statePath: defaultEscalationStatePath(projectDir),
385
400
  });
401
+ const epicOption = epicPromptOption(pipelineOptions);
386
402
  let turnCounter = 0;
387
403
  const stageCtx = (stage) => ({
388
404
  stage,
@@ -442,41 +458,12 @@ export async function processIssue(issueNum, title, body, config, session, track
442
458
  const planFileInSession = join(session.logsDir, `plan-issue-${issueNum}.json`);
443
459
  if (!config.dryRun) {
444
460
  try {
445
- const planPrompt = `Analyze this GitHub issue and produce a structured implementation plan.
446
-
447
- Issue #${issueNum}: ${title}
448
-
449
- ${body}
450
-
451
- Write a JSON file to: plan-issue-${issueNum}.json
452
-
453
- The file must contain ONLY valid JSON with this exact schema:
454
-
455
- {
456
- "summary": "One-line description of what needs to be done",
457
- "files": ["src/path/to/file.ts", "..."],
458
- "implementation": "Concise step-by-step plan. What to create, modify, wire up. No issue restatement.",
459
- "testing": {
460
- "needed": true,
461
- "reason": "Why tests are or aren't needed for this change"
462
- },
463
- "verification": {
464
- "needed": false,
465
- "method": "playwright",
466
- "command": "optional shell command for script/cli/boot/api methods",
467
- "instructions": "If needed: specific steps to verify the feature. If not needed: omit this field.",
468
- "reason": "Why verification is or isn't needed"
469
- }
470
- }
471
-
472
- Rules:
473
- - testing.needed: true if ANY code changes could affect behavior. false only for docs, config, or comments.
474
- - verification.needed: true if the issue changes behavior that can be validated at runtime.
475
- - verification.method: "playwright" for UI changes, "script" for validation scripts, "boot" for service startup checks, "cli" for CLI testing, "api" for API endpoint testing.
476
- - verification.command: required for script/cli/boot/api methods — the shell command to run. Exit code 0 = pass.
477
- - verification.instructions: for playwright method, list the exact playwright-cli commands to verify.
478
- - implementation: be concise and actionable. List files to modify and what to change in each.
479
- - Write ONLY the JSON file. Do not create any other files or make any code changes.`;
461
+ const planPrompt = buildIssuePlanPrompt({
462
+ issueNum,
463
+ title,
464
+ body,
465
+ ...epicOption,
466
+ });
480
467
  // Trace the plan prompt
481
468
  tracePrompt(session.name, issueNum, 'plan', planPrompt);
482
469
  const planCtx = stageCtx('plan');
@@ -546,6 +533,7 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
546
533
  body,
547
534
  comments: issueComments.length > 0 ? issueComments : undefined,
548
535
  planContent: plan.implementation || undefined,
536
+ ...epicOption,
549
537
  visionContext: visionContext ?? undefined,
550
538
  projectContext: projectContext ?? undefined,
551
539
  previousResult: previousResult ?? undefined,
@@ -691,6 +679,7 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
691
679
  body,
692
680
  comments: issueComments.length > 0 ? issueComments : undefined,
693
681
  baseBranch: config.baseBranch,
682
+ ...epicOption,
694
683
  visionContext: loadFileIfExists(join(projectDir, '.alpha-loop', 'vision.md')) ?? undefined,
695
684
  });
696
685
  // Trace review prompt
@@ -729,7 +718,7 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
729
718
  log.warn(`Review found ${unfixedCount} unfixed issue(s), sending back to implementer...`);
730
719
  if (attempt < config.maxTestRetries) {
731
720
  const findings = formatGateFindings(reviewGate, 'Code Review');
732
- const fixPrompt = `The code review for issue #${issueNum} found problems that need to be fixed.\n\n${findings}\n\nInstructions:\n1. Address each finding listed above\n2. Run tests to make sure nothing is broken\n3. Commit your fixes with: git commit -m "fix(#${issueNum}): address review findings"`;
721
+ const fixPrompt = `The code review for issue #${issueNum} found problems that need to be fixed.\n\n${findings}${formatEpicFixContext(pipelineOptions, issueNum)}\n\nInstructions:\n1. Address each finding listed above\n2. Run tests to make sure nothing is broken\n3. Commit your fixes with: git commit -m "fix(#${issueNum}): address review findings"`;
733
722
  // Trace review-fix prompt
734
723
  tracePrompt(session.name, issueNum, `review-fix-${attempt}`, fixPrompt);
735
724
  const reviewFixCtx = stageCtx('build');
@@ -793,6 +782,7 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
793
782
  verifyInstructions: plan.verification.instructions,
794
783
  verifyMethod: plan.verification.method,
795
784
  verifyCommand: plan.verification.command,
785
+ ...epicOption,
796
786
  });
797
787
  verifyOutput = verifyResult.output;
798
788
  // Trace verify output
@@ -824,7 +814,7 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
824
814
  const findings = verifyGate !== DEFAULT_GATE
825
815
  ? formatGateFindings(verifyGate, 'Verification')
826
816
  : `## Verification Findings (MUST FIX)\n\n${verifyOutput}`;
827
- const fixPrompt = `Live verification failed for issue #${issueNum} (attempt ${attempt} of ${config.maxTestRetries}).\n\n${findings}\n\nInstructions:\n1. Read the verification findings and identify the ROOT CAUSE\n2. Fix ONLY code related to issue #${issueNum}\n3. Run tests to make sure nothing is broken\n4. Commit your fixes with: git commit -m "fix(#${issueNum}): address verification findings"`;
817
+ const fixPrompt = `Live verification failed for issue #${issueNum} (attempt ${attempt} of ${config.maxTestRetries}).\n\n${findings}${formatEpicFixContext(pipelineOptions, issueNum)}\n\nInstructions:\n1. Read the verification findings and identify the ROOT CAUSE\n2. Fix ONLY code related to issue #${issueNum}\n3. Run tests to make sure nothing is broken\n4. Commit your fixes with: git commit -m "fix(#${issueNum}): address verification findings"`;
828
818
  // Trace verify-fix prompt
829
819
  tracePrompt(session.name, issueNum, `verify-fix-${attempt}`, fixPrompt);
830
820
  const verifyFixCtx = stageCtx('test_exec');
@@ -1113,12 +1103,13 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
1113
1103
  *
1114
1104
  * After the batch completes, each issue is individually updated with labels, comments, and PR.
1115
1105
  */
1116
- export async function processBatch(issues, config, session) {
1106
+ export async function processBatch(issues, config, session, options = {}) {
1117
1107
  const startTime = Date.now();
1118
1108
  const projectDir = process.cwd();
1119
1109
  const stepCosts = [];
1120
1110
  const stepsCompleted = [];
1121
1111
  const issueNums = issues.map((i) => i.number);
1112
+ const epicOption = epicPromptOption(options);
1122
1113
  mkdirSync(session.logsDir, { recursive: true });
1123
1114
  const logFile = join(session.logsDir, `batch-${issueNums.join('-')}.log`);
1124
1115
  log.step(`Batch processing ${issues.length} issues: ${issueNums.map((n) => `#${n}`).join(', ')}`);
@@ -1192,7 +1183,7 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
1192
1183
  : '';
1193
1184
  if (!config.dryRun) {
1194
1185
  try {
1195
- const planPrompt = resumeNote + buildBatchPlanPrompt({ issues: batchIssues });
1186
+ const planPrompt = resumeNote + buildBatchPlanPrompt({ issues: batchIssues, ...epicOption });
1196
1187
  tracePrompt(session.name, issues[0].number, 'batch-plan', planPrompt);
1197
1188
  const planResult = await spawnAgent({
1198
1189
  agent: config.agent,
@@ -1246,6 +1237,7 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
1246
1237
  const implementPrompt = resumeNote + buildBatchImplementPrompt({
1247
1238
  issues: batchIssues,
1248
1239
  planContent: allPlans,
1240
+ ...epicOption,
1249
1241
  visionContext: visionContext ?? undefined,
1250
1242
  projectContext: projectContext ?? undefined,
1251
1243
  learningContext: learningContext || undefined,
@@ -1374,6 +1366,7 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
1374
1366
  const reviewPrompt = buildBatchReviewPrompt({
1375
1367
  issues: batchIssues,
1376
1368
  baseBranch: config.baseBranch,
1369
+ ...epicOption,
1377
1370
  visionContext: loadFileIfExists(join(projectDir, '.alpha-loop', 'vision.md')) ?? undefined,
1378
1371
  });
1379
1372
  tracePrompt(session.name, issues[0].number, `batch-review${attempt > 1 ? `-${attempt}` : ''}`, reviewPrompt);
@@ -1408,7 +1401,10 @@ Do NOT redo work that is already committed. Build on top of existing progress.\n
1408
1401
  log.warn(`Review found ${unfixedCount} unfixed issue(s), sending back to implementer...`);
1409
1402
  if (attempt < config.maxTestRetries) {
1410
1403
  const findings = formatGateFindings(reviewGate, 'Code Review');
1411
- const fixPrompt = `The code review for the batch found problems that need to be fixed.\n\n${findings}\n\nInstructions:\n1. Address each finding listed above\n2. Run tests to make sure nothing is broken\n3. Commit your fixes`;
1404
+ const epicFixContext = options.epicContext
1405
+ ? `\n\n${formatEpicPromptContext(options.epicContext)}\n\nUse the parent epic context to keep batch fixes scoped while preserving sibling integration.`
1406
+ : '';
1407
+ const fixPrompt = `The code review for the batch found problems that need to be fixed.\n\n${findings}${epicFixContext}\n\nInstructions:\n1. Address each finding listed above\n2. Run tests to make sure nothing is broken\n3. Commit your fixes`;
1412
1408
  tracePrompt(session.name, issues[0].number, `batch-review-fix-${attempt}`, fixPrompt);
1413
1409
  const reviewFixResult = await spawnAgent({
1414
1410
  agent: config.agent,