@llm-dev-ops/agentics-cli 2.7.0 → 2.7.2

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 (64) hide show
  1. package/dist/cli/index.js +30 -0
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/pipeline/auto-chain.d.ts +196 -2
  4. package/dist/pipeline/auto-chain.d.ts.map +1 -1
  5. package/dist/pipeline/auto-chain.js +1920 -884
  6. package/dist/pipeline/auto-chain.js.map +1 -1
  7. package/dist/pipeline/enterprise/agent-error-capture.d.ts +76 -0
  8. package/dist/pipeline/enterprise/agent-error-capture.d.ts.map +1 -0
  9. package/dist/pipeline/enterprise/agent-error-capture.js +141 -0
  10. package/dist/pipeline/enterprise/agent-error-capture.js.map +1 -0
  11. package/dist/pipeline/enterprise/artifact-renderers.d.ts +30 -0
  12. package/dist/pipeline/enterprise/artifact-renderers.d.ts.map +1 -1
  13. package/dist/pipeline/enterprise/artifact-renderers.js +129 -1
  14. package/dist/pipeline/enterprise/artifact-renderers.js.map +1 -1
  15. package/dist/pipeline/enterprise/pass-executor.d.ts.map +1 -1
  16. package/dist/pipeline/enterprise/pass-executor.js +52 -0
  17. package/dist/pipeline/enterprise/pass-executor.js.map +1 -1
  18. package/dist/pipeline/enterprise/pipeline-orchestrator.d.ts.map +1 -1
  19. package/dist/pipeline/enterprise/pipeline-orchestrator.js +15 -0
  20. package/dist/pipeline/enterprise/pipeline-orchestrator.js.map +1 -1
  21. package/dist/pipeline/enterprise/types.d.ts +21 -0
  22. package/dist/pipeline/enterprise/types.d.ts.map +1 -1
  23. package/dist/pipeline/gate/feature-flags.d.ts +30 -0
  24. package/dist/pipeline/gate/feature-flags.d.ts.map +1 -0
  25. package/dist/pipeline/gate/feature-flags.js +37 -0
  26. package/dist/pipeline/gate/feature-flags.js.map +1 -0
  27. package/dist/pipeline/gate/phase-dependency-gate.d.ts +179 -0
  28. package/dist/pipeline/gate/phase-dependency-gate.d.ts.map +1 -0
  29. package/dist/pipeline/gate/phase-dependency-gate.js +571 -0
  30. package/dist/pipeline/gate/phase-dependency-gate.js.map +1 -0
  31. package/dist/pipeline/local-fallback/phase1-consensus-reader.d.ts +33 -0
  32. package/dist/pipeline/local-fallback/phase1-consensus-reader.d.ts.map +1 -0
  33. package/dist/pipeline/local-fallback/phase1-consensus-reader.js +99 -0
  34. package/dist/pipeline/local-fallback/phase1-consensus-reader.js.map +1 -0
  35. package/dist/pipeline/local-fallback/phase3-local-fallback.d.ts +26 -0
  36. package/dist/pipeline/local-fallback/phase3-local-fallback.d.ts.map +1 -0
  37. package/dist/pipeline/local-fallback/phase3-local-fallback.js +127 -0
  38. package/dist/pipeline/local-fallback/phase3-local-fallback.js.map +1 -0
  39. package/dist/pipeline/local-fallback/phase4-local-fallback.d.ts +21 -0
  40. package/dist/pipeline/local-fallback/phase4-local-fallback.d.ts.map +1 -0
  41. package/dist/pipeline/local-fallback/phase4-local-fallback.js +240 -0
  42. package/dist/pipeline/local-fallback/phase4-local-fallback.js.map +1 -0
  43. package/dist/pipeline/local-fallback/phase5a-local-fallback.d.ts +28 -0
  44. package/dist/pipeline/local-fallback/phase5a-local-fallback.d.ts.map +1 -0
  45. package/dist/pipeline/local-fallback/phase5a-local-fallback.js +166 -0
  46. package/dist/pipeline/local-fallback/phase5a-local-fallback.js.map +1 -0
  47. package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.d.ts.map +1 -1
  48. package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.js +280 -40
  49. package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.js.map +1 -1
  50. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.d.ts.map +1 -1
  51. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.js +363 -87
  52. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.js.map +1 -1
  53. package/dist/pipeline/phases/prompt-generator.d.ts.map +1 -1
  54. package/dist/pipeline/phases/prompt-generator.js +303 -6
  55. package/dist/pipeline/phases/prompt-generator.js.map +1 -1
  56. package/dist/pipeline/ruflo-phase-executor.d.ts +104 -1
  57. package/dist/pipeline/ruflo-phase-executor.d.ts.map +1 -1
  58. package/dist/pipeline/ruflo-phase-executor.js +406 -4
  59. package/dist/pipeline/ruflo-phase-executor.js.map +1 -1
  60. package/dist/pipeline/swarm-orchestrator.d.ts +47 -0
  61. package/dist/pipeline/swarm-orchestrator.d.ts.map +1 -1
  62. package/dist/pipeline/swarm-orchestrator.js +130 -3
  63. package/dist/pipeline/swarm-orchestrator.js.map +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"phase4-adrs-coordinator.d.ts","sourceRoot":"","sources":["../../../src/pipeline/phase4-adrs/phase4-adrs-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAkB,MAAM,YAAY,CAAC;AA6H5F;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,uBAAuB,CAAC,CAuXlC"}
