bmalph 2.7.2 → 2.7.4

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 (46) hide show
  1. package/README.md +14 -4
  2. package/dist/commands/doctor-checks.js +17 -10
  3. package/dist/commands/doctor-checks.js.map +1 -1
  4. package/dist/run/ralph-process.js +101 -7
  5. package/dist/run/ralph-process.js.map +1 -1
  6. package/dist/transition/artifact-collection.js +74 -0
  7. package/dist/transition/artifact-collection.js.map +1 -0
  8. package/dist/transition/artifacts.js +12 -1
  9. package/dist/transition/artifacts.js.map +1 -1
  10. package/dist/transition/context.js +17 -25
  11. package/dist/transition/context.js.map +1 -1
  12. package/dist/transition/fix-plan.js +12 -7
  13. package/dist/transition/fix-plan.js.map +1 -1
  14. package/dist/transition/orchestration.js +213 -116
  15. package/dist/transition/orchestration.js.map +1 -1
  16. package/dist/transition/preflight.js +30 -17
  17. package/dist/transition/preflight.js.map +1 -1
  18. package/dist/transition/section-patterns.js +56 -4
  19. package/dist/transition/section-patterns.js.map +1 -1
  20. package/dist/transition/specs-index.js +5 -2
  21. package/dist/transition/specs-index.js.map +1 -1
  22. package/dist/transition/specs-sync.js +23 -0
  23. package/dist/transition/specs-sync.js.map +1 -0
  24. package/dist/transition/sprint-status.js +91 -0
  25. package/dist/transition/sprint-status.js.map +1 -0
  26. package/dist/transition/story-id.js +46 -0
  27. package/dist/transition/story-id.js.map +1 -0
  28. package/dist/transition/story-parsing.js +7 -7
  29. package/dist/transition/story-parsing.js.map +1 -1
  30. package/dist/transition/tech-stack.js +1 -7
  31. package/dist/transition/tech-stack.js.map +1 -1
  32. package/package.json +1 -1
  33. package/ralph/RALPH-REFERENCE.md +50 -46
  34. package/ralph/drivers/claude-code.sh +44 -2
  35. package/ralph/drivers/codex.sh +10 -1
  36. package/ralph/drivers/copilot.sh +5 -0
  37. package/ralph/drivers/cursor-agent-wrapper.sh +13 -0
  38. package/ralph/drivers/cursor.sh +178 -14
  39. package/ralph/lib/circuit_breaker.sh +5 -5
  40. package/ralph/lib/enable_core.sh +10 -10
  41. package/ralph/lib/response_analyzer.sh +357 -111
  42. package/ralph/ralph_import.sh +14 -10
  43. package/ralph/ralph_loop.sh +168 -119
  44. package/ralph/ralph_monitor.sh +4 -4
  45. package/ralph/templates/AGENT.md +7 -7
  46. package/ralph/templates/PROMPT.md +13 -13
@@ -1,55 +1,154 @@
1
- import { readFile, readdir, cp, mkdir, access, rm, rename } from "node:fs/promises";
2
- import { join } from "node:path";
1
+ import { readFile, rm, rename } from "node:fs/promises";
2
+ import { join, relative } from "node:path";
3
3
  import { debug, info, warn } from "../utils/logger.js";
4
4
  import { isEnoent, formatError } from "../utils/errors.js";
5
- import { atomicWriteFile, exists } from "../utils/file-system.js";
5
+ import { atomicWriteFile, exists, getFilesRecursive } from "../utils/file-system.js";
6
6
  import { readConfig } from "../utils/config.js";
7
7
  import { readState, writeState } from "../utils/state.js";
8
8
  import { parseStoriesWithWarnings } from "./story-parsing.js";
9
9
  import { generateFixPlan, parseFixPlan, mergeFixPlanProgress, detectOrphanedCompletedStories, detectRenumberedStories, buildCompletedTitleMap, normalizeTitle, } from "./fix-plan.js";
