@hivehub/rulebook 3.4.2 → 4.0.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 (148) hide show
  1. package/.claude/commands/continue.md +33 -0
  2. package/.claude-plugin/marketplace.json +28 -29
  3. package/.claude-plugin/plugin.json +8 -8
  4. package/README.md +32 -144
  5. package/dist/agents/ralph-parser.d.ts +41 -1
  6. package/dist/agents/ralph-parser.d.ts.map +1 -1
  7. package/dist/agents/ralph-parser.js +202 -14
  8. package/dist/agents/ralph-parser.js.map +1 -1
  9. package/dist/cli/commands.d.ts +65 -0
  10. package/dist/cli/commands.d.ts.map +1 -1
  11. package/dist/cli/commands.js +837 -61
  12. package/dist/cli/commands.js.map +1 -1
  13. package/dist/core/agent-manager.d.ts +7 -0
  14. package/dist/core/agent-manager.d.ts.map +1 -1
  15. package/dist/core/agent-manager.js +150 -3
  16. package/dist/core/agent-manager.js.map +1 -1
  17. package/dist/core/claude-mcp.d.ts +17 -0
  18. package/dist/core/claude-mcp.d.ts.map +1 -1
  19. package/dist/core/claude-mcp.js +90 -6
  20. package/dist/core/claude-mcp.js.map +1 -1
  21. package/dist/core/config-manager.d.ts.map +1 -1
  22. package/dist/core/config-manager.js +40 -0
  23. package/dist/core/config-manager.js.map +1 -1
  24. package/dist/core/cursor-mdc-generator.d.ts +30 -0
  25. package/dist/core/cursor-mdc-generator.d.ts.map +1 -0
  26. package/dist/core/cursor-mdc-generator.js +98 -0
  27. package/dist/core/cursor-mdc-generator.js.map +1 -0
  28. package/dist/core/detector.d.ts +25 -1
  29. package/dist/core/detector.d.ts.map +1 -1
  30. package/dist/core/detector.js +321 -1
  31. package/dist/core/detector.js.map +1 -1
  32. package/dist/core/generator.d.ts +10 -0
  33. package/dist/core/generator.d.ts.map +1 -1
  34. package/dist/core/generator.js +177 -3
  35. package/dist/core/generator.js.map +1 -1
  36. package/dist/core/github-issues-importer.d.ts +82 -0
  37. package/dist/core/github-issues-importer.d.ts.map +1 -0
  38. package/dist/core/github-issues-importer.js +161 -0
  39. package/dist/core/github-issues-importer.js.map +1 -0
  40. package/dist/core/health-scorer.d.ts +39 -0
  41. package/dist/core/health-scorer.d.ts.map +1 -1
  42. package/dist/core/health-scorer.js +256 -13
  43. package/dist/core/health-scorer.js.map +1 -1
  44. package/dist/core/iteration-tracker.d.ts +28 -0
  45. package/dist/core/iteration-tracker.d.ts.map +1 -1
  46. package/dist/core/iteration-tracker.js +86 -0
  47. package/dist/core/iteration-tracker.js.map +1 -1
  48. package/dist/core/multi-tool-generator.d.ts +59 -0
  49. package/dist/core/multi-tool-generator.d.ts.map +1 -0
  50. package/dist/core/multi-tool-generator.js +157 -0
  51. package/dist/core/multi-tool-generator.js.map +1 -0
  52. package/dist/core/override-manager.d.ts +23 -0
  53. package/dist/core/override-manager.d.ts.map +1 -0
  54. package/dist/core/override-manager.js +82 -0
  55. package/dist/core/override-manager.js.map +1 -0
  56. package/dist/core/plans-manager.d.ts +46 -0
  57. package/dist/core/plans-manager.d.ts.map +1 -0
  58. package/dist/core/plans-manager.js +158 -0
  59. package/dist/core/plans-manager.js.map +1 -0
  60. package/dist/core/prd-generator.d.ts +12 -0
  61. package/dist/core/prd-generator.d.ts.map +1 -1
  62. package/dist/core/prd-generator.js +91 -2
  63. package/dist/core/prd-generator.js.map +1 -1
  64. package/dist/core/ralph-manager.d.ts +47 -1
  65. package/dist/core/ralph-manager.d.ts.map +1 -1
  66. package/dist/core/ralph-manager.js +107 -0
  67. package/dist/core/ralph-manager.js.map +1 -1
  68. package/dist/core/ralph-parallel.d.ts +55 -0
  69. package/dist/core/ralph-parallel.d.ts.map +1 -0
  70. package/dist/core/ralph-parallel.js +201 -0
  71. package/dist/core/ralph-parallel.js.map +1 -0
  72. package/dist/core/ralph-plan-checkpoint.d.ts +58 -0
  73. package/dist/core/ralph-plan-checkpoint.d.ts.map +1 -0
  74. package/dist/core/ralph-plan-checkpoint.js +154 -0
  75. package/dist/core/ralph-plan-checkpoint.js.map +1 -0
  76. package/dist/core/ralph-scripts.d.ts +12 -0
  77. package/dist/core/ralph-scripts.d.ts.map +1 -0
  78. package/dist/core/ralph-scripts.js +49 -0
  79. package/dist/core/ralph-scripts.js.map +1 -0
  80. package/dist/core/review-manager.d.ts +74 -0
  81. package/dist/core/review-manager.d.ts.map +1 -0
  82. package/dist/core/review-manager.js +371 -0
  83. package/dist/core/review-manager.js.map +1 -0
  84. package/dist/index.js +94 -2
  85. package/dist/index.js.map +1 -1
  86. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  87. package/dist/mcp/rulebook-server.js +9 -2
  88. package/dist/mcp/rulebook-server.js.map +1 -1
  89. package/dist/memory/memory-store.d.ts.map +1 -1
  90. package/dist/memory/memory-store.js +4 -0
  91. package/dist/memory/memory-store.js.map +1 -1
  92. package/dist/types.d.ts +55 -2
  93. package/dist/types.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/templates/agents/implementer.md +35 -0
  96. package/templates/agents/researcher.md +34 -0
  97. package/templates/agents/team-lead.md +34 -0
  98. package/templates/agents/tester.md +42 -0
  99. package/templates/ci/rulebook-review.yml +26 -0
  100. package/templates/core/AGENTS_LEAN.md +25 -0
  101. package/templates/core/AGENTS_OVERRIDE.md +16 -0
  102. package/templates/core/MULTI_AGENT.md +74 -0
  103. package/templates/core/PLANS.md +28 -0
  104. package/templates/core/RALPH.md +45 -4
  105. package/templates/ides/CONTINUE_RULES.md +16 -0
  106. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -0
  107. package/templates/ides/GEMINI_RULES.md +17 -0
  108. package/templates/ides/WINDSURF_RULES.md +14 -0
  109. package/templates/ides/cursor-mdc/go.mdc +24 -0
  110. package/templates/ides/cursor-mdc/python.mdc +24 -0
  111. package/templates/ides/cursor-mdc/quality.mdc +25 -0
  112. package/templates/ides/cursor-mdc/ralph.mdc +39 -0
  113. package/templates/ides/cursor-mdc/rulebook.mdc +38 -0
  114. package/templates/ides/cursor-mdc/rust.mdc +24 -0
  115. package/templates/ides/cursor-mdc/typescript.mdc +25 -0
  116. package/templates/modules/sequential-thinking.md +42 -0
  117. package/templates/ralph/ralph-history.bat +4 -0
  118. package/templates/ralph/ralph-history.sh +5 -0
  119. package/templates/ralph/ralph-init.bat +5 -0
  120. package/templates/ralph/ralph-init.sh +5 -0
  121. package/templates/ralph/ralph-pause.bat +5 -0
  122. package/templates/ralph/ralph-pause.sh +5 -0
  123. package/templates/ralph/ralph-run.bat +5 -0
  124. package/templates/ralph/ralph-run.sh +5 -0
  125. package/templates/ralph/ralph-status.bat +4 -0
  126. package/templates/ralph/ralph-status.sh +5 -0
  127. package/templates/services/DATADOG.md +26 -0
  128. package/templates/services/DOCKER.md +124 -0
  129. package/templates/services/DOCKER_COMPOSE.md +168 -0
  130. package/templates/services/HELM.md +194 -0
  131. package/templates/services/KUBERNETES.md +208 -0
  132. package/templates/services/OPENTELEMETRY.md +25 -0
  133. package/templates/services/PINO.md +24 -0
  134. package/templates/services/PROMETHEUS.md +33 -0
  135. package/templates/services/SENTRY.md +23 -0
  136. package/templates/services/WINSTON.md +30 -0
  137. package/dist/core/openspec-manager.d.ts +0 -133
  138. package/dist/core/openspec-manager.d.ts.map +0 -1
  139. package/dist/core/openspec-manager.js +0 -596
  140. package/dist/core/openspec-manager.js.map +0 -1
  141. package/dist/core/openspec-migrator.d.ts +0 -27
  142. package/dist/core/openspec-migrator.d.ts.map +0 -1
  143. package/dist/core/openspec-migrator.js +0 -262
  144. package/dist/core/openspec-migrator.js.map +0 -1
  145. package/dist/core/test-task-manager.d.ts +0 -49
  146. package/dist/core/test-task-manager.d.ts.map +0 -1
  147. package/dist/core/test-task-manager.js +0 -121
  148. package/dist/core/test-task-manager.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prd-generator.js","sourceRoot":"","sources":["../../src/core/prd-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prd-generator.js","sourceRoot":"","sources":["../../src/core/prd-generator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,14 @@
