@substrate-ai/sdlc 0.20.3 → 0.20.5

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 (63) hide show
  1. package/dist/run-model/index.d.ts +2 -2
  2. package/dist/run-model/index.d.ts.map +1 -1
  3. package/dist/run-model/index.js +2 -1
  4. package/dist/run-model/index.js.map +1 -1
  5. package/dist/run-model/per-story-state.d.ts +16 -2
  6. package/dist/run-model/per-story-state.d.ts.map +1 -1
  7. package/dist/run-model/schemas.d.ts +16 -2
  8. package/dist/run-model/schemas.d.ts.map +1 -1
  9. package/dist/run-model/verification-result.d.ts +53 -3
  10. package/dist/run-model/verification-result.d.ts.map +1 -1
  11. package/dist/run-model/verification-result.js +28 -0
  12. package/dist/run-model/verification-result.js.map +1 -1
  13. package/dist/verification/checks/acceptance-criteria-evidence-check.d.ts.map +1 -1
  14. package/dist/verification/checks/acceptance-criteria-evidence-check.js +65 -8
  15. package/dist/verification/checks/acceptance-criteria-evidence-check.js.map +1 -1
  16. package/dist/verification/checks/build-check.d.ts.map +1 -1
  17. package/dist/verification/checks/build-check.js +64 -8
  18. package/dist/verification/checks/build-check.js.map +1 -1
  19. package/dist/verification/checks/index.d.ts +4 -1
  20. package/dist/verification/checks/index.d.ts.map +1 -1
  21. package/dist/verification/checks/index.js +3 -1
  22. package/dist/verification/checks/index.js.map +1 -1
  23. package/dist/verification/checks/phantom-review-check.d.ts.map +1 -1
  24. package/dist/verification/checks/phantom-review-check.js +21 -2
  25. package/dist/verification/checks/phantom-review-check.js.map +1 -1
  26. package/dist/verification/checks/runtime-probe-check.d.ts +43 -0
  27. package/dist/verification/checks/runtime-probe-check.d.ts.map +1 -0
  28. package/dist/verification/checks/runtime-probe-check.js +152 -0
  29. package/dist/verification/checks/runtime-probe-check.js.map +1 -0
  30. package/dist/verification/checks/trivial-output-check.d.ts.map +1 -1
  31. package/dist/verification/checks/trivial-output-check.js +21 -3
  32. package/dist/verification/checks/trivial-output-check.js.map +1 -1
  33. package/dist/verification/findings.d.ts +61 -0
  34. package/dist/verification/findings.d.ts.map +1 -0
  35. package/dist/verification/findings.js +39 -0
  36. package/dist/verification/findings.js.map +1 -0
  37. package/dist/verification/index.d.ts +6 -1
  38. package/dist/verification/index.d.ts.map +1 -1
  39. package/dist/verification/index.js +4 -0
  40. package/dist/verification/index.js.map +1 -1
  41. package/dist/verification/probes/executor.d.ts +39 -0
  42. package/dist/verification/probes/executor.d.ts.map +1 -0
  43. package/dist/verification/probes/executor.js +109 -0
  44. package/dist/verification/probes/executor.js.map +1 -0
  45. package/dist/verification/probes/index.d.ts +14 -0
  46. package/dist/verification/probes/index.d.ts.map +1 -0
  47. package/dist/verification/probes/index.js +12 -0
  48. package/dist/verification/probes/index.js.map +1 -0
  49. package/dist/verification/probes/parser.d.ts +26 -0
  50. package/dist/verification/probes/parser.d.ts.map +1 -0
  51. package/dist/verification/probes/parser.js +134 -0
  52. package/dist/verification/probes/parser.js.map +1 -0
  53. package/dist/verification/probes/types.d.ts +122 -0
  54. package/dist/verification/probes/types.d.ts.map +1 -0
  55. package/dist/verification/probes/types.js +68 -0
  56. package/dist/verification/probes/types.js.map +1 -0
  57. package/dist/verification/types.d.ts +10 -1
  58. package/dist/verification/types.d.ts.map +1 -1
  59. package/dist/verification/verification-pipeline.d.ts +3 -1
  60. package/dist/verification/verification-pipeline.d.ts.map +1 -1
  61. package/dist/verification/verification-pipeline.js +20 -2
  62. package/dist/verification/verification-pipeline.js.map +1 -1
  63. package/package.json +6 -3
