olympus-ai 4.4.13 → 4.4.14

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 (33) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dist/features/workflow-engine/checkpoint.d.ts.map +1 -1
  3. package/dist/features/workflow-engine/checkpoint.js +12 -0
  4. package/dist/features/workflow-engine/checkpoint.js.map +1 -1
  5. package/dist/features/workflow-engine/construction/executor.d.ts +38 -3
  6. package/dist/features/workflow-engine/construction/executor.d.ts.map +1 -1
  7. package/dist/features/workflow-engine/construction/executor.js +245 -3
  8. package/dist/features/workflow-engine/construction/executor.js.map +1 -1
  9. package/dist/features/workflow-engine/construction/regression-baseline.d.ts +76 -0
  10. package/dist/features/workflow-engine/construction/regression-baseline.d.ts.map +1 -0
  11. package/dist/features/workflow-engine/construction/regression-baseline.js +274 -0
  12. package/dist/features/workflow-engine/construction/regression-baseline.js.map +1 -0
  13. package/dist/features/workflow-engine/construction/regression-categorizer.d.ts +44 -0
  14. package/dist/features/workflow-engine/construction/regression-categorizer.d.ts.map +1 -0
  15. package/dist/features/workflow-engine/construction/regression-categorizer.js +54 -0
  16. package/dist/features/workflow-engine/construction/regression-categorizer.js.map +1 -0
  17. package/dist/features/workflow-engine/phase-types.d.ts +48 -1
  18. package/dist/features/workflow-engine/phase-types.d.ts.map +1 -1
  19. package/dist/hooks/olympus-hooks.cjs +334 -280
  20. package/dist/hooks/registry.d.ts +18 -0
  21. package/dist/hooks/registry.d.ts.map +1 -1
  22. package/dist/hooks/registry.js +18 -0
  23. package/dist/hooks/registry.js.map +1 -1
  24. package/dist/installer/index.d.ts +1 -1
  25. package/dist/installer/index.js +1 -1
  26. package/package.json +1 -1
  27. package/resources/claude-md.md +44 -0
  28. package/resources/rules/common/pathway-behaviors.md +100 -0
  29. package/resources/rules/common/terminal-formatting.md +161 -0
  30. package/resources/rules/construction/build-and-test.md +58 -0
  31. package/resources/rules/construction/code-generation.md +3 -0
  32. package/resources/rules/construction/test-generation.md +82 -0
  33. package/resources/skills/continue/SKILL.md +4 -0
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Regression Baseline Module
3
+ *
4
+ * Owns all I/O-touching regression logic: capturing a pre-unit baseline by running
5
+ * the project's test suite, comparing results against a prior baseline, and writing
6
+ * structured regression reports to disk.
7
+ *
8
+ * Pure in-memory functions (compareAgainstBaseline) deliberately contain no I/O so
9
+ * they remain fast and testable without mocking.
10
+ */
11
+ import type { RegressionBaseline, RegressionReport, RegressionCategory } from '../phase-types.js';
12
+ export type { RegressionCategory };
13
+ /**
14
+ * Structured diff produced by compareAgainstBaseline.
15
+ * Contains newly introduced failures, newly fixed tests, and significant timing changes.
16
+ */
17
+ export interface RegressionBaselineDiff {
18
+ new_failures: Array<{
19
+ name: string;
20
+ filePath: string;
21
+ }>;
22
+ new_passes: Array<{
23
+ name: string;
24
+ filePath: string;
25
+ }>;
26
+ timing_changes: Array<{
27
+ name: string;
28
+ before_ms: number;
29
+ after_ms: number;
30
+ delta_ms: number;
31
+ }>;
32
+ computed_at: string;
33
+ }
34
+ /**
35
+ * Run the project test suite and capture a baseline snapshot of all test results.
36
+ *
37
+ * Writes the result to `aidlc-docs/{workflowId}/construction/regression-baseline.json`.
38
+ * A non-zero exit code from the test runner is treated as expected — the output is still
39
+ * parsed and captured.
40
+ *
41
+ * @param projectPath - Absolute path to the project root.
42
+ * @param workflowId - AIDLC workflow identifier (used to build output path).
43
+ * @param testCommand - Shell command to invoke the test suite (e.g. `npm test`).
44
+ */
45
+ export declare function captureBaseline(projectPath: string, workflowId: string, testCommand: string): Promise<RegressionBaseline>;
46
+ /**
47
+ * Compare a prior baseline against a new set of test results to produce a structured diff.
48
+ *
49
+ * Pure in-memory — no I/O. Completes in <5 s for 1 000 tests via O(1) Map lookups.
50
+ *
51
+ * Classification rules:
52
+ * - new_failures: baseline was `passed` or `skipped`, current is `failed`
53
+ * - new_passes: baseline was `failed`, current is `passed`
54
+ * - timing_changes: both runs have the test and |delta| > 100 ms
55
+ *
56
+ * @param baseline - Previously captured RegressionBaseline.
57
+ * @param currentResults - Test results from the current run.
58
+ */
59
+ export declare function compareAgainstBaseline(baseline: RegressionBaseline, currentResults: Array<{
60
+ name: string;
61
+ filePath: string;
62
+ status: 'passed' | 'failed' | 'skipped';
63
+ duration_ms: number;
64
+ }>): RegressionBaselineDiff;
65
+ /**
66
+ * Write a human-readable regression report markdown file.
67
+ *
68
+ * Output path: `aidlc-docs/{workflowId}/construction/{unitId}/testing/regression-report.md`
69
+ *
70
+ * @param projectPath - Absolute path to the project root.
71
+ * @param workflowId - AIDLC workflow identifier.
72
+ * @param unitId - Unit identifier (e.g. `u-001-core-types`).
73
+ * @param report - The RegressionReport object to render.
74
+ */
75
+ export declare function writeRegressionReport(projectPath: string, workflowId: string, unitId: string, report: RegressionReport): Promise<void>;
76
+ //# sourceMappingURL=regression-baseline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regression-baseline.d.ts","sourceRoot":"","sources":["../../../../src/features/workflow-engine/construction/regression-baseline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAElG,YAAY,EAAE,kBAAkB,EAAE,CAAC;AASnC;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAkD7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,kBAAkB,EAC5B,cAAc,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GACtH,sBAAsB,CAiDxB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAuCf"}
@@ -0,0 +1,274 @@
1
+ /**
2
+ * Regression Baseline Module
3
+ *
4
+ * Owns all I/O-touching regression logic: capturing a pre-unit baseline by running
5
+ * the project's test suite, comparing results against a prior baseline, and writing
6
+ * structured regression reports to disk.
7
+ *
8
+ * Pure in-memory functions (compareAgainstBaseline) deliberately contain no I/O so
9
+ * they remain fast and testable without mocking.
10
+ */
11
+ import fs from 'fs-extra';
12
+ import path from 'path';
13
+ import { execSync } from 'child_process';
14
+ /**
15
+ * Run the project test suite and capture a baseline snapshot of all test results.
16
+ *
17
+ * Writes the result to `aidlc-docs/{workflowId}/construction/regression-baseline.json`.
18
+ * A non-zero exit code from the test runner is treated as expected — the output is still
19
+ * parsed and captured.
20
+ *
21
+ * @param projectPath - Absolute path to the project root.
22
+ * @param workflowId - AIDLC workflow identifier (used to build output path).
23
+ * @param testCommand - Shell command to invoke the test suite (e.g. `npm test`).
24
+ */
25
+ export async function captureBaseline(projectPath, workflowId, testCommand) {
26
+ const constructionDir = path.join(projectPath, 'aidlc-docs', workflowId, 'construction');
27
+ await fs.ensureDir(constructionDir);
28
+ const framework = detectFramework(testCommand);
29
+ let stdout = '';
30
+ let stderr = '';
31
+ try {
32
+ const result = execSync(testCommand, {
33
+ cwd: projectPath,
34
+ encoding: 'utf-8',
35
+ stdio: 'pipe',
36
+ });
37
+ stdout = result;
38
+ }
39
+ catch (err) {
40
+ // execSync throws when exit code != 0; extract captured output from the error object
41
+ const execError = err;
42
+ stdout = execError.stdout ?? '';
43
+ stderr = execError.stderr ?? '';
44
+ }
45
+ const rawOutput = stdout || stderr;
46
+ const tests = parseTestOutput(rawOutput, framework);
47
+ const passed = tests.filter(t => t.status === 'passed').length;
48
+ const failed = tests.filter(t => t.status === 'failed').length;
49
+ const skipped = tests.filter(t => t.status === 'skipped').length;
50
+ const baseline = {
51
+ tests: tests.map(t => ({
52
+ name: t.name,
53
+ filePath: t.filePath,
54
+ status: t.status,
55
+ duration_ms: t.duration_ms,
56
+ })),
57
+ captured_at: new Date().toISOString(),
58
+ test_command: testCommand,
59
+ framework,
60
+ total: tests.length,
61
+ passed,
62
+ failed,
63
+ skipped,
64
+ };
65
+ const baselinePath = path.join(constructionDir, 'regression-baseline.json');
66
+ await fs.writeJson(baselinePath, baseline, { spaces: 2 });
67
+ return baseline;
68
+ }
69
+ /**
70
+ * Compare a prior baseline against a new set of test results to produce a structured diff.
71
+ *
72
+ * Pure in-memory — no I/O. Completes in <5 s for 1 000 tests via O(1) Map lookups.
73
+ *
74
+ * Classification rules:
75
+ * - new_failures: baseline was `passed` or `skipped`, current is `failed`
76
+ * - new_passes: baseline was `failed`, current is `passed`
77
+ * - timing_changes: both runs have the test and |delta| > 100 ms
78
+ *
79
+ * @param baseline - Previously captured RegressionBaseline.
80
+ * @param currentResults - Test results from the current run.
81
+ */
82
+ export function compareAgainstBaseline(baseline, currentResults) {
83
+ // Build O(1) lookup map from baseline
84
+ const baselineMap = new Map();
85
+ for (const t of baseline.tests) {
86
+ baselineMap.set(t.name, t);
87
+ }
88
+ const new_failures = [];
89
+ const new_passes = [];
90
+ const timing_changes = [];
91
+ for (const current of currentResults) {
92
+ const baselineEntry = baselineMap.get(current.name);
93
+ if (!baselineEntry) {
94
+ if (current.status === 'failed') {
95
+ new_failures.push({ name: current.name, filePath: current.filePath });
96
+ }
97
+ continue;
98
+ }
99
+ if ((baselineEntry.status === 'passed' || baselineEntry.status === 'skipped') &&
100
+ current.status === 'failed') {
101
+ new_failures.push({ name: current.name, filePath: current.filePath });
102
+ }
103
+ if (baselineEntry.status === 'failed' && current.status === 'passed') {
104
+ new_passes.push({ name: current.name, filePath: current.filePath });
105
+ }
106
+ const delta = Math.abs(current.duration_ms - baselineEntry.duration_ms);
107
+ if (delta > 100) {
108
+ timing_changes.push({
109
+ name: current.name,
110
+ before_ms: baselineEntry.duration_ms,
111
+ after_ms: current.duration_ms,
112
+ delta_ms: delta,
113
+ });
114
+ }
115
+ }
116
+ return {
117
+ new_failures,
118
+ new_passes,
119
+ timing_changes,
120
+ computed_at: new Date().toISOString(),
121
+ };
122
+ }
123
+ /**
124
+ * Write a human-readable regression report markdown file.
125
+ *
126
+ * Output path: `aidlc-docs/{workflowId}/construction/{unitId}/testing/regression-report.md`
127
+ *
128
+ * @param projectPath - Absolute path to the project root.
129
+ * @param workflowId - AIDLC workflow identifier.
130
+ * @param unitId - Unit identifier (e.g. `u-001-core-types`).
131
+ * @param report - The RegressionReport object to render.
132
+ */
133
+ export async function writeRegressionReport(projectPath, workflowId, unitId, report) {
134
+ const testingDir = path.join(projectPath, 'aidlc-docs', workflowId, 'construction', unitId, 'testing');
135
+ await fs.ensureDir(testingDir);
136
+ const reportPath = path.join(testingDir, 'regression-report.md');
137
+ const failureRows = report.failures
138
+ .map(f => `| ${f.test_name} | ${f.file_path} | ${f.category} | ${f.rationale} |`)
139
+ .join('\n');
140
+ const content = `# Regression Report
141
+
142
+ **Workflow ID**: ${report.workflow_id}
143
+ **Unit ID**: ${report.unit_id}
144
+ **Baseline Captured At**: ${report.baseline_captured_at}
145
+ **Compared At**: ${report.compared_at}
146
+
147
+ ## Summary
148
+
149
+ | Metric | Count |
150
+ |---|---|
151
+ | Total Regressions | ${report.total_regressions} |
152
+ | Legitimate Regressions | ${report.legitimate_regressions} |
153
+
154
+ ## Failures
155
+
156
+ | Test Name | File Path | Category | Rationale |
157
+ |---|---|---|---|
158
+ ${failureRows || '| _No failures_ | | | |'}
159
+ `;
160
+ await fs.writeFile(reportPath, content, 'utf-8');
161
+ }
162
+ function detectFramework(testCommand) {
163
+ if (testCommand.includes('vitest'))
164
+ return 'vitest';
165
+ if (testCommand.includes('jest'))
166
+ return 'jest';
167
+ return 'unknown';
168
+ }
169
+ /**
170
+ * Parse raw test runner output into TestResult objects.
171
+ *
172
+ * Two strategies:
173
+ * 1. JSON reporter path (vitest/jest `--json`): triggered when output contains `"numPassedTests"`.
174
+ * Parses `testResults[*].assertionResults`.
175
+ * 2. Plain-text fallback: line-by-line scan for TAP-style and Unicode pass/fail markers.
176
+ */
177
+ function parseTestOutput(output, _framework) {
178
+ // Strategy 1: JSON reporter format — numPassedTests is the canonical sentinel field
179
+ if (output.includes('"numPassedTests"')) {
180
+ try {
181
+ // JSON may be prefixed with non-JSON noise; start from first `{`
182
+ const jsonStart = output.indexOf('{');
183
+ if (jsonStart !== -1) {
184
+ const parsed = JSON.parse(output.slice(jsonStart));
185
+ const results = [];
186
+ if (Array.isArray(parsed.testResults)) {
187
+ for (const suite of parsed.testResults) {
188
+ const filePath = suite.testFilePath ?? suite.name ?? 'unknown';
189
+ for (const assertion of (suite.assertionResults ?? [])) {
190
+ results.push({
191
+ name: assertion.fullName ?? assertion.title ?? 'unnamed',
192
+ filePath,
193
+ status: mapJsonStatus(assertion.status),
194
+ duration_ms: assertion.duration ?? 0,
195
+ });
196
+ }
197
+ }
198
+ }
199
+ if (results.length > 0)
200
+ return results;
201
+ }
202
+ }
203
+ catch {
204
+ // JSON parse failed — fall through to plain-text parser
205
+ }
206
+ }
207
+ // Strategy 2: plain-text line scanner
208
+ return parsePlainTextOutput(output);
209
+ }
210
+ function mapJsonStatus(status) {
211
+ if (status === 'passed')
212
+ return 'passed';
213
+ if (status === 'failed')
214
+ return 'failed';
215
+ return 'skipped';
216
+ }
217
+ /**
218
+ * Plain-text fallback parser for TAP-like or human-readable test output.
219
+ *
220
+ * Pass markers: ✓ √ ok N -
221
+ * Fail markers: ✗ × not ok N -
222
+ * Duration: (NNNms) or NNNms suffix
223
+ * File context: nearest preceding `FAIL src/...` or `PASS src/...` line
224
+ */
225
+ function parsePlainTextOutput(output) {
226
+ const lines = output.split('\n');
227
+ const results = [];
228
+ let currentFilePath = 'unknown';
229
+ for (const line of lines) {
230
+ const trimmed = line.trim();
231
+ // Update file context from suite headers like `FAIL src/foo.test.ts`
232
+ const fileHeaderMatch = trimmed.match(/^(?:FAIL|PASS)\s+(src\S+)/);
233
+ if (fileHeaderMatch) {
234
+ currentFilePath = fileHeaderMatch[1];
235
+ continue;
236
+ }
237
+ // Pass patterns: ✓ name (Nms) | ok N - name
238
+ const passPatterns = [
239
+ /^[✓√]\s+(.+?)(?:\s+\((\d+)ms\)|\s+(\d+)ms)?$/,
240
+ /^ok\s+\d+\s+-\s+(.+?)(?:\s+#.*)?(?:\s+(\d+)ms)?$/,
241
+ ];
242
+ // Fail patterns: ✗ name (Nms) | not ok N - name
243
+ const failPatterns = [
244
+ /^[✗×]\s+(.+?)(?:\s+\((\d+)ms\)|\s+(\d+)ms)?$/,
245
+ /^not ok\s+\d+\s+-\s+(.+?)(?:\s+#.*)?(?:\s+(\d+)ms)?$/,
246
+ ];
247
+ let matched = false;
248
+ for (const pattern of passPatterns) {
249
+ const m = trimmed.match(pattern);
250
+ if (m) {
251
+ results.push({ name: m[1].trim(), filePath: currentFilePath, status: 'passed', duration_ms: parseMs(m[2] ?? m[3]) });
252
+ matched = true;
253
+ break;
254
+ }
255
+ }
256
+ if (!matched) {
257
+ for (const pattern of failPatterns) {
258
+ const m = trimmed.match(pattern);
259
+ if (m) {
260
+ results.push({ name: m[1].trim(), filePath: currentFilePath, status: 'failed', duration_ms: parseMs(m[2] ?? m[3]) });
261
+ break;
262
+ }
263
+ }
264
+ }
265
+ }
266
+ return results;
267
+ }
268
+ function parseMs(value) {
269
+ if (!value)
270
+ return 0;
271
+ const n = parseInt(value, 10);
272
+ return isNaN(n) ? 0 : n;
273
+ }
274
+ //# sourceMappingURL=regression-baseline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regression-baseline.js","sourceRoot":"","sources":["../../../../src/features/workflow-engine/construction/regression-baseline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Regression Categorizer
3
+ *
4
+ * Pure logic module (no I/O) for classifying test failures into one of four
5
+ * RegressionCategory values and computing summary counts for ConstructionUnitProgress.
6
+ */
7
+ import type { RegressionCategory } from '../phase-types.js';
8
+ /**
9
+ * Classify a single failing test into one of four regression categories.
10
+ *
11
+ * Decision tree (evaluated in this exact order):
12
+ * 1. pre_existing_failure — baseline had the test already failing
13
+ * 2. flaky — at least one re-run passed without code changes
14
+ * 3. intentional_change — test did not exist in the baseline (new test)
15
+ * 4. legitimate_regression — baseline was passing/skipped, all re-runs also failed
16
+ *
17
+ * @param testName - The failing test name (used for traceability only).
18
+ * @param baselineEntry - Baseline snapshot entry, or null if the test is new.
19
+ * @param rerunResults - Results from up to 2 re-runs without code changes.
20
+ */
21
+ export declare function categorizeFailure(_testName: string, baselineEntry: {
22
+ status: 'passed' | 'failed' | 'skipped';
23
+ } | null, rerunResults: Array<{
24
+ status: 'passed' | 'failed' | 'skipped';
25
+ }>): RegressionCategory;
26
+ export declare function checkFlakyThreshold(categorizedFailures: RegressionCategory[], warnThresholdPct?: number): boolean;
27
+ /**
28
+ * Compute the regressions_count and flaky_count values for ConstructionUnitProgress.
29
+ *
30
+ * Only `legitimate_regression` contributes to regressions_count.
31
+ * Only `flaky` contributes to flaky_count.
32
+ * `pre_existing_failure` and `intentional_change` are excluded from both.
33
+ *
34
+ * @param failures - Newly failing tests (parallel to categories).
35
+ * @param categories - RegressionCategory for each failure entry.
36
+ */
37
+ export declare function buildRegressionSummary(_failures: Array<{
38
+ test_name: string;
39
+ file_path: string;
40
+ }>, categories: RegressionCategory[]): {
41
+ regressions_count: number;
42
+ flaky_count: number;
43
+ };
44
+ //# sourceMappingURL=regression-categorizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regression-categorizer.d.ts","sourceRoot":"","sources":["../../../../src/features/workflow-engine/construction/regression-categorizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE;IAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GAAG,IAAI,EACjE,YAAY,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,CAAC,GAC/D,kBAAkB,CAcpB;AAED,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,gBAAgB,SAAM,GACrB,OAAO,CAKT;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1D,UAAU,EAAE,kBAAkB,EAAE,GAC/B;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAIpD"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Regression Categorizer
3
+ *
4
+ * Pure logic module (no I/O) for classifying test failures into one of four
5
+ * RegressionCategory values and computing summary counts for ConstructionUnitProgress.
6
+ */
7
+ /**
8
+ * Classify a single failing test into one of four regression categories.
9
+ *
10
+ * Decision tree (evaluated in this exact order):
11
+ * 1. pre_existing_failure — baseline had the test already failing
12
+ * 2. flaky — at least one re-run passed without code changes
13
+ * 3. intentional_change — test did not exist in the baseline (new test)
14
+ * 4. legitimate_regression — baseline was passing/skipped, all re-runs also failed
15
+ *
16
+ * @param testName - The failing test name (used for traceability only).
17
+ * @param baselineEntry - Baseline snapshot entry, or null if the test is new.
18
+ * @param rerunResults - Results from up to 2 re-runs without code changes.
19
+ */
20
+ export function categorizeFailure(_testName, baselineEntry, rerunResults) {
21
+ if (baselineEntry !== null && baselineEntry.status === 'failed') {
22
+ return 'pre_existing_failure';
23
+ }
24
+ if (rerunResults.some(r => r.status === 'passed')) {
25
+ return 'flaky';
26
+ }
27
+ if (baselineEntry === null) {
28
+ return 'intentional_change';
29
+ }
30
+ return 'legitimate_regression';
31
+ }
32
+ export function checkFlakyThreshold(categorizedFailures, warnThresholdPct = 0.2) {
33
+ const total = categorizedFailures.length;
34
+ if (total === 0)
35
+ return false;
36
+ const flakyCount = categorizedFailures.filter(c => c === 'flaky').length;
37
+ return flakyCount / total > warnThresholdPct;
38
+ }
39
+ /**
40
+ * Compute the regressions_count and flaky_count values for ConstructionUnitProgress.
41
+ *
42
+ * Only `legitimate_regression` contributes to regressions_count.
43
+ * Only `flaky` contributes to flaky_count.
44
+ * `pre_existing_failure` and `intentional_change` are excluded from both.
45
+ *
46
+ * @param failures - Newly failing tests (parallel to categories).
47
+ * @param categories - RegressionCategory for each failure entry.
48
+ */
49
+ export function buildRegressionSummary(_failures, categories) {
50
+ const regressions_count = categories.filter(c => c === 'legitimate_regression').length;
51
+ const flaky_count = categories.filter(c => c === 'flaky').length;
52
+ return { regressions_count, flaky_count };
53
+ }
54
+ //# sourceMappingURL=regression-categorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regression-categorizer.js","sourceRoot":"","sources":["../../../../src/features/workflow-engine/construction/regression-categorizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,aAAiE,EACjE,YAAgE;IAEhE,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,mBAAyC,EACzC,gBAAgB,GAAG,GAAG;IAEtB,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACzE,OAAO,UAAU,GAAG,KAAK,GAAG,gBAAgB,CAAC;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAA0D,EAC1D,UAAgC;IAEhC,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,uBAAuB,CAAC,CAAC,MAAM,CAAC;IACvF,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACjE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC;AAC5C,CAAC"}
@@ -247,6 +247,7 @@ export interface WorkflowCheckpointV3 {
247
247
  origin?: 'hook-init' | 'ai-initialized' | 'manual';
248
248
  archived_at?: string;
249
249
  archived_path?: string;
250
+ bug_description?: string;
250
251
  code_plan_path?: string;
251
252
  plan_steps_total?: number;
252
253
  plan_steps_completed?: number;
@@ -282,7 +283,7 @@ export interface CeremonyConfig {
282
283
  output_format: 'standard' | 'presentation';
283
284
  review_prompt_style: 'inline' | 'explicit';
284
285
  }
285
- export type ConstructionDesignStage = 'functional-design' | 'nfr-requirements' | 'nfr-design' | 'infrastructure-design' | 'code-generation';
286
+ export type ConstructionDesignStage = 'functional-design' | 'nfr-requirements' | 'nfr-design' | 'infrastructure-design' | 'code-generation' | 'test-generation';
286
287
  export interface ConstructionUnitProgress {
287
288
  unitId: string;
288
289
  stages: Record<ConstructionDesignStage, {
@@ -292,6 +293,13 @@ export interface ConstructionUnitProgress {
292
293
  }>;
293
294
  code_plan_path: string | null;
294
295
  code_generation_status: 'not_started' | 'planning' | 'awaiting_approval' | 'generating' | 'completed';
296
+ tests_total?: number;
297
+ tests_passed?: number;
298
+ tests_failed?: number;
299
+ test_framework?: string;
300
+ regressions_count?: number;
301
+ flaky_count?: number;
302
+ test_generation_status?: 'not_started' | 'in_progress' | 'completed' | 'skipped';
295
303
  }
296
304
  export interface UserStory {
297
305
  id: string;
@@ -305,4 +313,43 @@ export interface UnitDefinition {
305
313
  description: string;
306
314
  scope: string;
307
315
  }
316
+ /**
317
+ * Baseline snapshot of all test results captured before a code-generation unit runs.
318
+ * This is a frozen Group 1B contract surface — do NOT modify field names or types.
319
+ */
320
+ export interface RegressionBaseline {
321
+ tests: Array<{
322
+ name: string;
323
+ filePath: string;
324
+ status: 'passed' | 'failed' | 'skipped';
325
+ duration_ms: number;
326
+ }>;
327
+ captured_at: string;
328
+ test_command: string;
329
+ framework: string;
330
+ total: number;
331
+ passed: number;
332
+ failed: number;
333
+ skipped: number;
334
+ }
335
+ export type RegressionCategory = 'legitimate_regression' | 'intentional_change' | 'flaky' | 'pre_existing_failure';
336
+ export interface RegressionReport {
337
+ workflow_id: string;
338
+ unit_id: string;
339
+ baseline_captured_at: string;
340
+ compared_at: string;
341
+ failures: Array<{
342
+ test_name: string;
343
+ file_path: string;
344
+ category: RegressionCategory;
345
+ rationale: string;
346
+ }>;
347
+ total_regressions: number;
348
+ legitimate_regressions: number;
349
+ }
350
+ export interface TestFrameworkInfo {
351
+ name: string;
352
+ testCommand: string;
353
+ configPath?: string;
354
+ }
308
355
  //# sourceMappingURL=phase-types.d.ts.map
@@ -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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"}