1
+ {"version":3,"file":"phase4-adrs-coordinator.d.ts","sourceRoot":"","sources":["../../../src/pipeline/phase4-adrs/phase4-adrs-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAkB,MAAM,YAAY,CAAC;AAwd5F;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,uBAAuB,CAAC,CAmZlC"}
@@ -12,25 +12,72 @@
12
12
  */
13
13
  import * as fs from 'node:fs';
14
14
  import * as path from 'node:path';
15
- import { generateADRs, buildPhase2ADRs } from '../phase2/phases/adr-generator.js';
16
- import { generateDDDModel } from '../phase2/phases/ddd-generator.js';
15
+ import { buildPhase2ADRs } from '../phase2/phases/adr-generator.js';
17
16
  import { createSpan, endSpan, emitSpan, writeSpans } from '../phase2/telemetry.js';
18
17
  import { writePhase4ADRManifest } from './manifest-writer.js';
18
+ import { checkRufloAvailable } from '../ruflo-phase-executor.js';
19
+ // ============================================================================
20
+ // ADR-091: Ruflo-primary engineering artifacts
21
+ // ============================================================================
22
+ /** Minimum byte size for an engineering/ artifact to be considered usable. */
23
+ const MIN_ENGINEERING_BYTES = 256;
24
+ /**
25
+ * Read an artifact from `runDir/engineering/` (produced by Ruflo swarm per
26
+ * ADR-091). Returns null when the file is missing, unreadable, or below the
27
+ * usable-size threshold. Never throws.
28
+ */
29
+ function readEngineeringArtifact(runDir, filename) {
30
+ const filePath = path.join(runDir, 'engineering', filename);
31
+ try {
32
+ if (!fs.existsSync(filePath))
33
+ return null;
34
+ const content = fs.readFileSync(filePath, 'utf-8');
35
+ const size = Buffer.byteLength(content, 'utf-8');
36
+ if (size < MIN_ENGINEERING_BYTES)
37
+ return null;
38
+ return { content, size };
39
+ }
40
+ catch {
41
+ // ENOENT / EACCES / other — treat as "not usable"
42
+ return null;
43
+ }
44
+ }
45
+ /**
46
+ * Attach an executionTier tag to a stage output without changing its type
47
+ * surface. Consumers that know about ADR-091 read `(output as any).executionTier`;
48
+ * consumers that don't see a normal Phase2StageOutput.
49
+ */
50
+ function tagStageOutput(out, tier) {
51
+ out.executionTier = tier;
52
+ return out;
53
+ }
19
54
  const STAGES = [
20
55
  { id: 'prior-phase-loading', label: 'Prior Phase Loading' },
21
56
  { id: 'adr-generation', label: 'ADR Generation' },
22
57
  { id: 'ddd-generation', label: 'DDD Model Generation' },
23
58
  ];
24
- // ============================================================================
25
- // Artifact Loaders
26
- // ============================================================================
27
- /**
28
- * Load Phase 1 artifacts from the run directory root.
29
- * Reads manifest.json, scenario.json, roadmap.json, executive-summary.md,
30
- * risk-assessment.json, and decision-memo.md. Missing files produce empty
31
- * defaults rather than errors.
32
- */
33
- function loadPhase1ArtifactsFromDisk(runDir) {
59
+ /** Phase 1 required inputs for strict-mode enforcement (Rule 3 coordinator surface change). */
60
+ const PHASE1_STRICT_REQUIRED = ['manifest.json', 'executive-summary.md'];
61
+ function loadPhase1ArtifactsFromDisk(runDir, opts = {}) {
62
+ if (opts.strict) {
63
+ const missing = [];
64
+ for (const rel of PHASE1_STRICT_REQUIRED) {
65
+ const abs = path.join(runDir, rel);
66
+ let ok = false;
67
+ try {
68
+ const stat = fs.statSync(abs);
69
+ ok = stat.isFile() && stat.size > 0;
70
+ }
71
+ catch {
72
+ ok = false;
73
+ }
74
+ if (!ok)
75
+ missing.push(rel);
76
+ }
77
+ if (missing.length > 0) {
78
+ return { ok: false, reason: 'missing-phase1-inputs', missing };
79
+ }
80
+ }
34
81
  const readJSON = (name) => {
35
82
  const filePath = path.join(runDir, name);
36
83
  if (!fs.existsSync(filePath))
@@ -52,45 +99,266 @@ function loadPhase1ArtifactsFromDisk(runDir) {
52
99
  decisionMemo: readText('decision-memo.md'),
53
100
  };
54
101
  }
55
- // ============================================================================
56
- // Phase 2 ADR Refinement
57
- // ============================================================================
102
+ /** Type guard: distinguish `Phase1Artifacts` from the strict-mode miss result. */
103
+ function isPhase1LoadMissing(v) {
104
+ return v.ok === false;
105
+ }
106
+ /**
107
+ * Parse Ruflo's `architecture-decisions.md` into structured ADR entries.
108
+ *
109
+ * Splitting strategy: we scan for either `# ADR-<id>` or top-level `## ` headers
110
+ * and treat each hit as the start of a new ADR. Per-ADR sub-sections (Status,
111
+ * Context, Decision, Consequences) are extracted by looking for level-3
112
+ * `### <label>` headers inside each ADR block; missing sub-sections are left
113
+ * empty but the full markdown body is always preserved in `rawMarkdown`.
114
+ *
115
+ * Returns an empty array when no recognizable ADR headers are found so the
116
+ * caller can fall through to the template path.
117
+ */
118
+ function parseRufloArchitectureDecisions(markdown) {
119
+ const adrs = [];
120
+ // Primary split: `# ADR-...` or `## ADR-...` style headers.
121
+ // Secondary split: top-level `## ` headers (each section becomes one ADR).
122
+ const explicitAdrRe = /^#{1,3}\s+ADR[-\s:]?\s*(\S+?)[:\s]+(.+?)$/gm;
123
+ const explicitMatches = [];
124
+ let m;
125
+ while ((m = explicitAdrRe.exec(markdown)) !== null) {
126
+ explicitMatches.push({
127
+ start: m.index,
128
+ headerEnd: m.index + m[0].length,
129
+ id: `ADR-ENG-${String(explicitMatches.length + 1).padStart(3, '0')}`,
130
+ title: (m[2] ?? '').trim(),
131
+ });
132
+ }
133
+ let boundaries;
134
+ if (explicitMatches.length > 0) {
135
+ boundaries = explicitMatches;
136
+ }
137
+ else {
138
+ // Fall back: split on `## ` top-level headers.
139
+ const h2Re = /^##\s+(.+?)$/gm;
140
+ boundaries = [];
141
+ let idx = 1;
142
+ while ((m = h2Re.exec(markdown)) !== null) {
143
+ boundaries.push({
144
+ start: m.index,
145
+ headerEnd: m.index + m[0].length,
146
+ id: `ADR-ENG-${String(idx).padStart(3, '0')}`,
147
+ title: (m[1] ?? `Architecture Decision ${idx}`).trim(),
148
+ });
149
+ idx += 1;
150
+ }
151
+ }
152
+ if (boundaries.length === 0)
153
+ return [];
154
+ const today = new Date().toISOString().slice(0, 10);
155
+ for (let i = 0; i < boundaries.length; i++) {
156
+ const cur = boundaries[i];
157
+ const nextStart = i + 1 < boundaries.length ? boundaries[i + 1].start : markdown.length;
158
+ const rawMarkdown = markdown.slice(cur.headerEnd, nextStart).trim();
159
+ // Extract sub-sections via `### <label>` headers.
160
+ const extractSection = (label) => {
161
+ const re = new RegExp(`^###\\s+${label}\\s*$`, 'im');
162
+ const match = re.exec(rawMarkdown);
163
+ if (!match)
164
+ return '';
165
+ const sectionStart = match.index + match[0].length;
166
+ // Next `###` or end of ADR body
167
+ const nextSection = rawMarkdown.slice(sectionStart).search(/^###\s+/m);
168
+ const sectionEnd = nextSection >= 0 ? sectionStart + nextSection : rawMarkdown.length;
169
+ return rawMarkdown.slice(sectionStart, sectionEnd).trim();
170
+ };
171
+ const statusText = extractSection('Status').toLowerCase();
172
+ const status = statusText.includes('deprecated') ? 'deprecated' :
173
+ statusText.includes('accepted') ? 'accepted' :
174
+ 'proposed';
175
+ adrs.push({
176
+ id: cur.id,
177
+ title: cur.title || `Architecture Decision ${i + 1}`,
178
+ status,
179
+ date: today,
180
+ context: extractSection('Context'),
181
+ decision: extractSection('Decision'),
182
+ consequences: extractSection('Consequences'),
183
+ rawMarkdown,
184
+ });
185
+ }
186
+ return adrs;
187
+ }
188
+ /**
189
+ * Render a parsed Ruflo ADR as a structured markdown file following the
190
+ * canonical Status / Context / Decision / Consequences layout. Ruflo's
191
+ * authored content is preserved verbatim in each section body; empty
192
+ * sections fall back to `rawMarkdown` so no Ruflo prose is ever dropped.
193
+ */
194
+ function renderRefinedAdrMarkdown(adr) {
195
+ const hasStructured = adr.context || adr.decision || adr.consequences;
196
+ const lines = [];
197
+ lines.push(`# ${adr.id}: ${adr.title}`);
198
+ lines.push('');
199
+ lines.push(`**Status:** ${adr.status}`);
200
+ lines.push(`**Date:** ${adr.date}`);
201
+ lines.push(`**Source:** Ruflo local-swarm (ADR-091)`);
202
+ lines.push('');
203
+ if (hasStructured) {
204
+ lines.push('## Context');
205
+ lines.push('');
206
+ lines.push(adr.context || '_No context section in Ruflo output._');
207
+ lines.push('');
208
+ lines.push('## Decision');
209
+ lines.push('');
210
+ lines.push(adr.decision || '_No decision section in Ruflo output._');
211
+ lines.push('');
212
+ lines.push('## Consequences');
213
+ lines.push('');
214
+ lines.push(adr.consequences || '_No consequences section in Ruflo output._');
215
+ lines.push('');
216
+ }
217
+ else {
218
+ // No sub-section headers found — preserve Ruflo's body verbatim.
219
+ lines.push(adr.rawMarkdown);
220
+ lines.push('');
221
+ }
222
+ return lines.join('\n') + '\n';
223
+ }
58
224
  /**
59
- * Load Phase 2's ADRs and Phase 3's refined SPARC, then ask Claude to improve
60
- * the ADRs based on the refined architecture. Falls back to regeneration on
61
- * any failure.
225
+ * ADR-091 primary path for ADRs: read Ruflo's
226
+ * `runDir/engineering/architecture-decisions.md`, parse into structured
227
+ * entries, and write one markdown file per ADR plus an index JSON.
228
+ * Returns null when Ruflo content is unavailable or parses to zero ADRs.
62
229
  */
63
- async function refineADRsFromPhase2(phase2Dir, _phase3Dir, _phase4Dir, phase2Ctx) {
64
- const adrIndexPath = path.join(phase2Dir, 'adrs', 'adr-index.json');
65
- if (!fs.existsSync(adrIndexPath)) {
66
- process.stderr.write('[phase4-adrs] Phase 2 ADR index not found, regenerating from scratch\n');
67
- return generateADRs(phase2Ctx);
230
+ function refineADRsFromRufloEngineering(runDir, phase4Dir) {
231
+ const start = Date.now();
232
+ const rufloOut = readEngineeringArtifact(runDir, 'architecture-decisions.md');
233
+ if (!rufloOut)
234
+ return null;
235
+ const parsed = parseRufloArchitectureDecisions(rufloOut.content);
236
+ if (parsed.length === 0) {
237
+ process.stderr.write('[phase4-adrs] ADR-091: engineering/architecture-decisions.md present but parsed to 0 ADRs; ' +
238
+ 'falling through\n');
239
+ return null;
68
240
  }
69
- // Phase 2 already spent ~5 min generating ADRs via LLM.
70
- // Refinement would burn another ~5 min. Carry Phase 2 ADRs forward
71
- // and copy to Phase 4 output directory so downstream phases find them.
72
- {
73
- process.stderr.write('[phase4-adrs] Using Phase 2 ADRs as-is (refinement skipped to save time)\n');
74
- return generateADRs(phase2Ctx);
241
+ process.stderr.write(`[phase4-adrs] ADR-091: refining Ruflo engineering/architecture-decisions.md ` +
242
+ `(${rufloOut.size} bytes ${parsed.length} ADRs)\n`);
243
+ const adrDir = path.join(phase4Dir, 'adrs');
244
+ fs.mkdirSync(adrDir, { recursive: true });
245
+ const writtenPaths = [];
246
+ // Build Phase2ADRRecord-shaped objects for the index JSON so downstream
247
+ // readers (consensus, exec-summary) see a familiar shape.
248
+ const indexRecords = parsed.map((adr) => ({
249
+ id: adr.id,
250
+ title: adr.title,
251
+ status: adr.status,
252
+ date: adr.date,
253
+ context: adr.context || adr.rawMarkdown.slice(0, 2000),
254
+ decision: adr.decision,
255
+ alternatives: [],
256
+ consequences: [],
257
+ sparcSectionRefs: [],
258
+ researchDossierItemRefs: [],
259
+ }));
260
+ for (const adr of parsed) {
261
+ const filename = `${adr.id}.md`;
262
+ const filePath = path.join(adrDir, filename);
263
+ fs.writeFileSync(filePath, renderRefinedAdrMarkdown(adr), {
264
+ encoding: 'utf-8',
265
+ mode: 0o644,
266
+ });
267
+ writtenPaths.push(filePath);
75
268
  }
269
+ const indexPath = path.join(adrDir, 'adr-index.json');
270
+ fs.writeFileSync(indexPath, JSON.stringify(indexRecords, null, 2) + '\n', {
271
+ encoding: 'utf-8',
272
+ mode: 0o644,
273
+ });
274
+ writtenPaths.push(indexPath);
275
+ return tagStageOutput({
276
+ stage: 'adr-generation',
277
+ status: 'completed',
278
+ data: indexRecords,
279
+ artifacts: writtenPaths,
280
+ timing: Date.now() - start,
281
+ summary: ` ADRs (ruflo-local): ${parsed.length} decisions refined from engineering/architecture-decisions.md`,
282
+ }, 'ruflo-local');
76
283
  }
77
284
  // ============================================================================
78
- // Phase 2 DDD Refinement
285
+ // ADR-091 Primary: Refine Ruflo's engineering/domain-model.md
79
286
  // ============================================================================
80
287
  /**
81
- * Load Phase 2's DDD model and the refined ADRs, then ask Claude to improve
82
- * the domain model. Falls back to regeneration on any failure.
288
+ * Extract bounded-context names from a Ruflo-produced domain model.
289
+ * Scans for level-2 `## ` headers whose text looks like a bounded context
290
+ * (e.g. `## Payments Context`, `## Order Management`). Used to populate a
291
+ * lightweight `bounded-contexts.json` index so consensus/exec-summary readers
292
+ * that expect a structured summary still see one.
293
+ */
294
+ function extractBoundedContextSummaries(markdown) {
295
+ const contexts = [];
296
+ const h2Re = /^##\s+(.+?)$/gm;
297
+ let m;
298
+ const boundaries = [];
299
+ while ((m = h2Re.exec(markdown)) !== null) {
300
+ boundaries.push({
301
+ name: (m[1] ?? '').trim(),
302
+ start: m.index,
303
+ headerEnd: m.index + m[0].length,
304
+ });
305
+ }
306
+ for (let i = 0; i < boundaries.length; i++) {
307
+ const cur = boundaries[i];
308
+ const nextStart = i + 1 < boundaries.length ? boundaries[i + 1].start : markdown.length;
309
+ const body = markdown.slice(cur.headerEnd, nextStart).trim();
310
+ // First non-empty paragraph becomes the description
311
+ const firstParagraph = body.split(/\n\s*\n/)[0]?.trim() ?? '';
312
+ contexts.push({ name: cur.name, description: firstParagraph.slice(0, 500) });
313
+ }
314
+ return contexts;
315
+ }
316
+ /**
317
+ * ADR-091 primary path for DDD: read Ruflo's `runDir/engineering/domain-model.md`
318
+ * and write it to `phase4Dir/ddd/domain-model.md` alongside a best-effort
319
+ * `bounded-contexts.json` index. Returns null when Ruflo content is unavailable.
83
320
  */
84
- async function refineDDDFromPhase2(phase2Dir, _phase4Dir, _refinedADRs, phase2Ctx) {
85
- const dddPath = path.join(phase2Dir, 'ddd', 'domain-model.json');
86
- if (!fs.existsSync(dddPath)) {
87
- process.stderr.write('[phase4-ddd] Phase 2 DDD model not found, regenerating from scratch\n');
88
- return generateDDDModel(phase2Ctx);
321
+ function refineDDDFromRufloEngineering(runDir, phase4Dir) {
322
+ const start = Date.now();
323
+ const rufloOut = readEngineeringArtifact(runDir, 'domain-model.md');
324
+ if (!rufloOut)
325
+ return null;
326
+ process.stderr.write(`[phase4-ddd] ADR-091: refining Ruflo engineering/domain-model.md (${rufloOut.size} bytes)\n`);
327
+ const dddDir = path.join(phase4Dir, 'ddd');
328
+ fs.mkdirSync(dddDir, { recursive: true });
329
+ const writtenPaths = [];
330
+ // Write Ruflo's markdown verbatim into the structured output location.
331
+ const modelMdPath = path.join(dddDir, 'domain-model.md');
332
+ const header = [
333
+ '# Domain-Driven Design Model',
334
+ '',
335
+ `**Source:** Ruflo local-swarm (ADR-091)`,
336
+ '',
337
+ '',
338
+ ].join('\n');
339
+ fs.writeFileSync(modelMdPath, header + rufloOut.content, {
340
+ encoding: 'utf-8',
341
+ mode: 0o644,
342
+ });
343
+ writtenPaths.push(modelMdPath);
344
+ // Write a best-effort structured bounded-context summary.
345
+ const contexts = extractBoundedContextSummaries(rufloOut.content);
346
+ if (contexts.length > 0) {
347
+ const indexPath = path.join(dddDir, 'bounded-contexts.json');
348
+ fs.writeFileSync(indexPath, JSON.stringify({ contexts }, null, 2) + '\n', {
349
+ encoding: 'utf-8',
350
+ mode: 0o644,
351
+ });
352
+ writtenPaths.push(indexPath);
89
353
  }
90
- // Phase 2 already spent ~5 min generating DDD via LLM.
91
- // Carry Phase 2 DDD forward instead of burning another ~5 min.
92
- process.stderr.write('[phase4-ddd] Using Phase 2 DDD as-is (refinement skipped to save time)\n');
93
- return generateDDDModel(phase2Ctx);
354
+ return tagStageOutput({
355
+ stage: 'ddd-generation',
356
+ status: 'completed',
357
+ data: { contexts, rawMarkdown: rufloOut.content },
358
+ artifacts: writtenPaths,
359
+ timing: Date.now() - start,
360
+ summary: ` DDD (ruflo-local): refined ${rufloOut.size}B engineering/domain-model.md (${contexts.length} bounded contexts)`,
361
+ }, 'ruflo-local');
94
362
  }
95
363
  // ============================================================================
96
364
  // Pipeline Executor
@@ -129,7 +397,13 @@ export async function executePhase4ADRPipeline(context) {
129
397
  let phase1Artifacts;
130
398
  try {
131
399
  const runDir = path.dirname(context.phase2Dir);
132
- phase1Artifacts = loadPhase1ArtifactsFromDisk(runDir);
400
+ // ADR-PIPELINE-093: default permissive load keeps legacy callers working.
401
+ // Strict-mode gating happens in auto-chain BEFORE this coordinator runs.
402
+ const loaded = loadPhase1ArtifactsFromDisk(runDir);
403
+ if (isPhase1LoadMissing(loaded)) {
404
+ throw new Error(`Phase 1 required inputs missing: ${loaded.missing.join(', ')}`);
405
+ }
406
+ phase1Artifacts = loaded;
133
407
  // Load research dossier from Phase 2
134
408
  const dossierPath = path.join(context.phase2Dir, 'research-dossier.json');
135
409
  if (!fs.existsSync(dossierPath)) {
@@ -230,29 +504,32 @@ export async function executePhase4ADRPipeline(context) {
230
504
  telemetrySpans: context.telemetrySpans,
231
505
  };
232
506
  // ── Stage 2: ADR Generation ──────────────────────────────────────────────
507
+ // ADR-091: Ruflo local-swarm is the PRIMARY producer of ADR content.
508
+ // Remote / LLM generation paths are removed. The deterministic template
509
+ // path below is retained as the last-resort (checkRufloAvailable() === false).
510
+ // `phase2Ctx` is kept for compatibility; template code reads from it below.
511
+ void phase2Ctx;
233
512
  console.error(` >> [2/${STAGES.length}] ${STAGES[1].label}`);
234
513
  const adrSpan = createSpan('phase4-adrs-pipeline', 'adr-generation', {}, rootSpan.spanId);
235
- let adrOutput;
236
- try {
237
- adrOutput = await refineADRsFromPhase2(context.phase2Dir, context.phase3Dir, context.phase4Dir, phase2Ctx);
238
- }
239
- catch (err) {
240
- const errMsg = err instanceof Error ? err.message : String(err);
241
- process.stderr.write(`[phase4-adrs] LLM refinement failed (${errMsg}), using template fallback\n`);
242
- adrOutput = {
243
- stage: 'adr-generation',
244
- status: 'failed',
245
- data: { error: errMsg },
246
- artifacts: [],
247
- timing: 0,
248
- summary: ` ERROR: ${errMsg}`,
249
- };
250
- }
251
- // Robust fallback: if LLM-based ADR generation failed or produced 0 artifacts,
252
- // generate ADRs directly from the on-disk SPARC + dossier using the template builder.
253
- // This path does NOT require an LLM it works purely from the SPARC structure.
254
- if (adrOutput.status === 'failed' || adrOutput.artifacts.length === 0) {
255
- process.stderr.write('[phase4-adrs] Generating ADRs from SPARC template (no LLM required)\n');
514
+ const phase4RunDir = path.dirname(context.phase2Dir);
515
+ // Primary: refine Ruflo's engineering/architecture-decisions.md
516
+ let adrOutput = refineADRsFromRufloEngineering(phase4RunDir, context.phase4Dir) ?? {
517
+ stage: 'adr-generation',
518
+ status: 'failed',
519
+ data: { error: 'No usable engineering/architecture-decisions.md (Ruflo primary path)' },
520
+ artifacts: [],
521
+ timing: 0,
522
+ summary: '',
523
+ };
524
+ // Last-resort template fallback (ADR-091 §3): fires ONLY when both
525
+ // (a) Ruflo engineering/architecture-decisions.md is missing/empty, AND
526
+ // (b) checkRufloAvailable() reports no local Ruflo swarm capability.
527
+ // Under normal operation (Ruflo available), this branch never executes.
528
+ const adrRufloAvailable = checkRufloAvailable().available;
529
+ if ((adrOutput.status === 'failed' || adrOutput.artifacts.length === 0) &&
530
+ !adrRufloAvailable) {
531
+ process.stderr.write('[phase4-adrs] ADR-091 template fallback: no engineering/architecture-decisions.md ' +
532
+ 'AND ruflo unavailablegenerating ADRs from SPARC template\n');
256
533
  try {
257
534
  const sparcStage = context.stageOutputs.get('sparc-specification');
258
535
  const dossierStage = context.stageOutputs.get('research-dossier');
@@ -286,14 +563,14 @@ export async function executePhase4ADRPipeline(context) {
286
563
  fs.writeFileSync(indexPath, JSON.stringify(adrs, null, 2) + '\n', { encoding: 'utf-8', mode: 0o644 });
287
564
  writtenPaths.push(indexPath);
288
565
  process.stderr.write(`[phase4-adrs] Template fallback produced ${adrs.length} ADRs (${writtenPaths.length} files)\n`);
289
- adrOutput = {
566
+ adrOutput = tagStageOutput({
290
567
  stage: 'adr-generation',
291
568
  status: 'completed',
292
569
  data: adrs,
293
570
  artifacts: writtenPaths,
294
571
  timing: 0,
295
572
  summary: ` ADRs (template): ${adrs.length} decisions (${writtenPaths.length - 1} markdown + 1 JSON index)`,
296
- };
573
+ }, 'template');
297
574
  }
298
575
  }
299
576
  catch (fallbackErr) {
@@ -315,28 +592,27 @@ export async function executePhase4ADRPipeline(context) {
315
592
  return buildFailResult(context, completedStages, pipelineStart);
316
593
  }
317
594
  // ── Stage 3: DDD Model Generation ───────────────────────────────────────
595
+ // ADR-091: Ruflo local-swarm is the PRIMARY producer of DDD content.
596
+ // The template path below remains only for the Ruflo-unavailable branch.
318
597
  console.error(` >> [3/${STAGES.length}] ${STAGES[2].label}`);
319
598
  const dddSpan = createSpan('phase4-adrs-pipeline', 'ddd-generation', {}, rootSpan.spanId);
320
- let dddOutput;
321
- try {
322
- dddOutput = await refineDDDFromPhase2(context.phase2Dir, context.phase4Dir, adrOutput, phase2Ctx);
323
- }
324
- catch (err) {
325
- const errMsg = err instanceof Error ? err.message : String(err);
326
- process.stderr.write(`[phase4-ddd] LLM generation failed (${errMsg}), using template fallback\n`);
327
- dddOutput = {
328
- stage: 'ddd-generation',
329
- status: 'failed',
330
- data: { error: errMsg },
331
- artifacts: [],
332
- timing: 0,
333
- summary: ` ERROR: ${errMsg}`,
334
- };
335
- }
336
- // Robust fallback: if DDD generation failed or produced 0 artifacts,
337
- // generate DDD directly from SPARC + ADRs + dossier using the template builder.
338
- if (dddOutput.status === 'failed' || dddOutput.artifacts.length === 0) {
339
- process.stderr.write('[phase4-ddd] Generating DDD from SPARC template (no LLM required)\n');
599
+ // Primary: refine Ruflo's engineering/domain-model.md
600
+ let dddOutput = refineDDDFromRufloEngineering(phase4RunDir, context.phase4Dir) ?? {
601
+ stage: 'ddd-generation',
602
+ status: 'failed',
603
+ data: { error: 'No usable engineering/domain-model.md (Ruflo primary path)' },
604
+ artifacts: [],
605
+ timing: 0,
606
+ summary: '',
607
+ };
608
+ // Last-resort template fallback (ADR-091 §3): fires ONLY when both
609
+ // (a) Ruflo engineering/domain-model.md is missing/empty, AND
610
+ // (b) checkRufloAvailable() reports no local Ruflo swarm capability.
611
+ const dddRufloAvailable = checkRufloAvailable().available;
612
+ if ((dddOutput.status === 'failed' || dddOutput.artifacts.length === 0) &&
613
+ !dddRufloAvailable) {
614
+ process.stderr.write('[phase4-ddd] ADR-091 template fallback: no engineering/domain-model.md ' +
615
+ 'AND ruflo unavailable generating DDD from SPARC template\n');
340
616
  try {
341
617
  const sparcStage = context.stageOutputs.get('sparc-specification');
342
618
  const dossierStage = context.stageOutputs.get('research-dossier');
@@ -385,14 +661,14 @@ export async function executePhase4ADRPipeline(context) {
385
661
  fs.writeFileSync(mdPath, mdLines.join('\n') + '\n', { encoding: 'utf-8', mode: 0o644 });
386
662
  writtenPaths.push(mdPath);
387
663
  process.stderr.write(`[phase4-ddd] Template fallback produced DDD model (${(dddModel.contexts ?? []).length} contexts, ${writtenPaths.length} files)\n`);
388
- dddOutput = {
664
+ dddOutput = tagStageOutput({
389
665
  stage: 'ddd-generation',
390
666
  status: 'completed',
391
667
  data: dddModel,
392
668
  artifacts: writtenPaths,
393
669
  timing: 0,
394
670
  summary: ` DDD (template): ${(dddModel.contexts ?? []).length} bounded contexts (${writtenPaths.length} files)`,
395
- };
671
+ }, 'template');
396
672
  }
397
673
  }
398
674
  catch (fallbackErr) {
@@ -1 +1 @@
1
- {"version":3,"file":"phase4-adrs-coordinator.js","sourceRoot":"","sources":["../../../src/pipeline/phase4-adrs/phase4-adrs-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phase4-adrs-coordinator.js","sourceRoot":"","sources":["../../../src/pipeline/phase4-adrs/phase4-adrs-coordinator.ts"],"names":[],"mappings":"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"}