10
10
  import { detectTechStack, customizeAgentMd } from "./tech-stack.js";
11
- import { findArtifactsDir } from "./artifacts.js";
11
+ import { findArtifactsDir, resolvePlanningSpecsSubpath } from "./artifacts.js";
12
12
  import { runPreflight, PreflightValidationError } from "./preflight.js";
13
+ import { collectTransitionArtifacts, combineArtifactContents } from "./artifact-collection.js";
14
+ import { compareStoryIds } from "./story-id.js";
13
15
  import { extractProjectContext, generateProjectContextMd, generatePrompt, detectTruncation, } from "./context.js";
14
16
  import { generateSpecsChangelog, formatChangelog } from "./specs-changelog.js";
15
17
  import { generateSpecsIndex, formatSpecsIndexMd } from "./specs-index.js";
18
+ import { parseSprintStatus } from "./sprint-status.js";
19
+ import { prepareSpecsDirectory } from "./specs-sync.js";
20
+ async function swapSpecsDirectory(specsDir, specsTmpDir) {
21
+ const specsOldDir = `${specsDir}.old`;
22
+ let hasBackup = false;
23
+ if (await exists(specsDir)) {
24
+ await rm(specsOldDir, { recursive: true, force: true });
25
+ await rename(specsDir, specsOldDir);
26
+ hasBackup = true;
27
+ }
28
+ else if (await exists(specsOldDir)) {
29
+ hasBackup = true;
30
+ debug("Found existing .ralph/specs.old from previous failed transition, preserving backup");
31
+ }
32
+ else {
33
+ debug("No existing .ralph/specs to preserve (first transition)");
34
+ }
35
+ try {
36
+ await rename(specsTmpDir, specsDir);
37
+ }
38
+ catch (err) {
39
+ if (hasBackup) {
40
+ debug(`Specs swap failed, restoring original: ${formatError(err)}`);
41
+ try {
42
+ await rename(specsOldDir, specsDir);
43
+ }
44
+ catch (restoreErr) {
45
+ if (!isEnoent(restoreErr)) {
46
+ debug(`Could not restore .ralph/specs.old: ${formatError(restoreErr)}`);
47
+ }
48
+ }
49
+ }
50
+ throw err;
51
+ }
52
+ if (hasBackup) {
53
+ await rm(specsOldDir, { recursive: true, force: true });
54
+ }
55
+ }
56
+ function ensureUniqueStoryIds(stories) {
57
+ const sourceById = new Map();
58
+ for (const story of stories) {
59
+ const existingSource = sourceById.get(story.id);
60
+ if (existingSource) {
61
+ throw new Error(`Duplicate story ID "${story.id}" found in ${existingSource} and ${story.sourceFile}`);
62
+ }
63
+ sourceById.set(story.id, story.sourceFile);
64
+ }
65
+ }
66
+ async function resolveSprintStatusSource(projectDir, artifactsDir, collectedArtifacts, artifactContents) {
67
+ const canonicalCandidates = [
68
+ "_bmad-output/implementation-artifacts/sprint-status.yaml",
69
+ "_bmad-output/implementation_artifacts/sprint-status.yaml",
70
+ ];
71
+ for (const candidate of canonicalCandidates) {
72
+ const candidatePath = join(projectDir, candidate);
73
+ if (!(await exists(candidatePath))) {
74
+ continue;
75
+ }
76
+ try {
77
+ return {
78
+ displayPath: candidate,
79
+ content: await readFile(candidatePath, "utf-8"),
80
+ };
81
+ }
82
+ catch (err) {
83
+ return {
84
+ displayPath: candidate,
85
+ content: null,
86
+ readError: formatError(err),
87
+ };
88
+ }
89
+ }
90
+ if (!collectedArtifacts.sprintStatusFile) {
91
+ return null;
92
+ }
93
+ const artifactsRelativeDir = relative(projectDir, artifactsDir).replace(/\\/g, "/");
94
+ return {
95
+ displayPath: `${artifactsRelativeDir}/${collectedArtifacts.sprintStatusFile}`,
96
+ content: artifactContents.get(collectedArtifacts.sprintStatusFile) ?? null,
97
+ };
98
+ }
16
99
  export async function runTransition(projectDir, options) {
17
100
  info("Locating BMAD artifacts...");
18
101
  const artifactsDir = await findArtifactsDir(projectDir);
19
102
  if (!artifactsDir) {
20
103
  throw new Error("No BMAD artifacts found. Run BMAD planning phases first (at minimum: Create PRD, Create Architecture, Create Epics and Stories).");
21
104
  }
22
- // Find and parse stories file
23
- const files = await readdir(artifactsDir);
105
+ const files = await getFilesRecursive(artifactsDir);
106
+ const collectedArtifacts = collectTransitionArtifacts(files);
24
107
  // Read artifact contents early for preflight validation and later use
25
108
  const artifactContents = new Map();
26
- for (const file of files) {
27
- if (file.endsWith(".md")) {
28
- try {
29
- const content = await readFile(join(artifactsDir, file), "utf-8");
30
- artifactContents.set(file, content);
31
- }
32
- catch (err) {
33
- warn(`Could not read artifact ${file}: ${formatError(err)}`);
34
- }
109
+ for (const file of collectedArtifacts.files) {
110
+ if (!/\.(?:md|ya?ml)$/i.test(file)) {
111
+ continue;
112
+ }
113
+ try {
114
+ const content = await readFile(join(artifactsDir, file), "utf-8");
115
+ artifactContents.set(file, content);
116
+ }
117
+ catch (err) {
118
+ warn(`Could not read artifact ${file}: ${formatError(err)}`);
35
119
  }
36
120
  }
37
- const storiesPattern = /^(epics[-_]?(and[-_]?)?)?stor(y|ies)([-_]\d+)?\.md$/i;
38
- const storiesFile = files.find((f) => storiesPattern.test(f) || /epic/i.test(f));
39
- if (!storiesFile) {
40
- debug(`Files in artifacts dir: ${files.join(", ")}`);
41
- throw new Error(`No epics/stories file found in ${artifactsDir}. Available files: ${files.join(", ")}. Run 'CE' (Create Epics and Stories) first.`);
121
+ if (collectedArtifacts.storyFiles.length === 0) {
122
+ debug(`Files in artifacts dir: ${collectedArtifacts.files.join(", ")}`);
123
+ throw new Error(`No epics/stories file found in ${artifactsDir}. Available files: ${collectedArtifacts.files.join(", ")}. Run 'CE' (Create Epics and Stories) first.`);
42
124
  }
43
- debug(`Using stories file: ${storiesFile}`);
44
- const storiesContent = await readFile(join(artifactsDir, storiesFile), "utf-8");
125
+ debug(`Using stories files: ${collectedArtifacts.storyFiles.join(", ")}`);
45
126
  info("Parsing stories...");
46
- const { stories, warnings: parseWarnings } = parseStoriesWithWarnings(storiesContent);
127
+ const stories = [];
128
+ const parseWarnings = [];
129
+ for (const storyFile of collectedArtifacts.storyFiles) {
130
+ const storiesContent = artifactContents.get(storyFile);
131
+ if (!storiesContent) {
132
+ warn(`Could not read stories artifact ${storyFile}`);
133
+ continue;
134
+ }
135
+ const parsedStories = parseStoriesWithWarnings(storiesContent, storyFile);
136
+ stories.push(...parsedStories.stories);
137
+ parseWarnings.push(...parsedStories.warnings);
138
+ }
139
+ ensureUniqueStoryIds(stories);
140
+ stories.sort((left, right) => compareStoryIds(left.id, right.id) ||
141
+ left.sourceFile.localeCompare(right.sourceFile) ||
142
+ left.title.localeCompare(right.title));
47
143
  if (stories.length === 0) {
48
- throw new Error("No stories parsed from the epics file. Ensure stories follow the format: ### Story N.M: Title");
144
+ throw new Error("No stories parsed from the epics files. Ensure stories follow the format: ### Story N.M: Title");
49
145
  }
50
146
  // Pre-flight validation
51
147
  info("Pre-flight validation...");
52
- const preflightResult = runPreflight(artifactContents, files, stories, parseWarnings);
148
+ const preflightResult = runPreflight(artifactContents, collectedArtifacts.files, stories, parseWarnings);
149
+ const preflightIssues = options?.force
150
+ ? preflightResult.issues.map((issue) => issue.severity === "error" ? { ...issue, severity: "warning" } : issue)
151
+ : preflightResult.issues;
53
152
  if (!preflightResult.pass) {
54
153
  if (options?.force) {
55
154
  warn("Pre-flight validation has errors but --force was used, continuing...");
@@ -63,13 +162,17 @@ export async function runTransition(projectDir, options) {
63
162
  // Check existing fix_plan for completed items (smart merge)
64
163
  let completedIds = new Set();
65
164
  let existingItems = [];
165
+ let orphanWarnings = [];
166
+ let renumberWarnings = [];
167
+ const completionWarnings = [];
168
+ let useTitleBasedMerge = true;
169
+ let fixPlanPreserved = false;
66
170
  const fixPlanPath = join(projectDir, ".ralph/@fix_plan.md");
67
171
  const fixPlanExisted = await exists(fixPlanPath);
68
172
  try {
69
173
  const existingFixPlan = await readFile(fixPlanPath, "utf-8");
70
174
  existingItems = parseFixPlan(existingFixPlan);
71
- completedIds = new Set(existingItems.filter((i) => i.completed).map((i) => i.id));
72
- debug(`Found ${completedIds.size} completed stories in existing fix_plan`);
175
+ debug(`Found ${existingItems.filter((item) => item.completed).length} completed stories in existing fix_plan`);
73
176
  }
74
177
  catch (err) {
75
178
  if (isEnoent(err)) {
@@ -79,86 +182,81 @@ export async function runTransition(projectDir, options) {
79
182
  warn(`Could not read existing fix_plan: ${formatError(err)}`);
80
183
  }
81
184
  }
82
- // Detect orphaned completed stories (Bug #2)
83
- const newStoryIds = new Set(stories.map((s) => s.id));
84
- const orphanWarnings = detectOrphanedCompletedStories(existingItems, newStoryIds);
85
- // Build title maps for title-based merge (Gap 3: renumbered story preservation)
185
+ const sprintStatusSource = await resolveSprintStatusSource(projectDir, artifactsDir, collectedArtifacts, artifactContents);
186
+ if (sprintStatusSource) {
187
+ useTitleBasedMerge = false;
188
+ if (sprintStatusSource.readError) {
189
+ completionWarnings.push(`Sprint status file "${sprintStatusSource.displayPath}" could not be read: ${sprintStatusSource.readError}. All stories were left unchecked.`);
190
+ }
191
+ else if (!sprintStatusSource.content) {
192
+ completionWarnings.push(`Sprint status file "${sprintStatusSource.displayPath}" could not be read. All stories were left unchecked.`);
193
+ }
194
+ else {
195
+ const sprintStatus = parseSprintStatus(sprintStatusSource.content);
196
+ completionWarnings.push(...sprintStatus.warnings);
197
+ if (sprintStatus.valid) {
198
+ completedIds = new Set(stories
199
+ .filter((story) => sprintStatus.storyStatusById.get(story.id) === "done")
200
+ .map((story) => story.id));
201
+ fixPlanPreserved = completedIds.size > 0;
202
+ for (const story of stories) {
203
+ if (!sprintStatus.storyStatusById.has(story.id)) {
204
+ completionWarnings.push(`Sprint status is missing story ${story.id} (${story.title}); leaving it unchecked.`);
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ else {
211
+ completedIds = new Set(existingItems.filter((item) => item.completed).map((item) => item.id));
212
+ fixPlanPreserved = completedIds.size > 0;
213
+ // Detect orphaned completed stories (Bug #2)
214
+ const newStoryIds = new Set(stories.map((story) => story.id));
215
+ orphanWarnings = detectOrphanedCompletedStories(existingItems, newStoryIds);
216
+ // Build title maps for title-based merge (Gap 3: renumbered story preservation)
217
+ const completedTitles = buildCompletedTitleMap(existingItems);
218
+ const newTitleMap = new Map(stories.map((story) => [story.id, story.title]));
219
+ // Detect which stories were preserved via title match (for renumber warning suppression)
220
+ const preservedIds = new Set();
221
+ for (const [id, title] of newTitleMap) {
222
+ if (!completedIds.has(id) && completedTitles.has(normalizeTitle(title))) {
223
+ preservedIds.add(id);
224
+ }
225
+ }
226
+ // Detect renumbered stories (Bug #3), skipping auto-preserved ones
227
+ renumberWarnings = detectRenumberedStories(existingItems, stories, preservedIds);
228
+ }
86
229
  const completedTitles = buildCompletedTitleMap(existingItems);
87
- const newTitleMap = new Map(stories.map((s) => [s.id, s.title]));
230
+ const newTitleMap = new Map(stories.map((story) => [story.id, story.title]));
88
231
  // Generate new fix_plan from current stories, preserving completion status
89
232
  info(`Generating fix plan for ${stories.length} stories...`);
90
- const newFixPlan = generateFixPlan(stories, storiesFile);
91
- const mergedFixPlan = mergeFixPlanProgress(newFixPlan, completedIds, newTitleMap, completedTitles);
92
- // Detect which stories were preserved via title match (for renumber warning suppression)
93
- const preservedIds = new Set();
94
- for (const [id, title] of newTitleMap) {
95
- if (!completedIds.has(id) && completedTitles.has(normalizeTitle(title))) {
96
- preservedIds.add(id);
97
- }
98
- }
99
- // Detect renumbered stories (Bug #3), skipping auto-preserved ones
100
- const renumberWarnings = detectRenumberedStories(existingItems, stories, preservedIds);
233
+ const planningSpecsSubpath = resolvePlanningSpecsSubpath(projectDir, artifactsDir);
234
+ const newFixPlan = generateFixPlan(stories, undefined, planningSpecsSubpath);
235
+ const mergedFixPlan = mergeFixPlanProgress(newFixPlan, completedIds, useTitleBasedMerge ? newTitleMap : undefined, useTitleBasedMerge ? completedTitles : undefined);
101
236
  await atomicWriteFile(fixPlanPath, mergedFixPlan);
102
237
  generatedFiles.push({
103
238
  path: ".ralph/@fix_plan.md",
104
239
  action: fixPlanExisted ? "updated" : "created",
105
240
  });
106
- // Track whether progress was preserved for return value
107
- const fixPlanPreserved = completedIds.size > 0;
108
- // Generate changelog before overwriting specs/
109
241
  const specsDir = join(projectDir, ".ralph/specs");
110
- const bmadOutputDir = join(projectDir, "_bmad-output");
111
- const bmadOutputExists = await exists(bmadOutputDir);
112
- if (bmadOutputExists) {
113
- try {
114
- const changes = await generateSpecsChangelog(specsDir, bmadOutputDir);
115
- if (changes.length > 0) {
116
- const changelog = formatChangelog(changes, new Date().toISOString());
117
- await atomicWriteFile(join(projectDir, ".ralph/SPECS_CHANGELOG.md"), changelog);
118
- generatedFiles.push({ path: ".ralph/SPECS_CHANGELOG.md", action: "updated" });
119
- debug(`Generated SPECS_CHANGELOG.md with ${changes.length} changes`);
120
- }
121
- }
122
- catch (err) {
123
- warn(`Could not generate SPECS_CHANGELOG.md: ${formatError(err)}`);
242
+ const specsTmpDir = join(projectDir, ".ralph/specs.new");
243
+ info("Preparing specs tree...");
244
+ await prepareSpecsDirectory(projectDir, artifactsDir, collectedArtifacts.files, specsTmpDir);
245
+ try {
246
+ const changes = await generateSpecsChangelog(specsDir, specsTmpDir);
247
+ if (changes.length > 0) {
248
+ const changelog = formatChangelog(changes, new Date().toISOString());
249
+ await atomicWriteFile(join(projectDir, ".ralph/SPECS_CHANGELOG.md"), changelog);
250
+ generatedFiles.push({ path: ".ralph/SPECS_CHANGELOG.md", action: "updated" });
251
+ debug(`Generated SPECS_CHANGELOG.md with ${changes.length} changes`);
124
252
  }
125
253
  }
126
- else {
127
- debug("Skipping SPECS_CHANGELOG.md (no _bmad-output directory)");
128
- }
129
- // Copy entire _bmad-output/ tree to .ralph/specs/ (preserving structure)
130
- if (!bmadOutputExists) {
131
- debug("_bmad-output not found, falling back to artifacts directory");
254
+ catch (err) {
255
+ warn(`Could not generate SPECS_CHANGELOG.md: ${formatError(err)}`);
132
256
  }
133
257
  info("Copying specs to .ralph/specs/...");
134
- const specsTmpDir = join(projectDir, ".ralph/specs.new");
135
- if (bmadOutputExists) {
136
- // Atomic copy: write to temp dir, verify, then swap
137
- await rm(specsTmpDir, { recursive: true, force: true });
138
- await mkdir(specsTmpDir, { recursive: true });
139
- await cp(bmadOutputDir, specsTmpDir, { recursive: true, dereference: false });
140
- // Verify the copy succeeded before swapping
141
- await access(specsTmpDir);
142
- await rm(specsDir, { recursive: true, force: true });
143
- await rename(specsTmpDir, specsDir);
144
- generatedFiles.push({ path: ".ralph/specs/", action: "updated" });
145
- debug("Copied _bmad-output/ to .ralph/specs/ (atomic)");
146
- }
147
- else {
148
- // Fall back to just artifactsDir if _bmad-output root doesn't exist
149
- await rm(specsTmpDir, { recursive: true, force: true });
150
- await mkdir(specsTmpDir, { recursive: true });
151
- for (const file of files) {
152
- await cp(join(artifactsDir, file), join(specsTmpDir, file), {
153
- recursive: true,
154
- dereference: false,
155
- });
156
- }
157
- await access(specsTmpDir);
158
- await rm(specsDir, { recursive: true, force: true });
159
- await rename(specsTmpDir, specsDir);
160
- generatedFiles.push({ path: ".ralph/specs/", action: "updated" });
161
- }
258
+ await swapSpecsDirectory(specsDir, specsTmpDir);
259
+ generatedFiles.push({ path: ".ralph/specs/", action: "updated" });
162
260
  // Generate SPECS_INDEX.md for intelligent spec reading
163
261
  info("Generating SPECS_INDEX.md...");
164
262
  const specsIndexPath = join(projectDir, ".ralph/SPECS_INDEX.md");
@@ -234,37 +332,36 @@ export async function runTransition(projectDir, options) {
234
332
  await atomicWriteFile(join(projectDir, ".ralph/PROMPT.md"), prompt);
235
333
  generatedFiles.push({ path: ".ralph/PROMPT.md", action: promptExisted ? "updated" : "created" });
236
334
  // Customize @AGENT.md based on detected tech stack from architecture
237
- const architectureFile = files.find((f) => /architect/i.test(f));
238
- if (architectureFile) {
239
- const archContent = artifactContents.get(architectureFile);
240
- if (archContent) {
241
- try {
242
- const stack = detectTechStack(archContent);
243
- if (stack) {
244
- const agentPath = join(projectDir, ".ralph/@AGENT.md");
245
- const agentTemplate = await readFile(agentPath, "utf-8");
246
- const customized = customizeAgentMd(agentTemplate, stack);
247
- await atomicWriteFile(agentPath, customized);
248
- generatedFiles.push({ path: ".ralph/@AGENT.md", action: "updated" });
249
- debug("Customized @AGENT.md with detected tech stack");
250
- }
251
- }
252
- catch (err) {
253
- warn(`Could not customize @AGENT.md: ${formatError(err)}`);
335
+ const combinedArchitectureContent = combineArtifactContents(collectedArtifacts.architectureFiles, artifactContents);
336
+ if (combinedArchitectureContent) {
337
+ try {
338
+ const stack = detectTechStack(combinedArchitectureContent);
339
+ if (stack) {
340
+ const agentPath = join(projectDir, ".ralph/@AGENT.md");
341
+ const agentTemplate = await readFile(agentPath, "utf-8");
342
+ const customized = customizeAgentMd(agentTemplate, stack);
343
+ await atomicWriteFile(agentPath, customized);
344
+ generatedFiles.push({ path: ".ralph/@AGENT.md", action: "updated" });
345
+ debug("Customized @AGENT.md with detected tech stack");
254
346
  }
255
347
  }
348
+ catch (err) {
349
+ warn(`Could not customize @AGENT.md: ${formatError(err)}`);
350
+ }
256
351
  }
257
352
  // Collect warnings from all sources
258
- const preflightWarnings = preflightResult.issues
259
- .filter((i) => i.severity === "warning" || (i.severity === "error" && options?.force))
353
+ const preflightWarnings = preflightIssues
354
+ .filter((i) => i.severity === "warning")
260
355
  .map((i) => i.message);
261
- // Keep parse warnings not already covered by preflight (e.g., malformed IDs)
262
- const nonPreflightParseWarnings = parseWarnings.filter((w) => !/has no acceptance criteria/i.test(w) &&
356
+ // Keep parse warnings not already covered by preflight.
357
+ const nonPreflightParseWarnings = parseWarnings.filter((w) => !/malformed story id/i.test(w) &&
358
+ !/has no acceptance criteria/i.test(w) &&
263
359
  !/has no description/i.test(w) &&
264
360
  !/not under an epic/i.test(w));
265
361
  const warnings = [
266
362
  ...preflightWarnings,
267
363
  ...nonPreflightParseWarnings,
364
+ ...completionWarnings,
268
365
  ...orphanWarnings,
269
366
  ...renumberWarnings,
270
367
  ...truncationWarnings,
@@ -284,7 +381,7 @@ export async function runTransition(projectDir, options) {
284
381
  storiesCount: stories.length,
285
382
  warnings,
286
383
  fixPlanPreserved,
287
- preflightIssues: preflightResult.issues,
384
+ preflightIssues,
288
385
  generatedFiles,
289
386
  };
290
387
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/transition/orchestration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/transition/orchestration.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { extractFirstMatchingSection } from "./context.js";
2
- import { PRD_SCOPE_SECTION_PATTERNS } from "./section-patterns.js";
2
+ import { FUNCTIONAL_REQUIREMENTS_SECTION_PATTERNS, NON_FUNCTIONAL_REQUIREMENTS_SECTION_PATTERNS, PRD_SCOPE_SECTION_PATTERNS, PROJECT_GOALS_SECTION_PATTERNS, } from "./section-patterns.js";
3
3
  import { extractTechStackSource } from "./tech-stack.js";
4
+ import { collectTransitionArtifacts, combineArtifactContents } from "./artifact-collection.js";
4
5
  function hasSection(content, patterns) {
5
6
  return extractFirstMatchingSection(content, patterns) !== "";
6
7
  }
@@ -27,12 +28,7 @@ export function validatePrd(content) {
27
28
  ];
28
29
  }
29
30
  const issues = [];
30
- if (!hasSection(content, [
31
- /^##\s+Executive Summary/m,
32
- /^##\s+Vision/m,
33
- /^##\s+Goals/m,
34
- /^##\s+Project Goals/m,
35
- ])) {
31
+ if (!hasSection(content, PROJECT_GOALS_SECTION_PATTERNS)) {
36
32
  issues.push({
37
33
  id: "W3",
38
34
  severity: "warning",
@@ -40,7 +36,7 @@ export function validatePrd(content) {
40
36
  suggestion: "Ralph will lack project context — PROJECT_CONTEXT.md will have empty goals.",
41
37
  });
42
38
  }
43
- if (!hasSection(content, [/^##\s+Functional Requirements/m])) {
39
+ if (!hasSection(content, FUNCTIONAL_REQUIREMENTS_SECTION_PATTERNS)) {
44
40
  issues.push({
45
41
  id: "W4",
46
42
  severity: "warning",
@@ -48,7 +44,7 @@ export function validatePrd(content) {
48
44
  suggestion: "Ralph may miss key requirements during implementation.",
49
45
  });
50
46
  }
51
- if (!hasSection(content, [/^##\s+Non-Functional/m, /^##\s+NFR/m, /^##\s+Quality/m])) {
47
+ if (!hasSection(content, NON_FUNCTIONAL_REQUIREMENTS_SECTION_PATTERNS)) {
52
48
  issues.push({
53
49
  id: "W5",
54
50
  severity: "warning",
@@ -91,7 +87,15 @@ export function validateArchitecture(content) {
91
87
  export function validateStories(stories, parseWarnings) {
92
88
  const issues = [];
93
89
  for (const warning of parseWarnings) {
94
- if (/has no acceptance criteria/i.test(warning)) {
90
+ if (/malformed story id/i.test(warning)) {
91
+ issues.push({
92
+ id: "E2",
93
+ severity: "error",
94
+ message: warning,
95
+ suggestion: "Fix malformed story headers to use the N.M format, or use --force to continue with deterministic fallback ordering.",
96
+ });
97
+ }
98
+ else if (/has no acceptance criteria/i.test(warning)) {
95
99
  issues.push({
96
100
  id: "W8",
97
101
  severity: "warning",
@@ -148,14 +152,23 @@ export function validateReadiness(content) {
148
152
  return [];
149
153
  }
150
154
  export function runPreflight(artifactContents, files, stories, parseWarnings) {
151
- const prdFile = files.find((f) => /prd/i.test(f));
152
- const prdContent = prdFile ? (artifactContents.get(prdFile) ?? null) : null;
153
- const archFile = files.find((f) => /architect/i.test(f));
154
- const archContent = archFile ? (artifactContents.get(archFile) ?? null) : null;
155
- const readinessFile = files.find((f) => /readiness/i.test(f));
156
- const readinessContent = readinessFile ? (artifactContents.get(readinessFile) ?? null) : null;
155
+ const collectedArtifacts = collectTransitionArtifacts(files);
156
+ const prdIssues = collectedArtifacts.prdDocuments.length === 0
157
+ ? validatePrd(null)
158
+ : collectedArtifacts.prdDocuments.flatMap((prdDocument) => validatePrd(combineArtifactContents(prdDocument.files, artifactContents) || null).map((issue) => collectedArtifacts.prdDocuments.length > 1
159
+ ? {
160
+ ...issue,
161
+ message: `${issue.message} (${prdDocument.label})`,
162
+ }
163
+ : issue));
164
+ const archContent = collectedArtifacts.architectureFiles.length > 0
165
+ ? combineArtifactContents(collectedArtifacts.architectureFiles, artifactContents)
166
+ : null;
167
+ const readinessContent = collectedArtifacts.readinessFiles.length > 0
168
+ ? combineArtifactContents(collectedArtifacts.readinessFiles, artifactContents)
169
+ : null;
157
170
  const issues = [
158
- ...validatePrd(prdContent),
171
+ ...prdIssues,
159
172
  ...validateArchitecture(archContent),
160
173
  ...validateStories(stories, parseWarnings),
161
174
  ...validateReadiness(readinessContent),
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/transition/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/transition/preflight.ts"],"names":[],"mappings":"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"}