olympus-ai 4.5.3 → 4.5.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olympus-ai",
3
- "version": "4.5.3",
3
+ "version": "4.5.4",
4
4
  "description": "Olympus: Multi-agent orchestration for Claude Code. Summon the gods of code.",
5
5
  "author": {
6
6
  "name": "mikev10",
@@ -1 +1 @@
1
- {"version":3,"file":"bolt-planner.d.ts","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/bolt-planner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAGR,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,qBAAqB,GACrB,wBAAwB,GACxB,2BAA2B,CAAC;AAEhC,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBAExB,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAKxD;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,QAAQ,EAAE,GAChB,cAAc,CAwDhB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAwGf;AAaD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,EAAE,EACjB,UAAU,EAAE,oBAAoB,GAC/B,IAAI,CAwBN;AAID,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAwCR;AAWD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,QAAQ,EAAE,CA4DZ;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAAC,CAY1D;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAAC,CAmB1D;AAED,eAAO,MAAM,WAAW;;;;;;;;CAQvB,CAAC"}
1
+ {"version":3,"file":"bolt-planner.d.ts","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/bolt-planner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAGR,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,qBAAqB,GACrB,wBAAwB,GACxB,2BAA2B,CAAC;AAEhC,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBAExB,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAKxD;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,QAAQ,EAAE,GAChB,cAAc,CAwDhB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAyHf;AAaD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,EAAE,EACjB,UAAU,EAAE,oBAAoB,GAC/B,IAAI,CAwBN;AAID,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CA0CR;AAaD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,QAAQ,EAAE,CA8DZ;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAAC,CAY1D;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAAC,CAmB1D;AAED,eAAO,MAAM,WAAW;;;;;;;;CAQvB,CAAC"}
@@ -66,6 +66,8 @@ export async function writeBoltArtifacts(bolts, projectPath, workflowId) {
66
66
  for (const bolt of bolts) {
67
67
  const boltDir = path.join(projectPath, 'aidlc-docs', workflowId, 'construction', 'bolts', bolt.id);
68
68
  await fs.ensureDir(boltDir);
69
+ const reqYaml = JSON.stringify(bolt.requirements ?? []);
70
+ const storiesYaml = JSON.stringify(bolt.stories ?? []);
69
71
  const frontmatter = [
70
72
  '---',
71
73
  `id: ${bolt.id}`,
@@ -75,6 +77,8 @@ export async function writeBoltArtifacts(bolts, projectPath, workflowId) {
75
77
  `depth_target: ${bolt.depth_target}`,
76
78
  `express_mode: ${bolt.express_mode}`,
77
79
  `estimated_effort_hours: ${bolt.estimated_effort_hours}`,
80
+ `requirements: ${reqYaml}`,
81
+ `stories: ${storiesYaml}`,
78
82
  '---',
79
83
  ].join('\n');
80
84
  const acList = bolt.acceptance_criteria.map((c) => `- ${c}`).join('\n');
@@ -84,6 +88,12 @@ export async function writeBoltArtifacts(bolts, projectPath, workflowId) {
84
88
  const depsList = bolt.dependencies.length > 0
85
89
  ? bolt.dependencies.map((d) => `- ${d}`).join('\n')
86
90
  : 'None';
91
+ const reqList = (bolt.requirements ?? []).length > 0
92
+ ? (bolt.requirements ?? []).join(', ')
93
+ : 'None';
94
+ const storiesList = (bolt.stories ?? []).length > 0
95
+ ? (bolt.stories ?? []).join(', ')
96
+ : 'None';
87
97
  const specContent = [
88
98
  frontmatter,
89
99
  '',
@@ -105,6 +115,11 @@ export async function writeBoltArtifacts(bolts, projectPath, workflowId) {
105
115
  '',
106
116
  depsList,
107
117
  '',
118
+ '## Traceability',
119
+ '',
120
+ `- **Requirements**: ${reqList}`,
121
+ `- **Stories**: ${storiesList}`,
122
+ '',
108
123
  ].join('\n');
109
124
  await fs.writeFile(path.join(boltDir, 'spec.md'), specContent, 'utf-8');
110
125
  }
@@ -200,6 +215,8 @@ export function buildDecompositionPrompt(unit, intent, depth) {
200
215
  '- `target_files` (string[]): Relative file paths to modify/create',
201
216
  '- `dependencies` (string[]): IDs of preceding bolts (or empty array)',
202
217
  '- `estimated_effort_hours` (number): Estimated duration in hours',
218
+ '- `requirements` (string[]): requirement IDs from requirements.md that this bolt addresses (e.g. ["FR-1", "FR-3"])',
219
+ '- `stories` (string[]): story IDs from stories.md that this bolt addresses (e.g. ["S-001"])',
203
220
  '',
204
221
  'Return ONLY the JSON array, no other text.',
205
222
  ].join('\n');
@@ -241,6 +258,8 @@ export function parseAgentResponse(response, unit, startIndex, depth) {
241
258
  depth_target: depth,
242
259
  express_mode: expressMode,
243
260
  estimated_effort_hours: raw.estimated_effort_hours || 0,
261
+ requirements: raw.requirements ?? [],
262
+ stories: raw.stories ?? [],
244
263
  };
245
264
  });
246
265
  const existingBoltsTotal = startIndex - 1;
@@ -1 +1 @@
1
- {"version":3,"file":"bolt-planner.js","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/bolt-planner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bolt-planner.js","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/bolt-planner.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,6 @@ export interface ValidationContext {
4
4
  existing_bolts_total: number;
5
5
  }
6
6
  export declare class BoltSpecValidator {
7
- static validate(spec: BoltSpec, context: ValidationContext): void;
7
+ static validate(spec: BoltSpec, context: ValidationContext): string[];
8
8
  }
9
9
  //# sourceMappingURL=bolt-spec-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bolt-spec-validator.d.ts","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/bolt-spec-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,WAAW,iBAAiB;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAMD,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;CAkDlE"}
1
+ {"version":3,"file":"bolt-spec-validator.d.ts","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/bolt-spec-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,WAAW,iBAAiB;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAMD,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE;CA8DtE"}
@@ -25,6 +25,14 @@ export class BoltSpecValidator {
25
25
  if (!Number.isInteger(spec.sequence) || spec.sequence < 1) {
26
26
  throw new BoltValidationError('INVALID_SEQUENCE', 'BoltSpec.sequence must be a positive integer (>= 1).');
27
27
  }
28
+ const warnings = [];
29
+ if (spec.requirements !== undefined && spec.requirements.length === 0) {
30
+ warnings.push('Bolt has no requirement traceability');
31
+ }
32
+ if (spec.stories !== undefined && spec.stories.length === 0) {
33
+ warnings.push('Bolt has no story traceability');
34
+ }
35
+ return warnings;
28
36
  }
29
37
  }
30
38
  //# sourceMappingURL=bolt-spec-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bolt-spec-validator.js","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/bolt-spec-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOxD,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAClD,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,IAAc,EAAE,OAA0B;QACxD,IAAI,OAAO,CAAC,sBAAsB,IAAI,kBAAkB,EAAE,CAAC;YACzD,MAAM,IAAI,mBAAmB,CAC3B,uBAAuB,EACvB,QAAQ,IAAI,CAAC,cAAc,gBAAgB,kBAAkB,sBAAsB,kBAAkB,YAAY,CAClH,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,oBAAoB,IAAI,eAAe,EAAE,CAAC;YACpD,MAAM,IAAI,mBAAmB,CAC3B,oBAAoB,EACpB,+BAA+B,eAAe,gBAAgB,eAAe,oBAAoB,CAClG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,CAC3B,wBAAwB,EACxB,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,mBAAmB,CAC3B,wBAAwB,EACxB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,mBAAmB,CAC3B,mBAAmB,EACnB,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,mBAAmB,CAC3B,wBAAwB,EACxB,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,mBAAmB,CAC3B,kBAAkB,EAClB,sDAAsD,CACvD,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"bolt-spec-validator.js","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/bolt-spec-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOxD,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAClD,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,IAAc,EAAE,OAA0B;QACxD,IAAI,OAAO,CAAC,sBAAsB,IAAI,kBAAkB,EAAE,CAAC;YACzD,MAAM,IAAI,mBAAmB,CAC3B,uBAAuB,EACvB,QAAQ,IAAI,CAAC,cAAc,gBAAgB,kBAAkB,sBAAsB,kBAAkB,YAAY,CAClH,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,oBAAoB,IAAI,eAAe,EAAE,CAAC;YACpD,MAAM,IAAI,mBAAmB,CAC3B,oBAAoB,EACpB,+BAA+B,eAAe,gBAAgB,eAAe,oBAAoB,CAClG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,CAC3B,wBAAwB,EACxB,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,mBAAmB,CAC3B,wBAAwB,EACxB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,mBAAmB,CAC3B,mBAAmB,EACnB,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,mBAAmB,CAC3B,wBAAwB,EACxB,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,mBAAmB,CAC3B,kBAAkB,EAClB,sDAAsD,CACvD,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,QAAQ,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"express-bolt-factory.d.ts","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/express-bolt-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGvG;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAExF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,oBAAoB,GAC/B,QAAQ,CAwCV"}
1
+ {"version":3,"file":"express-bolt-factory.d.ts","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/express-bolt-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGvG;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAExF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,oBAAoB,GAC/B,QAAQ,CA0CV"}
@@ -54,6 +54,8 @@ export function createExpressBolt(unit, intent, checkpoint) {
54
54
  depth_target: 1,
55
55
  express_mode: true,
56
56
  estimated_effort_hours: unit.estimated_effort,
57
+ requirements: [],
58
+ stories: [],
57
59
  };
58
60
  return bolt;
59
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"express-bolt-factory.js","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/express-bolt-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,OAAoB;IAC7E,OAAO,WAAW,IAAI,CAAC,IAAI,OAAO,KAAK,QAAQ,CAAC;AAClD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAsB,EACtB,MAAc,EACd,UAAgC;IAEhC,MAAM,aAAa,GAAG,UAAU,CAAC,kBAAkB;QACjD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,MAAM;QACnD,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAExD,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAW,CAAC;IAC5B,MAAM,kBAAkB,GACtB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAClF,CAAC,CAAC,OAAO,CAAC,mBAAmB;QAC7B,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAE3C,4CAA4C;IAC5C,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,MAAM,IAAI,GAAa;QACrB,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,cAAc,EAAE,IAAI,CAAC,EAAE;QACvB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK;QAC7C,mBAAmB,EAAE,kBAAkB;QACvC,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,IAAI;QAClB,sBAAsB,EAAE,IAAI,CAAC,gBAAgB;KAC9C,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"express-bolt-factory.js","sourceRoot":"","sources":["../../../../src/features/workflow-engine/bolts/express-bolt-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,OAAoB;IAC7E,OAAO,WAAW,IAAI,CAAC,IAAI,OAAO,KAAK,QAAQ,CAAC;AAClD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAsB,EACtB,MAAc,EACd,UAAgC;IAEhC,MAAM,aAAa,GAAG,UAAU,CAAC,kBAAkB;QACjD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,MAAM;QACnD,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAExD,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAW,CAAC;IAC5B,MAAM,kBAAkB,GACtB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAClF,CAAC,CAAC,OAAO,CAAC,mBAAmB;QAC7B,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAE3C,4CAA4C;IAC5C,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,MAAM,IAAI,GAAa;QACrB,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,cAAc,EAAE,IAAI,CAAC,EAAE;QACvB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK;QAC7C,mBAAmB,EAAE,kBAAkB;QACvC,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,IAAI;QAClB,sBAAsB,EAAE,IAAI,CAAC,gBAAgB;QAC7C,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -426,6 +426,10 @@ export interface BoltSpec extends HierarchicalNode {
426
426
  express_mode: boolean;
427
427
  /** Estimated duration in hours. Sourced from bolt spec frontmatter. */
428
428
  estimated_effort_hours: number;
429
+ /** Requirement IDs this bolt satisfies (e.g. ['FR-1', 'FR-3']). */
430
+ requirements?: string[];
431
+ /** Story IDs this bolt satisfies (e.g. ['S-001', 'S-004']). */
432
+ stories?: string[];
429
433
  }
430
434
  /**
431
435
  * Runtime tracking record for a bolt's execution. Stored in
@@ -1 +1 @@
1
- {"version":3,"file":"phase-types.d.ts","sourceRoot":"","sources":["../../../src/features/workflow-engine/phase-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phase-types.d.ts","sourceRoot":"","sources":["../../../src/features/workflow-engine/phase-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"phase-types.js","sourceRoot":"","sources":["../../../src/features/workflow-engine/phase-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA2BH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsD;IAChF,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,cAAc;IACpB,iBAAiB,EAAE,cAAc;IACjC,QAAQ,EAAE,UAAU;CACrB,CAAC;AAkgBF;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,CAA0B;IAEvC,YAAY,IAA6B,EAAE,OAAe;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"phase-types.js","sourceRoot":"","sources":["../../../src/features/workflow-engine/phase-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA2BH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsD;IAChF,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,cAAc;IACpB,iBAAiB,EAAE,cAAc;IACjC,QAAQ,EAAE,UAAU;CACrB,CAAC;AAwgBF;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,CAA0B;IAEvC,YAAY,IAA6B,EAAE,OAAe;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -966,7 +966,7 @@ Do not use placeholder text \u2014 write real documentation.`}function Hv(e,t){l
966
966
  `),r=null,o=[];for(let s of n){let i=s.match(/^##\s+(.+)$/);i?(r&&t.set(r,o.join(`
967
967
  `)),r=i[1].trim(),o=[]):r&&o.push(s)}return r&&t.set(r,o.join(`
968
968
  `)),t}function Cb(e){let t=e.split(`
969
- `),n=0;for(let r of t)r.trim().match(/^[-*+]\s+/)&&n++;return n}function Rb(e,t,n){let r=[],o=null,s=bb(e);if(!s)return r.push(`${t}: Missing frontmatter`),{isValid:!1,blockingIssues:r,parentIntent:o};let i=["id","title","parent_intent","status","estimated_effort"],a=[];for(let y of i)s[y]||a.push(y);if(a.length>0)return r.push(`${t}: Missing frontmatter fields: ${a.join(", ")}`),{isValid:!1,blockingIssues:r,parentIntent:o};if(o=s.parent_intent,!n.has(o)&&!o.startsWith("intent-"))return r.push(`${t}: References non-existent parent intent: ${o}`),{isValid:!1,blockingIssues:r,parentIntent:o};let c=parseInt(s.estimated_effort,10);if(isNaN(c)||!vb.includes(c))return r.push(`${t}: Invalid effort estimate ${s.estimated_effort} (must be 1, 2, 4, 8, or 16)`),{isValid:!1,blockingIssues:r,parentIntent:o};let l=Tb(e),u=Eb(l),d=["Scope & Responsibility","Interface Contracts","Dependencies","Acceptance Criteria"],p=["Goal","Acceptance Criteria","Implementation Notes"],f=d.every(y=>u.has(y)),m=p.every(y=>u.has(y));if(!f&&!m){let y=d.filter(w=>!u.has(w));return r.push(`${t}: Missing sections: ${y.join(", ")}`),{isValid:!1,blockingIssues:r,parentIntent:o}}let g=u.get("Acceptance Criteria");if(g){if(Cb(g)===0)return r.push(`${t}: No acceptance criteria found`),{isValid:!1,blockingIssues:r,parentIntent:o}}else return r.push(`${t}: Acceptance Criteria section is empty`),{isValid:!1,blockingIssues:r,parentIntent:o};return{isValid:!0,blockingIssues:r,parentIntent:o}}async function da(e,t){let n=new Date().toISOString(),r=[],o;try{o=(0,Tn.readdirSync)(e,{withFileTypes:!0})}catch(m){let g=m;return console.error(`[Validation] Failed to read construction directory: ${g.message}`),console.error(`[Validation] Path: ${e}`),{passed:!1,coverage_percentage:0,blocking_issues:[g.code==="ENOENT"?"Units directory not found":g.code==="EACCES"||g.code==="EPERM"?"Permission denied reading units directory":`Failed to read units directory: ${g.message}`],timestamp:n}}let s=o.filter(m=>m.isDirectory()&&m.name!=="design"),i=o.filter(m=>m.isFile()&&m.name.endsWith(".md")&&m.name!=="design.md"),a=new Set,c=[];for(let m of s){let g=m.name,y=(0,ua.join)(e,m.name,"spec.md");(0,Tn.existsSync)(y)&&(a.add(g),c.push({unitId:g,filePath:y}))}for(let m of i){let g=m.name.replace(".md","");a.has(g)||(a.add(g),c.push({unitId:g,filePath:(0,ua.join)(e,m.name)}))}if(c.length===0)return{passed:!1,coverage_percentage:0,blocking_issues:["No unit files found in units directory"],timestamp:n};let l=new Set;try{let m=(0,Tn.readdirSync)(t).filter(g=>g.startsWith("INTENT-")&&g.endsWith(".md"));l=new Set(m.map(g=>g.replace(".md","")))}catch(m){let g=m;return console.error(`[Validation] Failed to read intents directory: ${g.message}`),console.error(`[Validation] Path: ${t}`),{passed:!1,coverage_percentage:0,blocking_issues:[g.code==="ENOENT"?"Intents directory not found":g.code==="EACCES"||g.code==="EPERM"?"Permission denied reading intents directory":`Failed to read intents directory: ${g.message}`],timestamp:n}}let u=new Set,d=0,p=c.length;for(let{unitId:m,filePath:g}of c){let y;try{y=(0,Tn.readFileSync)(g,"utf-8")}catch(_){let h=_;console.error(`[Validation] Failed to read unit file: ${h.message}`),console.error(`[Validation] Path: ${g}`);let v=h.code==="ENOENT"?`Unit file not found: ${m}`:h.code==="EACCES"||h.code==="EPERM"?`Permission denied reading unit file: ${m}`:`Failed to read unit file ${m}: ${h.message}`;r.push(v);continue}let w=Rb(y,m,l);r.push(...w.blockingIssues),w.parentIntent&&l.has(w.parentIntent)&&u.add(w.parentIntent),w.isValid&&d++}for(let m of l)u.has(m)||r.push(`Intent ${m} has no unit children`);let f=Math.round(d/p*100);return{passed:r.length===0&&d===p,coverage_percentage:f,blocking_issues:r,timestamp:n}}Uo();Z();function lf(e,t,n){let o=(n.construction_bolts?Object.keys(n.construction_bolts).length:0)+1,s=oa(e.title,o),i=e,a=Array.isArray(i.acceptance_criteria)&&i.acceptance_criteria.length>0?i.acceptance_criteria:["Implement as described in intent"],c=Array.isArray(i.target_files)?i.target_files:[];return{id:s,type:"bolt",title:e.title,parent_id:e.id,children_ids:[],status:"pending",assigned_agent:null,estimated_effort:e.estimated_effort,parent_unit_id:e.id,sequence:1,scope:t.substring(0,500)||e.title,acceptance_criteria:a,target_files:c,dependencies:[],depth_target:1,express_mode:!0,estimated_effort_hours:e.estimated_effort}}var xb=b(require("path"),1);function Yo(){return{status:"not_started",started_at:null,completed_at:null,failure_count:0,last_error:null,artifact_path:null}}function uf(e,t){t.construction_bolts||(t.construction_bolts={});for(let n of e){let r={bolt_id:n.id,parent_unit_id:n.parent_unit_id,status:"planned",stages:{elaboration:Yo(),code_generation:Yo(),build_and_test:Yo(),review:Yo()},failure_count:0,last_error:null,review_score:null,acknowledged_by:null,acknowledged_at:null};t.construction_bolts[n.id]=r}}le();var Pb=["elaboration","code_generation","build_and_test","review"],Ab={elaboration:"onElaboration",code_generation:"onCodeGeneration",build_and_test:"onBuildAndTest",review:"onReview"},Ib={build_and_test:"built",review:"done"};async function Ob(e,t,n,r){let o=Ab[t];return t==="build_and_test"?e.onBuildAndTest(n,r,n.target_files??[]):e[o](n,r)}async function $b(e,t,n,r,o){let s=t.construction_bolts[e.id];t.active_bolt_id=e.id,s.status="in_progress",await A(n,t);for(let i of Pb){let a=s.stages[i];if(e.express_mode&&i==="elaboration"){a.status="skipped",a.completed_at=new Date().toISOString(),await A(n,t);continue}i==="review"&&(s.status="in_review",await A(n,t)),t.active_bolt_stage=i,a.status="in_progress",a.started_at=new Date().toISOString(),await A(n,t);let c=await Ob(o,i,e,n);if(c.success){a.status="completed",a.completed_at=new Date().toISOString(),c.artifact_path&&(a.artifact_path=c.artifact_path);let l=Ib[i];l&&(s.status=l),await A(n,t)}else{if(a.failure_count+=1,a.last_error=c.error??"Unknown error",s.failure_count+=1,s.last_error=a.last_error,a.failure_count>=2){a.status="failed",s.status="failed",await A(n,t);break}a.status="not_started",await A(n,t);break}}return t.active_bolt_id=null,t.active_bolt_stage=null,await A(n,t),{status:s.status,stages:{...s.stages}}}var df={execute:$b};ga();var LE={unit:"olympian","code-generation":"olympian",design:"olympian"},ys=class{projectPath;workflowId;tree=null;currentStage="unit";totalUnits=0;totalCodeGenerations=0;totalEffort=0;constructor(t,n){this.projectPath=t,this.workflowId=n}async execute(t,n={}){let{depth:r="MEDIUM",max_units:o=10,max_code_gen_per_unit:s=8,max_total_code_gen:i=50,checkpointStatus:a,onCheckpointSave:c}=n;if(a==="awaiting_dev_review")return{passed:!1,coverage_percentage:0,blocking_issues:["Construction blocked: developer review of technical specification required (Risk Tier 3)."],reviewer:"construction-executor",timestamp:new Date().toISOString()};if(console.log(`[ConstructionExecutor] Starting Construction phase execution (depth: ${r})`),(n.pathwayType==="brownfield-enhancement"||n.pathwayType==="brownfield-refactor"||n.pathwayType==="bugfix")&&n.testCommand)try{let{captureBaseline:p}=await Promise.resolve().then(()=>(ya(),ha));await p(this.projectPath,this.workflowId,n.testCommand),console.log("[ConstructionExecutor] Regression baseline captured")}catch(p){console.error("[ConstructionExecutor] Baseline capture failed (non-fatal):",p)}if(r==="SHALLOW")return this.executeShallowViaBolt();this.currentStage="unit";let u=await this.executeDecompositionPhase(o,s,i,r);if(!u.passed)return console.error("[ConstructionExecutor] Decomposition phase failed"),u;if(console.log("[ConstructionExecutor] Decomposition phase complete"),c)try{await c()}catch(p){console.error("[ConstructionExecutor] Checkpoint save callback failed:",p)}this.currentStage="design";let d=await this.executeDesignStage(t);return d.passed?(console.log("[ConstructionExecutor] Design stage complete"),{passed:!0,coverage_percentage:100,blocking_issues:[],reviewer:"construction-executor",timestamp:new Date().toISOString()}):(console.error("[ConstructionExecutor] Design stage failed validation"),d)}getProgress(){let t=0,n=0;if(this.tree)for(let i of this.tree.nodes.values())i.type==="unit"&&(t++,i.status==="complete"&&n++);let r=this.totalCodeGenerations,o=0,s=0;return this.currentStage==="unit"?s=t>0?Math.round(n/t*50):0:this.currentStage==="code-generation"?s=50+(r>0?Math.round(o/r*25):0):this.currentStage==="design"&&(s=100),{current_stage:this.currentStage,units_total:t,units_complete:n,code_gen_total:r,code_gen_complete:o,design_complete:this.currentStage==="design",overall_percentage:s}}getDecompositionSummary(){return{units:this.totalUnits,codeGenerations:this.totalCodeGenerations,totalEffort:this.totalEffort}}async handleZeroBoltUnit(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,s=await I(r,o);return!s||Object.values(s.construction_bolts??{}).filter(a=>a.parent_unit_id===t).length>0?!1:(s.construction_units||(s.construction_units={}),s.construction_units[t]&&(s.construction_units[t].code_generation_status="completed"),zo(r,o,{timestamp:new Date().toISOString(),phase:"construction",action:`Unit ${t} auto-fulfilled (zero bolts)`,actor:"construction-executor",reason:null}),await A(r,s),console.log(`[ConstructionExecutor] Unit ${t} auto-fulfilled: 0 bolts registered`),!0)}async executeCodeGenerationWithPlanApproval(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,{buildCodePlanPath:s,dispatchCodeGeneration:i,buildCodeGenerationPrompt:a}=await Promise.resolve().then(()=>(ds(),us)),c=s(r,o,t),l=await i(r,o,t),u=a(l.context.intentSummary2,l.context.intentSummary,l.context.unitSpec,c,l.context.architectureContext);return{status:"awaiting_code_plan_approval",codePlanPath:c,prompt:u}}async approveCodePlan(t,n){let{buildCodePlanPath:r,dispatchCodeGeneration:o,buildCodeGenerationPrompt:s}=await Promise.resolve().then(()=>(ds(),us)),{addGateAuditEntry:i}=await Promise.resolve().then(()=>(Z(),vn)),a=r(this.projectPath,this.workflowId,t);if(!await Y.default.pathExists(a))throw new Error(`Code plan file not found at ${a}. The agent must create the plan before it can be approved.`);let l=H.default.join(this.projectPath,"aidlc-docs",this.workflowId,"manifest.json");try{i(l,{phase:"construction",action:"approved",actor:"human",reason:n||`Code plan for ${t} approved by developer`})}catch(p){console.error(`[ConstructionExecutor] Failed to record gate audit for ${t}:`,p)}let u=await o(this.projectPath,this.workflowId,t);return{status:"executing_code_plan",prompt:s(u.context.intentSummary2,u.context.intentSummary,u.context.unitSpec,void 0,u.context.architectureContext)}}async autoApproveCodePlan(t,n){let{addGateAuditEntry:r}=await Promise.resolve().then(()=>(Z(),vn)),o=H.default.join(this.projectPath,"aidlc-docs",this.workflowId,"manifest.json"),s=n>=3;try{r(o,{phase:"construction",action:"approved",actor:"trust",reason:s?`Code plan for ${t} auto-approved silently (trust level ${n})`:`Code plan for ${t} auto-approved with notification (trust level ${n})`})}catch(u){console.error(`[ConstructionExecutor] Failed to record gate audit for ${t}:`,u)}s||console.log(`[ConstructionExecutor] Code plan for ${t} auto-approved (trust level ${n})`);let{dispatchCodeGeneration:i,buildCodeGenerationPrompt:a}=await Promise.resolve().then(()=>(ds(),us)),c=await i(this.projectPath,this.workflowId,t);return{status:"executing_code_plan",prompt:a(c.context.intentSummary2,c.context.intentSummary,c.context.unitSpec,void 0,c.context.architectureContext)}}async executeTestGeneration(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,i=await I(r,o)??{schema_version:"3.0.0",workflow_id:o,feature_name:"",current_phase:"construction",current_stage:"code-generation",status:"in_progress",phases:{},manifest_path:"",trust_state_path:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),construction_units:{}};i.construction_units||(i.construction_units={});let a=i.construction_units[t]??{unitId:t,stages:{"functional-design":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"nfr-requirements":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"nfr-design":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"infrastructure-design":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"code-generation":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"test-generation":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null}},code_plan_path:null,code_generation_status:"not_started",tests_total:0,tests_passed:0,tests_failed:0,test_framework:"unknown",test_generation_status:"not_started"};a.stages["test-generation"].status="in_progress",a.test_generation_status="in_progress",i.construction_units[t]=a,await A(r,i);let c=H.default.join(r,"aidlc-docs",o,"construction",t,"testing");await Y.default.ensureDir(c);let l=H.default.join(c,"test-report.md"),u="",d=H.default.join(r,"aidlc-docs",o,"construction",t,"code","code-summary.md");try{await Y.default.pathExists(d)&&(u=await Y.default.readFile(d,"utf-8"))}catch{}let p=await this.detectTestFramework(r),f=new Date().toISOString(),m=this.buildTestReportScaffold(t,p,u,f);await Y.default.writeFile(l,m,"utf-8");let g=0,y=0,w=0,_=0,h=0;n.currentResults&&n.currentResults.length>0&&(g=n.currentResults.length,y=n.currentResults.filter(C=>C.status==="passed").length,w=n.currentResults.filter(C=>C.status==="failed").length);let v=!1,S=0,E=H.default.join(r,"aidlc-docs",o,"construction","regression-baseline.json");if(n.currentResults&&w>0&&await Y.default.pathExists(E))try{let{compareAgainstBaseline:C,writeRegressionReport:$}=await Promise.resolve().then(()=>(ya(),ha)),{categorizeFailure:N,buildRegressionSummary:x}=await Promise.resolve().then(()=>(Sm(),km)),T=await Y.default.readJson(E);v=!0;let M=C(T,n.currentResults),F=[],K=[];for(let $e of M.new_failures){let Dr=T.tests.find(Jt=>Jt.name===$e.name)??null,Ke=N($e.name,Dr,[]);F.push(Ke),K.push({test_name:$e.name,file_path:$e.filePath,category:Ke,rationale:Ke==="legitimate_regression"?"Test was passing in baseline, now fails":Ke==="flaky"?"Test passed on re-run without code changes":Ke==="intentional_change"?"New test not present in baseline":"Test was already failing in baseline"})}let V=x(K.map($e=>({test_name:$e.test_name,file_path:$e.file_path})),F);_=V.regressions_count,h=V.flaky_count,S=V.regressions_count;let hn={workflow_id:o,unit_id:t,baseline_captured_at:T.captured_at,compared_at:new Date().toISOString(),failures:K,total_regressions:F.filter($e=>$e!=="pre_existing_failure").length,legitimate_regressions:V.regressions_count};await $(r,o,t,hn)}catch(C){console.error(`[ConstructionExecutor] Regression analysis failed for ${t} (non-fatal):`,C)}let k="completed",j;if(n.allowFailures!==!0&&(g===0?(k="blocked",j=`No tests detected for unit ${t}. Set allowFailures: true to override.`):v&&S>0?(k="blocked",j=`${S} legitimate regression(s) for unit ${t}. Flaky: ${h} (non-blocking). Fix regressions before proceeding.`):!v&&w>0&&(k="blocked",j=`${w} test(s) failed for unit ${t}. Set allowFailures: true to override.`)),a.stages["test-generation"].status=k==="completed"?"completed":"in_progress",a.stages["test-generation"].artifact_path=l,k==="completed"&&(a.stages["test-generation"].completed_at=f),a.tests_total=g,a.tests_passed=y,a.tests_failed=w,a.test_framework=p,a.test_generation_status=k==="completed"?"completed":"in_progress",a.regressions_count=_,a.flaky_count=h,i.construction_units[t]=a,await A(r,i),k==="completed")try{let{updateArchitectureModel:C}=await Promise.resolve().then(()=>(Jr(),Zo)),$=await this.discoverUnitFiles(r,o,t);$.length>0&&(await C(r,$),a.architecture_model_status="updated",i.construction_units[t]=a,await A(r,i))}catch(C){console.error(`[ConstructionExecutor] Architecture model update failed for ${t} (non-blocking):`,C),a.architecture_model_status="failed",i.construction_units[t]=a;try{await A(r,i)}catch{}}let R;if(k==="completed")try{let{runValidationPipeline:C,shouldSkipValidator:$,updateCheckpointForValidator:N,createQualityValidator:x,createMutationValidator:T,createTraceabilityValidator:M,createContractValidator:F,createCoverageValidator:K}=await Promise.resolve().then(()=>(Gm(),Bm)),V=await this.discoverUnitFiles(r,o,t),hn=this.detectApiSurfaceFiles(V),$e=this.deriveWorkflowDepth(i),Dr={timeoutBudgetMs:3e4,allowFailures:n.allowFailures??!1,workflowDepth:$e,unitId:t,unitFiles:V,apiSurfaceFiles:hn,projectPath:r,workflowId:o},Ke=new Map;Ke.set("quality",x()),$("mutation",Dr).skip||Ke.set("mutation",T()),Ke.set("traceability",M()),$("contract",Dr).skip||Ke.set("contract",F()),Ke.set("coverage",K()),R=await C(Ke,Dr);for(let{validator:Jt,result:Ot}of R.results){let __=Ot.status==="passed"||Ot.status==="warned"?"completed":Ot.status==="skipped"?"skipped":"in_progress",k_=Jt==="coverage"?Ot.coverage_percentage:void 0,S_=Jt==="coverage"?Ot.findings.filter(v_=>v_.category==="uncovered-critical-file").length:void 0;await N(r,o,t,Jt,__,k_,S_)}if(!n.allowFailures){let Jt=R.results.filter(Ot=>Ot.result.status==="failed");Jt.length>0&&(k="blocked",j=`Validation blocked: ${Jt.map(Ot=>Ot.validator).join(", ")}`,a.stages["test-generation"].status="in_progress",a.test_generation_status="in_progress",i.construction_units[t]=a,await A(r,i))}}catch(C){console.error(`[ConstructionExecutor] Validation pipeline failed for ${t} (non-fatal):`,C)}return{status:k,unitId:t,tests_total:g,tests_passed:y,tests_failed:w,test_framework:p,reportPath:l,blockingReason:j,regressions_count:_,flaky_count:h,validationPipeline:R}}async validateBugfixTestRequirement(t,n={}){try{let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,s=await I(r,o);if(!s)return{valid:!1,reason:"checkpoint not found"};if(s.pathway_type!=="bugfix")return{valid:!0};let i=s.construction_units?.[t];return i?i.stages?.["test-generation"]?.status!=="completed"?{valid:!1,reason:"test-generation stage not completed for bugfix unit"}:(i.tests_total??0)===0?{valid:!1,reason:"bugfix unit must have at least one test (tests_total === 0)"}:{valid:!0}:{valid:!1,reason:`no unit progress found for unit ${t}`}}catch(r){let o=r instanceof Error?r.message:String(r);return console.error(`[ConstructionExecutor] validateBugfixTestRequirement error for ${t}:`,r),{valid:!1,reason:`validation error: ${o}`}}}async executeDocumentationGeneration(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,s=await I(r,o),i=s?.depth_score?s.depth_score<=12?"minimal":s.depth_score<=20?"standard":"comprehensive":"standard",a=s?.pathway_type||"brownfield-enhancement",c=await this.discoverUnitFiles(r,o,t),l={unitId:t,workflowId:o,projectPath:r,depth:i,pathway:a,unitFiles:c},u=qp(l),d,p=0,f=[],m;if(u.status==="completed"){try{let g=Vp({projectPath:r,workflowId:o,unitId:t,modifiedFiles:l.unitFiles||[]});d={status:g.impactScan.status,path:g.impactScan.reportPath},p=g.adrCount,g.adrEntries&&(f=g.adrEntries)}catch{}if(u.path&&a!=="bugfix"&&i!=="minimal")try{let g=s?.construction_units?.[t];m=Xi({featureDocPath:u.path,projectPath:r,depth:i,pathway:a,override:g?.recreation_readiness_override,overrideRationale:g?.recreation_readiness_override_rationale??void 0})}catch{}}if(s?.construction_units?.[t]){let g=s.construction_units[t];g.feature_doc_status=u.status==="completed"?"completed":"not_started",g.feature_doc_path=u.path,g.impact_scan_status=d?.status==="completed"?"completed":"not_started",g.impact_scan_report_path=d?.path??null,g.adr_count=p,g.adr_entries=f.length>0?f:void 0,m&&(g.recreation_readiness_score=m.overall_score,g.recreation_readiness_dimensions=m.dimensions??null),u.status==="completed"&&(g.doc_generation_agent=LE["code-generation"],g.doc_generation_prompt=Hp(l)),await A(r,s)}return{featureDoc:u,impactScan:d,adrCount:p,recreationReadiness:m}}async executeUnitCompletion(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,s=await this.executeTestGeneration(t,n);if(s.status==="completed"){try{let i=await this.discoverUnitFiles(r,o,t);i.length>0&&Yp(r,i)}catch(i){console.error(`[ConstructionExecutor] Secrets management failed for ${t} (non-blocking):`,i)}try{let i=await this.discoverUnitFiles(r,o,t),a=await Zp({projectPath:r,workflowId:o,unitId:t,includeGlobs:i.length>0?i:void 0}),c=await I(r,o);if(c?.construction_units?.[t]){let l=c.construction_units[t];l.security_scan_status=a.status==="completed"?"completed":a.status==="failed"?"in_progress":"not_started",l.security_findings_critical=a.findings.filter(u=>u.severity==="critical").length,l.security_findings_warning=a.findings.filter(u=>u.severity==="warning").length,l.security_findings_info=a.findings.filter(u=>u.severity==="info").length,await A(r,c)}}catch(i){console.error(`[ConstructionExecutor] Security scan failed for ${t} (non-blocking):`,i)}if(!n.skipDocumentation){let i=await this.executeDocumentationGeneration(t,{projectPath:r,workflowId:o});return{testGeneration:s,documentation:i}}}return{testGeneration:s}}async executeSmokeTest(t={}){let n=t.projectPath||this.projectPath,r=t.workflowId||this.workflowId,o=await I(n,r);if(!o||!o.construction_units)return{status:"not_run",reportPath:null};let s=o.construction_units,i=Object.keys(s);if(i.length===0)return{status:"not_run",reportPath:null};let a=0,c=0,l=0,u=0,d=0,p=0,f=0,m=0,g=[];for(let E of i){let k=s[E],j=k.tests_total??0,R=k.tests_passed??0,O=k.tests_failed??0,C=j-R-O,$=k.regressions_count??0,N=k.flaky_count??0;j>0&&(f++,O===0&&m++),a+=j,c+=R,l+=O,u+=Math.max(0,C),d+=$,p+=N;let x=j===0?"\u26A0\uFE0F":O===0?"\u2705":"\u274C";g.push(`| ${E} | ${j} | ${R} | ${O} | ${$} | ${N} | ${x} |`)}let y=a===0?"not_run":l===0?"passed":"failed",w=H.default.join(n,"aidlc-docs",r,"construction","build-and-test");await Y.default.ensureDir(w);let _=H.default.join(w,"test-report.md"),h=new Date().toISOString(),v=`# Build-Level Test Report
969
+ `),n=0;for(let r of t)r.trim().match(/^[-*+]\s+/)&&n++;return n}function Rb(e,t,n){let r=[],o=null,s=bb(e);if(!s)return r.push(`${t}: Missing frontmatter`),{isValid:!1,blockingIssues:r,parentIntent:o};let i=["id","title","parent_intent","status","estimated_effort"],a=[];for(let y of i)s[y]||a.push(y);if(a.length>0)return r.push(`${t}: Missing frontmatter fields: ${a.join(", ")}`),{isValid:!1,blockingIssues:r,parentIntent:o};if(o=s.parent_intent,!n.has(o)&&!o.startsWith("intent-"))return r.push(`${t}: References non-existent parent intent: ${o}`),{isValid:!1,blockingIssues:r,parentIntent:o};let c=parseInt(s.estimated_effort,10);if(isNaN(c)||!vb.includes(c))return r.push(`${t}: Invalid effort estimate ${s.estimated_effort} (must be 1, 2, 4, 8, or 16)`),{isValid:!1,blockingIssues:r,parentIntent:o};let l=Tb(e),u=Eb(l),d=["Scope & Responsibility","Interface Contracts","Dependencies","Acceptance Criteria"],p=["Goal","Acceptance Criteria","Implementation Notes"],f=d.every(y=>u.has(y)),m=p.every(y=>u.has(y));if(!f&&!m){let y=d.filter(w=>!u.has(w));return r.push(`${t}: Missing sections: ${y.join(", ")}`),{isValid:!1,blockingIssues:r,parentIntent:o}}let g=u.get("Acceptance Criteria");if(g){if(Cb(g)===0)return r.push(`${t}: No acceptance criteria found`),{isValid:!1,blockingIssues:r,parentIntent:o}}else return r.push(`${t}: Acceptance Criteria section is empty`),{isValid:!1,blockingIssues:r,parentIntent:o};return{isValid:!0,blockingIssues:r,parentIntent:o}}async function da(e,t){let n=new Date().toISOString(),r=[],o;try{o=(0,Tn.readdirSync)(e,{withFileTypes:!0})}catch(m){let g=m;return console.error(`[Validation] Failed to read construction directory: ${g.message}`),console.error(`[Validation] Path: ${e}`),{passed:!1,coverage_percentage:0,blocking_issues:[g.code==="ENOENT"?"Units directory not found":g.code==="EACCES"||g.code==="EPERM"?"Permission denied reading units directory":`Failed to read units directory: ${g.message}`],timestamp:n}}let s=o.filter(m=>m.isDirectory()&&m.name!=="design"),i=o.filter(m=>m.isFile()&&m.name.endsWith(".md")&&m.name!=="design.md"),a=new Set,c=[];for(let m of s){let g=m.name,y=(0,ua.join)(e,m.name,"spec.md");(0,Tn.existsSync)(y)&&(a.add(g),c.push({unitId:g,filePath:y}))}for(let m of i){let g=m.name.replace(".md","");a.has(g)||(a.add(g),c.push({unitId:g,filePath:(0,ua.join)(e,m.name)}))}if(c.length===0)return{passed:!1,coverage_percentage:0,blocking_issues:["No unit files found in units directory"],timestamp:n};let l=new Set;try{let m=(0,Tn.readdirSync)(t).filter(g=>g.startsWith("INTENT-")&&g.endsWith(".md"));l=new Set(m.map(g=>g.replace(".md","")))}catch(m){let g=m;return console.error(`[Validation] Failed to read intents directory: ${g.message}`),console.error(`[Validation] Path: ${t}`),{passed:!1,coverage_percentage:0,blocking_issues:[g.code==="ENOENT"?"Intents directory not found":g.code==="EACCES"||g.code==="EPERM"?"Permission denied reading intents directory":`Failed to read intents directory: ${g.message}`],timestamp:n}}let u=new Set,d=0,p=c.length;for(let{unitId:m,filePath:g}of c){let y;try{y=(0,Tn.readFileSync)(g,"utf-8")}catch(_){let h=_;console.error(`[Validation] Failed to read unit file: ${h.message}`),console.error(`[Validation] Path: ${g}`);let v=h.code==="ENOENT"?`Unit file not found: ${m}`:h.code==="EACCES"||h.code==="EPERM"?`Permission denied reading unit file: ${m}`:`Failed to read unit file ${m}: ${h.message}`;r.push(v);continue}let w=Rb(y,m,l);r.push(...w.blockingIssues),w.parentIntent&&l.has(w.parentIntent)&&u.add(w.parentIntent),w.isValid&&d++}for(let m of l)u.has(m)||r.push(`Intent ${m} has no unit children`);let f=Math.round(d/p*100);return{passed:r.length===0&&d===p,coverage_percentage:f,blocking_issues:r,timestamp:n}}Uo();Z();function lf(e,t,n){let o=(n.construction_bolts?Object.keys(n.construction_bolts).length:0)+1,s=oa(e.title,o),i=e,a=Array.isArray(i.acceptance_criteria)&&i.acceptance_criteria.length>0?i.acceptance_criteria:["Implement as described in intent"],c=Array.isArray(i.target_files)?i.target_files:[];return{id:s,type:"bolt",title:e.title,parent_id:e.id,children_ids:[],status:"pending",assigned_agent:null,estimated_effort:e.estimated_effort,parent_unit_id:e.id,sequence:1,scope:t.substring(0,500)||e.title,acceptance_criteria:a,target_files:c,dependencies:[],depth_target:1,express_mode:!0,estimated_effort_hours:e.estimated_effort,requirements:[],stories:[]}}var xb=b(require("path"),1);function Yo(){return{status:"not_started",started_at:null,completed_at:null,failure_count:0,last_error:null,artifact_path:null}}function uf(e,t){t.construction_bolts||(t.construction_bolts={});for(let n of e){let r={bolt_id:n.id,parent_unit_id:n.parent_unit_id,status:"planned",stages:{elaboration:Yo(),code_generation:Yo(),build_and_test:Yo(),review:Yo()},failure_count:0,last_error:null,review_score:null,acknowledged_by:null,acknowledged_at:null};t.construction_bolts[n.id]=r}}le();var Pb=["elaboration","code_generation","build_and_test","review"],Ab={elaboration:"onElaboration",code_generation:"onCodeGeneration",build_and_test:"onBuildAndTest",review:"onReview"},Ib={build_and_test:"built",review:"done"};async function Ob(e,t,n,r){let o=Ab[t];return t==="build_and_test"?e.onBuildAndTest(n,r,n.target_files??[]):e[o](n,r)}async function $b(e,t,n,r,o){let s=t.construction_bolts[e.id];t.active_bolt_id=e.id,s.status="in_progress",await A(n,t);for(let i of Pb){let a=s.stages[i];if(e.express_mode&&i==="elaboration"){a.status="skipped",a.completed_at=new Date().toISOString(),await A(n,t);continue}i==="review"&&(s.status="in_review",await A(n,t)),t.active_bolt_stage=i,a.status="in_progress",a.started_at=new Date().toISOString(),await A(n,t);let c=await Ob(o,i,e,n);if(c.success){a.status="completed",a.completed_at=new Date().toISOString(),c.artifact_path&&(a.artifact_path=c.artifact_path);let l=Ib[i];l&&(s.status=l),await A(n,t)}else{if(a.failure_count+=1,a.last_error=c.error??"Unknown error",s.failure_count+=1,s.last_error=a.last_error,a.failure_count>=2){a.status="failed",s.status="failed",await A(n,t);break}a.status="not_started",await A(n,t);break}}return t.active_bolt_id=null,t.active_bolt_stage=null,await A(n,t),{status:s.status,stages:{...s.stages}}}var df={execute:$b};ga();var LE={unit:"olympian","code-generation":"olympian",design:"olympian"},ys=class{projectPath;workflowId;tree=null;currentStage="unit";totalUnits=0;totalCodeGenerations=0;totalEffort=0;constructor(t,n){this.projectPath=t,this.workflowId=n}async execute(t,n={}){let{depth:r="MEDIUM",max_units:o=10,max_code_gen_per_unit:s=8,max_total_code_gen:i=50,checkpointStatus:a,onCheckpointSave:c}=n;if(a==="awaiting_dev_review")return{passed:!1,coverage_percentage:0,blocking_issues:["Construction blocked: developer review of technical specification required (Risk Tier 3)."],reviewer:"construction-executor",timestamp:new Date().toISOString()};if(console.log(`[ConstructionExecutor] Starting Construction phase execution (depth: ${r})`),(n.pathwayType==="brownfield-enhancement"||n.pathwayType==="brownfield-refactor"||n.pathwayType==="bugfix")&&n.testCommand)try{let{captureBaseline:p}=await Promise.resolve().then(()=>(ya(),ha));await p(this.projectPath,this.workflowId,n.testCommand),console.log("[ConstructionExecutor] Regression baseline captured")}catch(p){console.error("[ConstructionExecutor] Baseline capture failed (non-fatal):",p)}if(r==="SHALLOW")return this.executeShallowViaBolt();this.currentStage="unit";let u=await this.executeDecompositionPhase(o,s,i,r);if(!u.passed)return console.error("[ConstructionExecutor] Decomposition phase failed"),u;if(console.log("[ConstructionExecutor] Decomposition phase complete"),c)try{await c()}catch(p){console.error("[ConstructionExecutor] Checkpoint save callback failed:",p)}this.currentStage="design";let d=await this.executeDesignStage(t);return d.passed?(console.log("[ConstructionExecutor] Design stage complete"),{passed:!0,coverage_percentage:100,blocking_issues:[],reviewer:"construction-executor",timestamp:new Date().toISOString()}):(console.error("[ConstructionExecutor] Design stage failed validation"),d)}getProgress(){let t=0,n=0;if(this.tree)for(let i of this.tree.nodes.values())i.type==="unit"&&(t++,i.status==="complete"&&n++);let r=this.totalCodeGenerations,o=0,s=0;return this.currentStage==="unit"?s=t>0?Math.round(n/t*50):0:this.currentStage==="code-generation"?s=50+(r>0?Math.round(o/r*25):0):this.currentStage==="design"&&(s=100),{current_stage:this.currentStage,units_total:t,units_complete:n,code_gen_total:r,code_gen_complete:o,design_complete:this.currentStage==="design",overall_percentage:s}}getDecompositionSummary(){return{units:this.totalUnits,codeGenerations:this.totalCodeGenerations,totalEffort:this.totalEffort}}async handleZeroBoltUnit(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,s=await I(r,o);return!s||Object.values(s.construction_bolts??{}).filter(a=>a.parent_unit_id===t).length>0?!1:(s.construction_units||(s.construction_units={}),s.construction_units[t]&&(s.construction_units[t].code_generation_status="completed"),zo(r,o,{timestamp:new Date().toISOString(),phase:"construction",action:`Unit ${t} auto-fulfilled (zero bolts)`,actor:"construction-executor",reason:null}),await A(r,s),console.log(`[ConstructionExecutor] Unit ${t} auto-fulfilled: 0 bolts registered`),!0)}async executeCodeGenerationWithPlanApproval(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,{buildCodePlanPath:s,dispatchCodeGeneration:i,buildCodeGenerationPrompt:a}=await Promise.resolve().then(()=>(ds(),us)),c=s(r,o,t),l=await i(r,o,t),u=a(l.context.intentSummary2,l.context.intentSummary,l.context.unitSpec,c,l.context.architectureContext);return{status:"awaiting_code_plan_approval",codePlanPath:c,prompt:u}}async approveCodePlan(t,n){let{buildCodePlanPath:r,dispatchCodeGeneration:o,buildCodeGenerationPrompt:s}=await Promise.resolve().then(()=>(ds(),us)),{addGateAuditEntry:i}=await Promise.resolve().then(()=>(Z(),vn)),a=r(this.projectPath,this.workflowId,t);if(!await Y.default.pathExists(a))throw new Error(`Code plan file not found at ${a}. The agent must create the plan before it can be approved.`);let l=H.default.join(this.projectPath,"aidlc-docs",this.workflowId,"manifest.json");try{i(l,{phase:"construction",action:"approved",actor:"human",reason:n||`Code plan for ${t} approved by developer`})}catch(p){console.error(`[ConstructionExecutor] Failed to record gate audit for ${t}:`,p)}let u=await o(this.projectPath,this.workflowId,t);return{status:"executing_code_plan",prompt:s(u.context.intentSummary2,u.context.intentSummary,u.context.unitSpec,void 0,u.context.architectureContext)}}async autoApproveCodePlan(t,n){let{addGateAuditEntry:r}=await Promise.resolve().then(()=>(Z(),vn)),o=H.default.join(this.projectPath,"aidlc-docs",this.workflowId,"manifest.json"),s=n>=3;try{r(o,{phase:"construction",action:"approved",actor:"trust",reason:s?`Code plan for ${t} auto-approved silently (trust level ${n})`:`Code plan for ${t} auto-approved with notification (trust level ${n})`})}catch(u){console.error(`[ConstructionExecutor] Failed to record gate audit for ${t}:`,u)}s||console.log(`[ConstructionExecutor] Code plan for ${t} auto-approved (trust level ${n})`);let{dispatchCodeGeneration:i,buildCodeGenerationPrompt:a}=await Promise.resolve().then(()=>(ds(),us)),c=await i(this.projectPath,this.workflowId,t);return{status:"executing_code_plan",prompt:a(c.context.intentSummary2,c.context.intentSummary,c.context.unitSpec,void 0,c.context.architectureContext)}}async executeTestGeneration(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,i=await I(r,o)??{schema_version:"3.0.0",workflow_id:o,feature_name:"",current_phase:"construction",current_stage:"code-generation",status:"in_progress",phases:{},manifest_path:"",trust_state_path:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),construction_units:{}};i.construction_units||(i.construction_units={});let a=i.construction_units[t]??{unitId:t,stages:{"functional-design":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"nfr-requirements":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"nfr-design":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"infrastructure-design":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"code-generation":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null},"test-generation":{status:"not_started",artifact_path:null,completed_at:null,failure_count:0,last_error:null}},code_plan_path:null,code_generation_status:"not_started",tests_total:0,tests_passed:0,tests_failed:0,test_framework:"unknown",test_generation_status:"not_started"};a.stages["test-generation"].status="in_progress",a.test_generation_status="in_progress",i.construction_units[t]=a,await A(r,i);let c=H.default.join(r,"aidlc-docs",o,"construction",t,"testing");await Y.default.ensureDir(c);let l=H.default.join(c,"test-report.md"),u="",d=H.default.join(r,"aidlc-docs",o,"construction",t,"code","code-summary.md");try{await Y.default.pathExists(d)&&(u=await Y.default.readFile(d,"utf-8"))}catch{}let p=await this.detectTestFramework(r),f=new Date().toISOString(),m=this.buildTestReportScaffold(t,p,u,f);await Y.default.writeFile(l,m,"utf-8");let g=0,y=0,w=0,_=0,h=0;n.currentResults&&n.currentResults.length>0&&(g=n.currentResults.length,y=n.currentResults.filter(C=>C.status==="passed").length,w=n.currentResults.filter(C=>C.status==="failed").length);let v=!1,S=0,E=H.default.join(r,"aidlc-docs",o,"construction","regression-baseline.json");if(n.currentResults&&w>0&&await Y.default.pathExists(E))try{let{compareAgainstBaseline:C,writeRegressionReport:$}=await Promise.resolve().then(()=>(ya(),ha)),{categorizeFailure:N,buildRegressionSummary:x}=await Promise.resolve().then(()=>(Sm(),km)),T=await Y.default.readJson(E);v=!0;let M=C(T,n.currentResults),F=[],K=[];for(let $e of M.new_failures){let Dr=T.tests.find(Jt=>Jt.name===$e.name)??null,Ke=N($e.name,Dr,[]);F.push(Ke),K.push({test_name:$e.name,file_path:$e.filePath,category:Ke,rationale:Ke==="legitimate_regression"?"Test was passing in baseline, now fails":Ke==="flaky"?"Test passed on re-run without code changes":Ke==="intentional_change"?"New test not present in baseline":"Test was already failing in baseline"})}let V=x(K.map($e=>({test_name:$e.test_name,file_path:$e.file_path})),F);_=V.regressions_count,h=V.flaky_count,S=V.regressions_count;let hn={workflow_id:o,unit_id:t,baseline_captured_at:T.captured_at,compared_at:new Date().toISOString(),failures:K,total_regressions:F.filter($e=>$e!=="pre_existing_failure").length,legitimate_regressions:V.regressions_count};await $(r,o,t,hn)}catch(C){console.error(`[ConstructionExecutor] Regression analysis failed for ${t} (non-fatal):`,C)}let k="completed",j;if(n.allowFailures!==!0&&(g===0?(k="blocked",j=`No tests detected for unit ${t}. Set allowFailures: true to override.`):v&&S>0?(k="blocked",j=`${S} legitimate regression(s) for unit ${t}. Flaky: ${h} (non-blocking). Fix regressions before proceeding.`):!v&&w>0&&(k="blocked",j=`${w} test(s) failed for unit ${t}. Set allowFailures: true to override.`)),a.stages["test-generation"].status=k==="completed"?"completed":"in_progress",a.stages["test-generation"].artifact_path=l,k==="completed"&&(a.stages["test-generation"].completed_at=f),a.tests_total=g,a.tests_passed=y,a.tests_failed=w,a.test_framework=p,a.test_generation_status=k==="completed"?"completed":"in_progress",a.regressions_count=_,a.flaky_count=h,i.construction_units[t]=a,await A(r,i),k==="completed")try{let{updateArchitectureModel:C}=await Promise.resolve().then(()=>(Jr(),Zo)),$=await this.discoverUnitFiles(r,o,t);$.length>0&&(await C(r,$),a.architecture_model_status="updated",i.construction_units[t]=a,await A(r,i))}catch(C){console.error(`[ConstructionExecutor] Architecture model update failed for ${t} (non-blocking):`,C),a.architecture_model_status="failed",i.construction_units[t]=a;try{await A(r,i)}catch{}}let R;if(k==="completed")try{let{runValidationPipeline:C,shouldSkipValidator:$,updateCheckpointForValidator:N,createQualityValidator:x,createMutationValidator:T,createTraceabilityValidator:M,createContractValidator:F,createCoverageValidator:K}=await Promise.resolve().then(()=>(Gm(),Bm)),V=await this.discoverUnitFiles(r,o,t),hn=this.detectApiSurfaceFiles(V),$e=this.deriveWorkflowDepth(i),Dr={timeoutBudgetMs:3e4,allowFailures:n.allowFailures??!1,workflowDepth:$e,unitId:t,unitFiles:V,apiSurfaceFiles:hn,projectPath:r,workflowId:o},Ke=new Map;Ke.set("quality",x()),$("mutation",Dr).skip||Ke.set("mutation",T()),Ke.set("traceability",M()),$("contract",Dr).skip||Ke.set("contract",F()),Ke.set("coverage",K()),R=await C(Ke,Dr);for(let{validator:Jt,result:Ot}of R.results){let __=Ot.status==="passed"||Ot.status==="warned"?"completed":Ot.status==="skipped"?"skipped":"in_progress",k_=Jt==="coverage"?Ot.coverage_percentage:void 0,S_=Jt==="coverage"?Ot.findings.filter(v_=>v_.category==="uncovered-critical-file").length:void 0;await N(r,o,t,Jt,__,k_,S_)}if(!n.allowFailures){let Jt=R.results.filter(Ot=>Ot.result.status==="failed");Jt.length>0&&(k="blocked",j=`Validation blocked: ${Jt.map(Ot=>Ot.validator).join(", ")}`,a.stages["test-generation"].status="in_progress",a.test_generation_status="in_progress",i.construction_units[t]=a,await A(r,i))}}catch(C){console.error(`[ConstructionExecutor] Validation pipeline failed for ${t} (non-fatal):`,C)}return{status:k,unitId:t,tests_total:g,tests_passed:y,tests_failed:w,test_framework:p,reportPath:l,blockingReason:j,regressions_count:_,flaky_count:h,validationPipeline:R}}async validateBugfixTestRequirement(t,n={}){try{let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,s=await I(r,o);if(!s)return{valid:!1,reason:"checkpoint not found"};if(s.pathway_type!=="bugfix")return{valid:!0};let i=s.construction_units?.[t];return i?i.stages?.["test-generation"]?.status!=="completed"?{valid:!1,reason:"test-generation stage not completed for bugfix unit"}:(i.tests_total??0)===0?{valid:!1,reason:"bugfix unit must have at least one test (tests_total === 0)"}:{valid:!0}:{valid:!1,reason:`no unit progress found for unit ${t}`}}catch(r){let o=r instanceof Error?r.message:String(r);return console.error(`[ConstructionExecutor] validateBugfixTestRequirement error for ${t}:`,r),{valid:!1,reason:`validation error: ${o}`}}}async executeDocumentationGeneration(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,s=await I(r,o),i=s?.depth_score?s.depth_score<=12?"minimal":s.depth_score<=20?"standard":"comprehensive":"standard",a=s?.pathway_type||"brownfield-enhancement",c=await this.discoverUnitFiles(r,o,t),l={unitId:t,workflowId:o,projectPath:r,depth:i,pathway:a,unitFiles:c},u=qp(l),d,p=0,f=[],m;if(u.status==="completed"){try{let g=Vp({projectPath:r,workflowId:o,unitId:t,modifiedFiles:l.unitFiles||[]});d={status:g.impactScan.status,path:g.impactScan.reportPath},p=g.adrCount,g.adrEntries&&(f=g.adrEntries)}catch{}if(u.path&&a!=="bugfix"&&i!=="minimal")try{let g=s?.construction_units?.[t];m=Xi({featureDocPath:u.path,projectPath:r,depth:i,pathway:a,override:g?.recreation_readiness_override,overrideRationale:g?.recreation_readiness_override_rationale??void 0})}catch{}}if(s?.construction_units?.[t]){let g=s.construction_units[t];g.feature_doc_status=u.status==="completed"?"completed":"not_started",g.feature_doc_path=u.path,g.impact_scan_status=d?.status==="completed"?"completed":"not_started",g.impact_scan_report_path=d?.path??null,g.adr_count=p,g.adr_entries=f.length>0?f:void 0,m&&(g.recreation_readiness_score=m.overall_score,g.recreation_readiness_dimensions=m.dimensions??null),u.status==="completed"&&(g.doc_generation_agent=LE["code-generation"],g.doc_generation_prompt=Hp(l)),await A(r,s)}return{featureDoc:u,impactScan:d,adrCount:p,recreationReadiness:m}}async executeUnitCompletion(t,n={}){let r=n.projectPath||this.projectPath,o=n.workflowId||this.workflowId,s=await this.executeTestGeneration(t,n);if(s.status==="completed"){try{let i=await this.discoverUnitFiles(r,o,t);i.length>0&&Yp(r,i)}catch(i){console.error(`[ConstructionExecutor] Secrets management failed for ${t} (non-blocking):`,i)}try{let i=await this.discoverUnitFiles(r,o,t),a=await Zp({projectPath:r,workflowId:o,unitId:t,includeGlobs:i.length>0?i:void 0}),c=await I(r,o);if(c?.construction_units?.[t]){let l=c.construction_units[t];l.security_scan_status=a.status==="completed"?"completed":a.status==="failed"?"in_progress":"not_started",l.security_findings_critical=a.findings.filter(u=>u.severity==="critical").length,l.security_findings_warning=a.findings.filter(u=>u.severity==="warning").length,l.security_findings_info=a.findings.filter(u=>u.severity==="info").length,await A(r,c)}}catch(i){console.error(`[ConstructionExecutor] Security scan failed for ${t} (non-blocking):`,i)}if(!n.skipDocumentation){let i=await this.executeDocumentationGeneration(t,{projectPath:r,workflowId:o});return{testGeneration:s,documentation:i}}}return{testGeneration:s}}async executeSmokeTest(t={}){let n=t.projectPath||this.projectPath,r=t.workflowId||this.workflowId,o=await I(n,r);if(!o||!o.construction_units)return{status:"not_run",reportPath:null};let s=o.construction_units,i=Object.keys(s);if(i.length===0)return{status:"not_run",reportPath:null};let a=0,c=0,l=0,u=0,d=0,p=0,f=0,m=0,g=[];for(let E of i){let k=s[E],j=k.tests_total??0,R=k.tests_passed??0,O=k.tests_failed??0,C=j-R-O,$=k.regressions_count??0,N=k.flaky_count??0;j>0&&(f++,O===0&&m++),a+=j,c+=R,l+=O,u+=Math.max(0,C),d+=$,p+=N;let x=j===0?"\u26A0\uFE0F":O===0?"\u2705":"\u274C";g.push(`| ${E} | ${j} | ${R} | ${O} | ${$} | ${N} | ${x} |`)}let y=a===0?"not_run":l===0?"passed":"failed",w=H.default.join(n,"aidlc-docs",r,"construction","build-and-test");await Y.default.ensureDir(w);let _=H.default.join(w,"test-report.md"),h=new Date().toISOString(),v=`# Build-Level Test Report
970
970
 
971
971
  **Workflow ID**: ${r}
972
972
  **Generated At**: ${h}
@@ -24,7 +24,7 @@ export declare const HOOKS_DIR: string;
24
24
  export declare const SETTINGS_FILE: string;
25
25
  export declare const VERSION_FILE: string;
26
26
  /** Current version - MUST match package.json */
27
- export declare const VERSION = "4.5.3";
27
+ export declare const VERSION = "4.5.4";
28
28
  /** Installation result */
29
29
  export interface InstallResult {
30
30
  success: boolean;
@@ -40,7 +40,7 @@ export const HOOKS_DIR = join(CLAUDE_CONFIG_DIR, 'hooks');
40
40
  export const SETTINGS_FILE = join(CLAUDE_CONFIG_DIR, 'settings.json');
41
41
  export const VERSION_FILE = join(CLAUDE_CONFIG_DIR, '.olympus-version.json');
42
42
  /** Current version - MUST match package.json */
43
- export const VERSION = '4.5.3';
43
+ export const VERSION = '4.5.4';
44
44
  /**
45
45
  * Read a content file from the resources/ directory.
46
46
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olympus-ai",
3
- "version": "4.5.3",
3
+ "version": "4.5.4",
4
4
  "description": "Olympus: Multi-agent orchestration for Claude Code. Summon the gods of code.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -25,6 +25,8 @@ sequence: 1
25
25
  depth_target: 6
26
26
  express_mode: false
27
27
  estimated_effort_hours: 4
28
+ requirements: ["FR-1", "FR-3"]
29
+ stories: ["S-001"]
28
30
  ---
29
31
  ```
30
32
 
@@ -37,10 +39,12 @@ estimated_effort_hours: 4
37
39
  | `depth_target` | Reasoning depth (1-10). Express mode threshold: <= 4 |
38
40
  | `express_mode` | `true` if eligible for express execution (skips elaboration) |
39
41
  | `estimated_effort_hours` | Rough hours estimate for human review |
42
+ | `requirements` | Requirement IDs from `requirements.md` that this bolt satisfies (e.g., `["FR-1", "FR-3"]`) |
43
+ | `stories` | Story IDs from `stories.md` that this bolt addresses (e.g., `["S-001"]`). Optional but recommended. |
40
44
 
41
45
  ### Required Sections
42
46
 
43
- Every bolt spec must contain all four sections:
47
+ Every bolt spec must contain all five sections:
44
48
 
45
49
  **Scope** — What this bolt implements. A focused description of the functionality delivered by this bolt alone.
46
50
 
@@ -50,6 +54,10 @@ Every bolt spec must contain all four sections:
50
54
 
51
55
  **Dependencies** — Other bolts that must complete before this bolt can begin. Use bolt IDs (e.g., `BOLT-001-data-model`). Leave empty if no dependencies.
52
56
 
57
+ **Traceability** — Which requirements and stories this bolt satisfies:
58
+ - **Requirements**: {comma-separated requirement IDs from requirements.md}
59
+ - **Stories**: {comma-separated story IDs from stories.md}
60
+
53
61
  ---
54
62
 
55
63
  ## Naming Convention
@@ -80,9 +88,20 @@ If a unit's scope exceeds 8 bolts, it must be re-scoped or split into multiple u
80
88
 
81
89
  ---
82
90
 
91
+ ## Traceability Rules
92
+
93
+ Every bolt MUST satisfy the following traceability requirements:
94
+
95
+ - **Requirement reference is mandatory**: Every bolt must reference at least one requirement ID in its `requirements` frontmatter field and its `## Traceability` section. Requirement IDs come from `requirements.md` (e.g., `FR-1`, `FR-3`). A bolt with no requirement reference is invalid and must be revised before execution.
96
+ - **Story reference is recommended but optional**: Not all bolts map directly to user stories (infrastructure, scaffolding, and cross-cutting bolts often do not). Include story IDs when they exist; leave the `stories` field as an empty array `[]` when none apply.
97
+ - **Planner responsibility**: The planner agent is responsible for reading the inception `requirements.md` and `stories.md` artifacts and populating these fields for every bolt it generates. Do not leave them as placeholder values.
98
+ - **Coverage check at plan completion**: After all bolts for a unit are planned, a coverage check verifies that every requirement with `must` priority in `requirements.md` is addressed by at least one bolt. Unaddressed `must` requirements must be resolved before bolt execution begins (either by revising an existing bolt's scope or adding a new bolt).
99
+
100
+ ---
101
+
83
102
  ## Coverage Validation
84
103
 
85
- After bolt decomposition, the BoltPlanner validates that the bolt set covers all unit stories.
104
+ After bolt decomposition, the BoltPlanner validates that the bolt set covers all unit stories and requirements.
86
105
 
87
106
  | Coverage | Result |
88
107
  |----------|--------|
@@ -90,7 +109,9 @@ After bolt decomposition, the BoltPlanner validates that the bolt set covers all
90
109
  | 80-94% | Warning — user must explicitly acknowledge the gap before proceeding |
91
110
  | < 80% | Hard block — bolt planning rejected, must revise decomposition |
92
111
 
93
- Coverage is measured as: (stories with at least one covering bolt) / (total unit stories).
112
+ Story coverage is measured as: (stories with at least one covering bolt) / (total unit stories).
113
+
114
+ Requirement coverage (must-priority only): all `must`-priority requirements in `requirements.md` must be referenced by at least one bolt. Any uncovered `must` requirement is treated as a hard block regardless of story coverage score.
94
115
 
95
116
  ---
96
117
 
@@ -100,12 +100,25 @@ These fields are stored on the `ConstructionBoltProgress` object alongside the b
100
100
 
101
101
  ---
102
102
 
103
+ ## Traceability Check
104
+
105
+ As part of evaluating each bolt, BoltReviewer performs a lightweight traceability check:
106
+
107
+ - Read the `requirements` and `stories` fields from the bolt's `spec.md` frontmatter and the `## Traceability` section.
108
+ - Verify that the generated code actually touches functionality relevant to the cited requirement IDs. If a bolt claims to satisfy `FR-3` (e.g., "user authentication") but the code contains no authentication logic, flag this as a concern.
109
+ - Add a **Traceability** line to `review.md` under the **Feedback** section:
110
+ `Traceability: Requirements {ID list} addressed — Yes / Partial / No`
111
+ - A "Partial" or "No" finding should reduce the alignment score and appear as a **Concerns** item. It does not automatically trigger a hard block, but it does lower the score and may push a bolt into the advisory or rejected tier.
112
+
113
+ ---
114
+
103
115
  ## BoltReviewer Behavior
104
116
 
105
117
  BoltReviewer is a decision engine, not an interactive agent. It:
106
118
 
107
119
  - Reads the bolt spec (`spec.md`) and the generated code in `Target Files`
108
120
  - Evaluates alignment against each acceptance criterion
121
+ - Performs a traceability check against the cited requirement and story IDs
109
122
  - Computes a score and selects a tier
110
123
  - Writes the `review.md` artifact
111
124
  - Returns a structured decision object to the orchestrator
@@ -406,6 +406,7 @@ When a unit has been decomposed into bolts (see `resources/rules/construction/bo
406
406
 
407
407
  - Each bolt has its own `spec.md` defining scope, acceptance criteria, and target files
408
408
  - The code generation agent receives one bolt spec at a time
409
+ - **Before writing any code**, the agent MUST read the bolt's `## Traceability` section (and the `requirements` / `stories` frontmatter fields) to understand which business requirements this bolt serves and why it exists. This context informs implementation decisions — for example, knowing a bolt satisfies `FR-5` (audit logging) tells the agent to write every mutating operation with an audit trail, even if the acceptance criteria do not spell out every detail.
409
410
  - After each bolt's code generation completes, **Bolt Review** runs before the next bolt begins (see `resources/rules/construction/bolt-review.md`)
410
411
  - The checkpoint tracks bolt state via `construction_bolts`, `active_bolt_id`, and `active_bolt_stage`
411
412
  - The unit-level code generation plan still governs overall unit scope; bolts decompose its execution into focused, reviewable increments
@@ -20,10 +20,14 @@
20
20
  - requirements.md (includes intent analysis)
21
21
  - requirements-analysis-questions.md (with answers)
22
22
 
23
+ > **Traceability prerequisite**: Verify that `requirements.md` contains named requirement IDs in `FR-NNN` format (e.g., `FR-001`, `FR-002`). These IDs are referenced throughout construction — bolt specs cite them in `requirements` frontmatter and `## Traceability` sections, and the bolt planner performs coverage checks against `must`-priority requirements. If requirements exist but lack explicit IDs, add them before proceeding to construction.
24
+
23
25
  ### 1.3 Load User Stories (if executed)
24
26
  - stories.md
25
27
  - personas.md
26
28
 
29
+ > **Traceability prerequisite**: Verify that `stories.md` contains named story IDs in `S-NNN` format (e.g., `S-001`, `S-002`). These IDs are referenced in bolt specs and coverage validation. If stories exist but lack explicit IDs, add them before proceeding to construction.
30
+
27
31
  ## Step 2: Detailed Scope and Impact Analysis
28
32
 
29
33
  **Now that we have complete context (requirements + stories), perform detailed analysis:**
@@ -1167,6 +1167,7 @@ Read `requirements/requirements.md`, `user-stories/stories.md`, and `application
1167
1167
  - **Scope**: {one-sentence scope description}
1168
1168
  - **Phase**: construction
1169
1169
  - **Estimated Effort**: {N}
1170
+ - **Requirements**: FR-001, FR-002
1170
1171
  - **User Stories**: S-001, S-002
1171
1172
  - **NFRs**: SEC-001, PERF-001
1172
1173
  - **Components**: {component names}
@@ -1176,6 +1177,8 @@ Read `requirements/requirements.md`, `user-stories/stories.md`, and `application
1176
1177
  ...
1177
1178
  ```
1178
1179
 
1180
+ > **Note**: The `Requirements` field lists the FR-N IDs from `requirements.md` that this unit addresses. These IDs flow directly into bolt planning — the bolt planner reads them to populate the `requirements` frontmatter field and `## Traceability` section of each bolt spec. Establish requirement IDs during Requirements Analysis so they are available here.
1181
+
1179
1182
  **`aidlc-docs/{workflowId}/inception/application-design/unit-of-work-dependency.md`**:
1180
1183
 
1181
1184
  ```markdown