@@ -14,6 +14,7 @@ import { PhantomReviewCheck } from './checks/phantom-review-check.js';
14
14
  import { TrivialOutputCheck } from './checks/trivial-output-check.js';
15
15
  import { AcceptanceCriteriaEvidenceCheck } from './checks/acceptance-criteria-evidence-check.js';
16
16
  import { BuildCheck } from './checks/build-check.js';
17
+ import { RuntimeProbeCheck } from './checks/runtime-probe-check.js';
17
18
  // ---------------------------------------------------------------------------
18
19
  // Helpers
19
20
  // ---------------------------------------------------------------------------
@@ -88,17 +89,31 @@ export class VerificationPipeline {
88
89
  status: runResult.status,
89
90
  details: runResult.details,
90
91
  duration_ms: runResult.duration_ms,
92
+ // Story 55-1/55-2: preserve the structured findings array so
93
+ // downstream consumers (retry prompts, run manifest, post-run
94
+ // analysis) see each issue as its own addressable record.
95
+ ...(runResult.findings !== undefined ? { findings: runResult.findings } : {}),
91
96
  };
92
97
  }
93
98
  catch (err) {
94
99
  const elapsed = Date.now() - checkStart;
95
100
  const message = err instanceof Error ? err.message : String(err);
96
101
  process.stderr.write(`[verification-pipeline] check "${check.name}" threw an unhandled exception: ${message}\n`);
102
+ // Synthesize a structured finding for the thrown error so the
103
+ // retry-prompt injector has something to render. Matches the
104
+ // behavior of the check-level migrations in story 55-2.
97
105
  result = {
98
106
  checkName: check.name,
99
107
  status: 'warn',
100
108
  details: message,
101
109
  duration_ms: elapsed,
110
+ findings: [
111
+ {
112
+ category: 'check-exception',
113
+ severity: 'warn',
114
+ message,
115
+ },
116
+ ],
102
117
  };
103
118
  }
104
119
  checkResults.push(result);
@@ -128,11 +143,13 @@ export class VerificationPipeline {
128
143
  /**
129
144
  * Create a VerificationPipeline pre-loaded with the canonical check set.
130
145
  *
131
- * Canonical Tier A check order (architecture section 3.5):
146
+ * Canonical Tier A check order:
132
147
  * 1. PhantomReviewCheck — story 51-2 (runs first: unreviewed stories skipped)
133
148
  * 2. TrivialOutputCheck — story 51-3
134
149
  * 3. AcceptanceCriteriaEvidenceCheck
135
150
  * 4. BuildCheck — story 51-4
151
+ * 5. RuntimeProbeCheck — Epic 55 Phase 2: runtime behavior gate; runs last
152
+ * in Tier A because probes may depend on built artifacts
136
153
  *
137
154
  * @param bus Typed event bus for verification events.
138
155
  * @param config Optional config (used to forward threshold to TrivialOutputCheck).
@@ -142,7 +159,8 @@ export function createDefaultVerificationPipeline(bus, config) {
142
159
  new PhantomReviewCheck(),
143
160
  new TrivialOutputCheck(config),
144
161
  new AcceptanceCriteriaEvidenceCheck(),
145
- new BuildCheck(), // story 51-4: runs last in Tier A (expensive, 60s worst-case)
162
+ new BuildCheck(), // story 51-4: runs late in Tier A (expensive, 60s worst-case)
163
+ new RuntimeProbeCheck(), // Epic 55 Phase 2: runtime behavior verification
146
164
  ];
147
165
  return new VerificationPipeline(bus, checks);
148
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verification-pipeline.js","sourceRoot":"","sources":["../../src/verification/verification-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-pipeline.js","sourceRoot":"","sources":["../../src/verification/verification-pipeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrate-ai/sdlc",
3
- "version": "0.20.3",
3
+ "version": "0.20.5",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,8 +24,11 @@
24
24
  "node": ">=22.0.0"
25
25
  },
26
26
  "dependencies": {
27
- "@substrate-ai/core": "0.20.3",
27
+ "@substrate-ai/core": "0.20.5",
28
+ "js-yaml": "^4.1.1",
28
29
  "zod": "^4.3.6"
29
30
  },
30
- "devDependencies": {}
31
+ "devDependencies": {
32
+ "@types/js-yaml": "^4.0.9"
33
+ }
31
34
  }