1
1
  import { Logger } from './logger.js';
2
- import { RalphLoopState, RalphIterationMetadata, IterationResult } from '../types.js';
2
+ import { RalphLoopState, RalphIterationMetadata, IterationResult, PRDUserStory, PlanCheckpointConfig } from '../types.js';
3
+ /** Minimal interface for memory integration — avoids hard dependency on MemoryManager */
4
+ export interface RalphMemoryAdapter {
5
+ saveMemory(input: {
6
+ type: string;
7
+ title: string;
8
+ content: string;
9
+ tags: string[];
10
+ }): Promise<unknown>;
11
+ }
3
12
  export interface RalphLockInfo {
4
13
  pid: number;
5
14
  startedAt: string;
@@ -14,7 +23,13 @@ export declare class RalphManager {
14
23
  private lockPath;
15
24
  private loopState;
16
25
  private logger;
26
+ private memoryAdapter;
17
27
  constructor(projectRoot: string, logger: Logger);
28
+ /**
29
+ * Attach a memory adapter for auto-saving iteration learnings.
30
+ * Call before running the loop. Safe to skip — all memory ops are fire-and-forget.
31
+ */
32
+ setMemoryAdapter(adapter: RalphMemoryAdapter): void;
18
33
  /**
19
34
  * Acquire an exclusive lock for Ralph execution.
20
35
  * Returns true if lock was acquired, false if another process holds it.
@@ -65,6 +80,11 @@ export declare class RalphManager {
65
80
  * Record iteration result to history
66
81
  */
67
82
  recordIteration(result: IterationResult): Promise<void>;
83
+ /**
84
+ * Save iteration data to the memory system for cross-session learning.
85
+ * Runs fire-and-forget — failures are silently ignored.
86
+ */
87
+ private saveIterationToMemory;
68
88
  /**
69
89
  * Append iteration result to progress.txt log
70
90
  */
@@ -109,6 +129,32 @@ export declare class RalphManager {
109
129
  pending: number;
110
130
  total: number;
111
131
  }>;
132
+ /**
133
+ * Build parallel execution batches for pending stories.
134
+ *
135
+ * Uses dependency analysis and file-conflict detection to produce
136
+ * batches where each batch can be executed concurrently.
137
+ *
138
+ * @param maxWorkers - Maximum number of concurrent stories per batch
139
+ * @returns Array of batches (each batch is an array of stories)
140
+ */
141
+ getParallelBatches(maxWorkers: number): Promise<PRDUserStory[][]>;
142
+ /**
143
+ * Run a plan checkpoint for the given story.
144
+ *
145
+ * Generates an implementation plan via the AI CLI tool and requests
146
+ * interactive approval from the user. Returns whether to proceed with
147
+ * implementation and any feedback from the reviewer.
148
+ *
149
+ * @param story - The user story to plan for
150
+ * @param tool - AI CLI tool to use for plan generation
151
+ * @param checkpointConfig - Plan checkpoint configuration
152
+ * @returns Object with `proceed` (boolean) and optional `feedback` string
153
+ */
154
+ runCheckpoint(story: PRDUserStory, tool: 'claude' | 'amp' | 'gemini', checkpointConfig: PlanCheckpointConfig): Promise<{
155
+ proceed: boolean;
156
+ feedback?: string;
157
+ }>;
112
158
  /**
113
159
  * Helper to read file
114
160
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ralph-manager.d.ts","sourceRoot":"","sources":["../../src/core/ralph-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtF,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,MAAM,CAAS;gBAEX,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAU/C;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BjD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAWlC;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchF;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAYlD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACG,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCzF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAcpC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAWxC;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvD;;OAEG;YACW,mBAAmB;IAsCjC;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C7D;;OAEG;YACW,cAAc;IA2B5B;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvC;;OAEG;IACH,WAAW,IAAI,OAAO;IAgBtB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAOjD;;OAEG;IACG,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA0B5E;;OAEG;YACW,aAAa;IAQ3B;;OAEG;YACW,aAAa;IAc3B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBpF;;OAEG;YACW,aAAa;CAI5B"}
1
+ {"version":3,"file":"ralph-manager.d.ts","sourceRoot":"","sources":["../../src/core/ralph-manager.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export class RalphManager {
8
8
  lockPath;
9
9
  loopState = null;
10
10
  logger;
11
+ memoryAdapter = null;
11
12
  constructor(projectRoot, logger) {
12
13
  this.logger = logger;
13
14
  this.projectRoot = projectRoot;
@@ -15,6 +16,13 @@ export class RalphManager {
15
16
  this.historyDir = path.join(this.ralphDir, 'history');
16
17
  this.lockPath = path.join(this.ralphDir, 'ralph.lock');
17
18
  }
19
+ /**
20
+ * Attach a memory adapter for auto-saving iteration learnings.
21
+ * Call before running the loop. Safe to skip — all memory ops are fire-and-forget.
22
+ */
23
+ setMemoryAdapter(adapter) {
24
+ this.memoryAdapter = adapter;
25
+ }
18
26
  // ─── Lock Management ───
19
27
  /**
20
28
  * Acquire an exclusive lock for Ralph execution.
@@ -258,8 +266,55 @@ export class RalphManager {
258
266
  await this.appendProgress(result);
259
267
  // Save updated loop state
260
268
  await this.saveLoopState();
269
+ // Auto-save to memory system (fire-and-forget — never blocks or fails the iteration)
270
+ this.saveIterationToMemory(result).catch(() => {
271
+ // Memory failures are non-blocking
272
+ });
261
273
  this.logger.info(`Recorded iteration ${result.iteration}: ${result.task_id} - ${result.status}`);
262
274
  }
275
+ /**
276
+ * Save iteration data to the memory system for cross-session learning.
277
+ * Runs fire-and-forget — failures are silently ignored.
278
+ */
279
+ async saveIterationToMemory(result) {
280
+ if (!this.memoryAdapter)
281
+ return;
282
+ const tags = ['ralph', 'autonomous-loop', result.task_id, result.ai_tool];
283
+ // Save learnings
284
+ if (result.learnings && result.learnings.length > 0) {
285
+ await this.memoryAdapter.saveMemory({
286
+ type: 'learning',
287
+ title: `Ralph: ${result.task_id} iteration ${result.iteration}`,
288
+ content: result.learnings.join('\n'),
289
+ tags,
290
+ });
291
+ }
292
+ // Save quality gate failures as bugs
293
+ const failedGates = Object.entries(result.quality_checks)
294
+ .filter(([, passed]) => !passed)
295
+ .map(([gate]) => gate);
296
+ if (failedGates.length > 0) {
297
+ const errorContent = [
298
+ `Failed gates: ${failedGates.join(', ')}`,
299
+ ...(result.errors ?? []),
300
+ ].join('\n');
301
+ await this.memoryAdapter.saveMemory({
302
+ type: 'bug',
303
+ title: `Ralph: ${result.task_id} gate failures (iteration ${result.iteration})`,
304
+ content: errorContent,
305
+ tags: [...tags, 'quality-gate-failure'],
306
+ });
307
+ }
308
+ // Save story completion summary
309
+ if (result.status === 'success') {
310
+ await this.memoryAdapter.saveMemory({
311
+ type: 'observation',
312
+ title: `Ralph: ${result.task_title} completed`,
313
+ content: result.output_summary || `Story ${result.task_id} passed all quality gates.`,
314
+ tags: [...tags, 'story-complete'],
315
+ });
316
+ }
317
+ }
263
318
  /**
264
319
  * Append iteration result to progress.txt log
265
320
  */
@@ -420,6 +475,58 @@ export class RalphManager {
420
475
  total: prd.userStories.length,
421
476
  };
422
477
  }
478
+ /**
479
+ * Build parallel execution batches for pending stories.
480
+ *
481
+ * Uses dependency analysis and file-conflict detection to produce
482
+ * batches where each batch can be executed concurrently.
483
+ *
484
+ * @param maxWorkers - Maximum number of concurrent stories per batch
485
+ * @returns Array of batches (each batch is an array of stories)
486
+ */
487
+ async getParallelBatches(maxWorkers) {
488
+ const prd = await this.loadPRD();
489
+ if (!prd || !prd.userStories) {
490
+ return [];
491
+ }
492
+ const pendingStories = prd.userStories.filter((s) => !s.passes);
493
+ if (pendingStories.length === 0) {
494
+ return [];
495
+ }
496
+ const { buildParallelBatches } = await import('./ralph-parallel.js');
497
+ return buildParallelBatches(pendingStories, maxWorkers);
498
+ }
499
+ /**
500
+ * Run a plan checkpoint for the given story.
501
+ *
502
+ * Generates an implementation plan via the AI CLI tool and requests
503
+ * interactive approval from the user. Returns whether to proceed with
504
+ * implementation and any feedback from the reviewer.
505
+ *
506
+ * @param story - The user story to plan for
507
+ * @param tool - AI CLI tool to use for plan generation
508
+ * @param checkpointConfig - Plan checkpoint configuration
509
+ * @returns Object with `proceed` (boolean) and optional `feedback` string
510
+ */
511
+ async runCheckpoint(story, tool, checkpointConfig) {
512
+ const { shouldRunCheckpoint, generateIterationPlan, requestPlanApproval } = await import('./ralph-plan-checkpoint.js');
513
+ if (!shouldRunCheckpoint(checkpointConfig, story, false)) {
514
+ return { proceed: true };
515
+ }
516
+ this.logger.info(`Running plan checkpoint for story ${story.id}: ${story.title}`);
517
+ const plan = await generateIterationPlan(story, tool, this.projectRoot);
518
+ if (!plan) {
519
+ this.logger.warn('Plan generation returned empty output — skipping checkpoint');
520
+ return { proceed: true };
521
+ }
522
+ const approval = await requestPlanApproval(plan, story, checkpointConfig.autoApproveAfterSeconds);
523
+ if (approval.approved) {
524
+ this.logger.info(`Plan approved for story ${story.id}`);
525
+ return { proceed: true };
526
+ }
527
+ this.logger.info(`Plan rejected for story ${story.id}: ${approval.feedback ?? '(no reason)'}`);
528
+ return { proceed: false, feedback: approval.feedback };
529
+ }
423
530
  /**
424
531
  * Helper to read file
425
532
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ralph-manager.js","sourceRoot":"","sources":["../../src/core/ralph-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ralph-manager.js","sourceRoot":"","sources":["../../src/core/ralph-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Pure functions for Ralph parallel story execution.
3
+ *
4
+ * Provides dependency analysis, batch partitioning, file-conflict detection,
5
+ * and orchestration logic for running multiple user stories concurrently.
6
+ *
7
+ * All functions are side-effect-free and fully testable without mocks.
8
+ */
9
+ import type { PRDUserStory } from '../types.js';
10
+ /**
11
+ * Analyze inter-story dependencies by scanning each story's text for references
12
+ * to other stories' IDs.
13
+ *
14
+ * @param stories - The list of user stories to analyze
15
+ * @returns A map from story ID to the list of story IDs it depends on
16
+ */
17
+ export declare function analyzeDependencies(stories: PRDUserStory[]): Map<string, string[]>;
18
+ /**
19
+ * Partition stories into batches that can run concurrently, respecting
20
+ * dependency ordering and a maximum worker count per batch.
21
+ *
22
+ * Algorithm:
23
+ * 1. Stories with no unresolved dependencies go into the current batch (up to maxWorkers).
24
+ * 2. Once a batch is full or no more ready stories remain, finalize the batch.
25
+ * 3. Stories whose dependencies are all in previous batches become eligible.
26
+ * 4. Circular or unresolvable dependencies are placed in the final batch.
27
+ *
28
+ * @param stories - The stories to partition
29
+ * @param maxWorkers - Maximum number of stories per batch
30
+ * @param deps - Dependency map from analyzeDependencies()
31
+ * @returns Array of batches, each batch is an array of stories to run concurrently
32
+ */
33
+ export declare function partitionForParallel(stories: PRDUserStory[], maxWorkers: number, deps: Map<string, string[]>): PRDUserStory[][];
34
+ /**
35
+ * Detect whether two stories likely touch the same files, using a simple
36
+ * heuristic: extract file-path-like patterns from each story's text and
37
+ * check for meaningful overlap (more than 1 file in common).
38
+ *
39
+ * @param story1 - First user story
40
+ * @param story2 - Second user story
41
+ * @returns true if there is meaningful file overlap between the two stories
42
+ */
43
+ export declare function detectFileConflicts(story1: PRDUserStory, story2: PRDUserStory): boolean;
44
+ /**
45
+ * Build the final parallel execution batches by:
46
+ * 1. Analyzing inter-story dependencies
47
+ * 2. Partitioning into dependency-ordered batches
48
+ * 3. Splitting batches that contain file-conflicting stories
49
+ *
50
+ * @param stories - All pending user stories to execute
51
+ * @param maxWorkers - Maximum concurrent workers
52
+ * @returns Array of batches, each batch safe to run concurrently
53
+ */
54
+ export declare function buildParallelBatches(stories: PRDUserStory[], maxWorkers: number): PRDUserStory[][];
55
+ //# sourceMappingURL=ralph-parallel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ralph-parallel.d.ts","sourceRoot":"","sources":["../../src/core/ralph-parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmDhD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAelF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC1B,YAAY,EAAE,EAAE,CAgDlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAYvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,MAAM,GACjB,YAAY,EAAE,EAAE,CAsDlB"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Pure functions for Ralph parallel story execution.
3
+ *
4
+ * Provides dependency analysis, batch partitioning, file-conflict detection,
5
+ * and orchestration logic for running multiple user stories concurrently.
6
+ *
7
+ * All functions are side-effect-free and fully testable without mocks.
8
+ */
9
+ /**
10
+ * Regex pattern that matches story IDs like "US-001", "GH-42", etc.
11
+ */
12
+ const STORY_ID_PATTERN = /(US|GH)-\d+/g;
13
+ /**
14
+ * Regex pattern that matches file-like paths in text.
15
+ * Captures patterns such as `src/core/auth.ts`, `lib/utils.js`, `index.ts`, etc.
16
+ */
17
+ const FILE_PATH_PATTERN = /(?:^|\s|`|"|')([a-zA-Z0-9._/-]+\.(?:ts|js|tsx|jsx|json|css|scss|html|vue|svelte|py|go|rs|java|rb|php))\b/g;
18
+ /**
19
+ * Extract all story ID references from a text string.
20
+ * Returns unique IDs found in the text.
21
+ */
22
+ function extractStoryIds(text) {
23
+ const matches = text.match(STORY_ID_PATTERN);
24
+ return matches ? [...new Set(matches)] : [];
25
+ }
26
+ /**
27
+ * Extract all file-path-like references from a text string.
28
+ * Returns unique file paths found in the text.
29
+ */
30
+ function extractFilePaths(text) {
31
+ const paths = [];
32
+ let match;
33
+ const regex = new RegExp(FILE_PATH_PATTERN.source, FILE_PATH_PATTERN.flags);
34
+ while ((match = regex.exec(text)) !== null) {
35
+ paths.push(match[1]);
36
+ }
37
+ return [...new Set(paths)];
38
+ }
39
+ /**
40
+ * Gather all searchable text from a user story for dependency/conflict analysis.
41
+ */
42
+ function getStoryText(story) {
43
+ const parts = [
44
+ story.description ?? '',
45
+ story.notes ?? '',
46
+ ...(story.acceptanceCriteria ?? []),
47
+ ];
48
+ return parts.join('\n');
49
+ }
50
+ /**
51
+ * Analyze inter-story dependencies by scanning each story's text for references
52
+ * to other stories' IDs.
53
+ *
54
+ * @param stories - The list of user stories to analyze
55
+ * @returns A map from story ID to the list of story IDs it depends on
56
+ */
57
+ export function analyzeDependencies(stories) {
58
+ const storyIds = new Set(stories.map((s) => s.id));
59
+ const deps = new Map();
60
+ for (const story of stories) {
61
+ const text = getStoryText(story);
62
+ const referencedIds = extractStoryIds(text);
63
+ // Filter to only IDs that exist in the story set, excluding self-references
64
+ const dependencies = referencedIds.filter((id) => id !== story.id && storyIds.has(id));
65
+ deps.set(story.id, dependencies);
66
+ }
67
+ return deps;
68
+ }
69
+ /**
70
+ * Partition stories into batches that can run concurrently, respecting
71
+ * dependency ordering and a maximum worker count per batch.
72
+ *
73
+ * Algorithm:
74
+ * 1. Stories with no unresolved dependencies go into the current batch (up to maxWorkers).
75
+ * 2. Once a batch is full or no more ready stories remain, finalize the batch.
76
+ * 3. Stories whose dependencies are all in previous batches become eligible.
77
+ * 4. Circular or unresolvable dependencies are placed in the final batch.
78
+ *
79
+ * @param stories - The stories to partition
80
+ * @param maxWorkers - Maximum number of stories per batch
81
+ * @param deps - Dependency map from analyzeDependencies()
82
+ * @returns Array of batches, each batch is an array of stories to run concurrently
83
+ */
84
+ export function partitionForParallel(stories, maxWorkers, deps) {
85
+ if (stories.length === 0) {
86
+ return [];
87
+ }
88
+ const effectiveMaxWorkers = Math.max(1, maxWorkers);
89
+ const batches = [];
90
+ const placed = new Set(); // IDs already placed in a batch
91
+ const remaining = new Map(stories.map((s) => [s.id, s]));
92
+ // Iteratively build batches until all stories are placed or we detect a deadlock
93
+ while (remaining.size > 0) {
94
+ const batch = [];
95
+ // Find stories whose dependencies are all satisfied (already placed)
96
+ for (const [id, story] of remaining) {
97
+ if (batch.length >= effectiveMaxWorkers) {
98
+ break;
99
+ }
100
+ const storyDeps = deps.get(id) ?? [];
101
+ const allDepsResolved = storyDeps.every((depId) => placed.has(depId));
102
+ if (allDepsResolved) {
103
+ batch.push(story);
104
+ }
105
+ }
106
+ if (batch.length === 0) {
107
+ // Deadlock: remaining stories have circular or unresolvable deps.
108
+ // Place them all in a final batch, respecting maxWorkers per sub-batch.
109
+ const unresolved = [...remaining.values()];
110
+ for (let i = 0; i < unresolved.length; i += effectiveMaxWorkers) {
111
+ batches.push(unresolved.slice(i, i + effectiveMaxWorkers));
112
+ }
113
+ break;
114
+ }
115
+ // Remove placed stories from remaining
116
+ for (const story of batch) {
117
+ remaining.delete(story.id);
118
+ placed.add(story.id);
119
+ }
120
+ batches.push(batch);
121
+ }
122
+ return batches;
123
+ }
124
+ /**
125
+ * Detect whether two stories likely touch the same files, using a simple
126
+ * heuristic: extract file-path-like patterns from each story's text and
127
+ * check for meaningful overlap (more than 1 file in common).
128
+ *
129
+ * @param story1 - First user story
130
+ * @param story2 - Second user story
131
+ * @returns true if there is meaningful file overlap between the two stories
132
+ */
133
+ export function detectFileConflicts(story1, story2) {
134
+ const files1 = extractFilePaths(getStoryText(story1));
135
+ const files2 = extractFilePaths(getStoryText(story2));
136
+ if (files1.length === 0 || files2.length === 0) {
137
+ return false;
138
+ }
139
+ const set1 = new Set(files1);
140
+ const commonFiles = files2.filter((f) => set1.has(f));
141
+ return commonFiles.length > 1;
142
+ }
143
+ /**
144
+ * Build the final parallel execution batches by:
145
+ * 1. Analyzing inter-story dependencies
146
+ * 2. Partitioning into dependency-ordered batches
147
+ * 3. Splitting batches that contain file-conflicting stories
148
+ *
149
+ * @param stories - All pending user stories to execute
150
+ * @param maxWorkers - Maximum concurrent workers
151
+ * @returns Array of batches, each batch safe to run concurrently
152
+ */
153
+ export function buildParallelBatches(stories, maxWorkers) {
154
+ if (stories.length === 0) {
155
+ return [];
156
+ }
157
+ const deps = analyzeDependencies(stories);
158
+ const rawBatches = partitionForParallel(stories, maxWorkers, deps);
159
+ // Post-process: split batches that have file conflicts
160
+ const finalBatches = [];
161
+ for (const batch of rawBatches) {
162
+ if (batch.length <= 1) {
163
+ finalBatches.push(batch);
164
+ continue;
165
+ }
166
+ // Check all pairs in the batch for file conflicts
167
+ const conflictingIndices = new Set();
168
+ for (let i = 0; i < batch.length; i++) {
169
+ for (let j = i + 1; j < batch.length; j++) {
170
+ if (detectFileConflicts(batch[i], batch[j])) {
171
+ conflictingIndices.add(j); // Move the later story out
172
+ }
173
+ }
174
+ }
175
+ if (conflictingIndices.size === 0) {
176
+ finalBatches.push(batch);
177
+ }
178
+ else {
179
+ // Keep non-conflicting stories in the original batch
180
+ const safe = [];
181
+ const deferred = [];
182
+ for (let i = 0; i < batch.length; i++) {
183
+ if (conflictingIndices.has(i)) {
184
+ deferred.push(batch[i]);
185
+ }
186
+ else {
187
+ safe.push(batch[i]);
188
+ }
189
+ }
190
+ if (safe.length > 0) {
191
+ finalBatches.push(safe);
192
+ }
193
+ // Place each deferred story in its own batch (they conflict with something)
194
+ for (const story of deferred) {
195
+ finalBatches.push([story]);
196
+ }
197
+ }
198
+ }
199
+ return finalBatches;
200
+ }
201
+ //# sourceMappingURL=ralph-parallel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ralph-parallel.js","sourceRoot":"","sources":["../../src/core/ralph-parallel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { PRDUserStory, PlanCheckpointConfig } from '../types.js';
2
+ /** Signature for the async exec function used by plan generation. */
3
+ export type ExecAsyncFn = (command: string, options: {
4
+ timeout: number;
5
+ }) => Promise<{
6
+ stdout: string;
7
+ }>;
8
+ /** AI tool type accepted by the plan generation step. */
9
+ type PlanTool = 'claude' | 'amp' | 'gemini';
10
+ /**
11
+ * Build the planning-only prompt sent to the AI CLI tool.
12
+ *
13
+ * The prompt asks for an implementation plan without generating any code.
14
+ */
15
+ export declare function buildPlanPrompt(story: PRDUserStory): string;
16
+ /**
17
+ * Generate an implementation plan for a user story by invoking an AI CLI tool.
18
+ *
19
+ * Uses the same execution pattern as {@link review-manager#runAIReview} — runs
20
+ * the tool binary with the prompt piped via stdin (for Claude) or as an
21
+ * argument (for Gemini / Amp).
22
+ *
23
+ * @returns The plan text, or an empty string if the tool fails or times out.
24
+ */
25
+ export declare function generateIterationPlan(story: PRDUserStory, tool: PlanTool, _projectRoot: string, execFn?: ExecAsyncFn): Promise<string>;
26
+ /**
27
+ * Display the generated plan in the terminal with a chalk-styled border.
28
+ *
29
+ * Uses simple `console.log` output — no blessed/ncurses dependencies.
30
+ */
31
+ export declare function displayPlan(plan: string, storyTitle: string): void;
32
+ /** Result returned by the plan approval step. */
33
+ export interface PlanApprovalResult {
34
+ approved: boolean;
35
+ feedback?: string;
36
+ }
37
+ /**
38
+ * Display the plan and interactively request approval from the user.
39
+ *
40
+ * When `autoApproveAfterSeconds` is greater than zero the plan is automatically
41
+ * approved after the specified delay. Otherwise an interactive inquirer prompt
42
+ * is presented with three choices: approve, reject, or edit.
43
+ *
44
+ * @returns Approval result indicating whether to proceed and optional feedback.
45
+ */
46
+ export declare function requestPlanApproval(plan: string, story: PRDUserStory, autoApproveAfterSeconds: number): Promise<PlanApprovalResult>;
47
+ /**
48
+ * Determine whether a plan checkpoint should be executed for the given story.
49
+ *
50
+ * Returns `false` when:
51
+ * - The checkpoint feature is disabled.
52
+ * - The session is non-interactive (CI, --yes flag, piped stdin).
53
+ * - `requireApprovalForStories` is `'none'`.
54
+ * - `requireApprovalForStories` is `'failed'` but the story already passes.
55
+ */
56
+ export declare function shouldRunCheckpoint(config: PlanCheckpointConfig, story: PRDUserStory, isNonInteractive: boolean): boolean;
57
+ export {};
58
+ //# sourceMappingURL=ralph-plan-checkpoint.d.ts.map