@substrate-ai/sdlc 0.20.29 → 0.20.31

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.
@@ -10,7 +10,12 @@ import type { VerificationCheck, VerificationContext, VerificationResult } from
10
10
  * Extract normalized AC ids from story markdown.
11
11
  *
12
12
  * Supports the BMAD default format (`### AC1:`), explicit references such as
13
- * `AC: #1`, and plain numbered criteria inside the Acceptance Criteria section.
13
+ * `AC: #1`, plain numbered criteria inside the Acceptance Criteria section,
14
+ * and (Story 61-4) bullet-format ACs where each bullet line under the
15
+ * Acceptance Criteria section becomes an implicit AC numbered by position
16
+ * (first bullet → AC1, second → AC2, etc.). Bullet-format inference fires
17
+ * only when no numbered or explicit-ref ACs were found, so projects mixing
18
+ * conventions favor the explicit signal.
14
19
  */
15
20
  export declare function extractAcceptanceCriteriaIds(storyContent: string): string[];
16
21
  export declare class AcceptanceCriteriaEvidenceCheck implements VerificationCheck {
@@ -1 +1 @@
1
- {"version":3,"file":"acceptance-criteria-evidence-check.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/acceptance-criteria-evidence-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AA6CpB;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB3E;AA2BD,qBAAa,+BAAgC,YAAW,iBAAiB;IACvE,QAAQ,CAAC,IAAI,kCAAiC;IAC9C,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAS;IAEtB,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkIrE"}
1
+ {"version":3,"file":"acceptance-criteria-evidence-check.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/acceptance-criteria-evidence-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAqFpB;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAqC3E;AA2BD,qBAAa,+BAAgC,YAAW,iBAAiB;IACvE,QAAQ,CAAC,IAAI,kCAAiC;IAC9C,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAS;IAEtB,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkIrE"}
@@ -32,12 +32,52 @@ function addExplicitAcRefs(text, ids) {
32
32
  }
33
33
  function extractAcceptanceSection(storyContent) {
34
34
  const lines = storyContent.split(/\r?\n/);
35
- const start = lines.findIndex((line) => /^##\s+Acceptance Criteria\s*$/i.test(line.trim()));
35
+ // Story 61-4: section detection now also recognizes the bold-paragraph
36
+ // form `**Acceptance Criteria**:` (with optional trailing colon and
37
+ // text on the same line) in addition to the heading form
38
+ // `## Acceptance Criteria`. The bold form is common in per-epic
39
+ // planning files (substrate's own _bmad-output/planning-artifacts/
40
+ // convention) where the AC section is a paragraph under a `### Story
41
+ // X:` heading rather than its own `##` heading.
42
+ //
43
+ // Boundary mode tracks how the section started so the end-detection can
44
+ // use the right rule: heading-started sections end at next `##` or
45
+ // `### Story`; bold-paragraph sections end at next `**Bold**:` paragraph
46
+ // OR next `##`/`### Story`.
47
+ let mode;
48
+ const start = lines.findIndex((line) => {
49
+ const trimmed = line.trim();
50
+ if (/^##\s+Acceptance Criteria\s*$/i.test(trimmed)) {
51
+ mode = 'heading';
52
+ return true;
53
+ }
54
+ if (/^\*\*Acceptance Criteria\*\*:?/i.test(trimmed)) {
55
+ mode = 'bold';
56
+ return true;
57
+ }
58
+ return false;
59
+ });
36
60
  if (start === -1)
37
61
  return undefined;
38
62
  let end = lines.length;
63
+ // Section ends at the next ## heading OR the next ### Story heading
64
+ // (Story 61-4: per-epic files have ### Story siblings as the natural
65
+ // section boundary; without this, AC-section bleeds into the next
66
+ // story's content). Bold-paragraph sections additionally end at the
67
+ // next `**SomethingElse**:` bold-paragraph marker — that's the natural
68
+ // sibling boundary in the per-epic-file convention.
69
+ const BOLD_PARA_BOUNDARY = /^\*\*[A-Za-z][A-Za-z\s]*\*\*:/;
39
70
  for (let i = start + 1; i < lines.length; i += 1) {
40
- if (/^##\s+\S/.test(lines[i] ?? '')) {
71
+ const line = lines[i] ?? '';
72
+ if (/^##\s+\S/.test(line)) {
73
+ end = i;
74
+ break;
75
+ }
76
+ if (/^###\s+Story\s+/i.test(line)) {
77
+ end = i;
78
+ break;
79
+ }
80
+ if (mode === 'bold' && BOLD_PARA_BOUNDARY.test(line.trim())) {
41
81
  end = i;
42
82
  break;
43
83
  }
@@ -48,7 +88,12 @@ function extractAcceptanceSection(storyContent) {
48
88
  * Extract normalized AC ids from story markdown.
49
89
  *
50
90
  * Supports the BMAD default format (`### AC1:`), explicit references such as
51
- * `AC: #1`, and plain numbered criteria inside the Acceptance Criteria section.
91
+ * `AC: #1`, plain numbered criteria inside the Acceptance Criteria section,
92
+ * and (Story 61-4) bullet-format ACs where each bullet line under the
93
+ * Acceptance Criteria section becomes an implicit AC numbered by position
94
+ * (first bullet → AC1, second → AC2, etc.). Bullet-format inference fires
95
+ * only when no numbered or explicit-ref ACs were found, so projects mixing
96
+ * conventions favor the explicit signal.
52
97
  */
53
98
  export function extractAcceptanceCriteriaIds(storyContent) {
54
99
  const ids = new Set();
@@ -64,6 +109,25 @@ export function extractAcceptanceCriteriaIds(storyContent) {
64
109
  ids.add(id);
65
110
  }
66
111
  }
112
+ // Story 61-4: bullet-format inference. When no explicit AC refs and
113
+ // no numbered criteria were found, count `- ...` bullets in the
114
+ // section as implicit AC1, AC2, AC3 in order. Closes the case
115
+ // surfaced by the 60-12 dispatch where bullet-format ACs in the
116
+ // story file produced a `no numbered acceptance criteria found`
117
+ // warn even though the dev signaled all 9 ACs met.
118
+ if (ids.size === 0) {
119
+ let bulletPosition = 0;
120
+ for (const line of acceptanceSection.split(/\r?\n/)) {
121
+ // Match bullet lines but NOT lines like `**Bold**:` continuations,
122
+ // checkbox lines, or numbered items (already handled above).
123
+ if (/^\s*[-*]\s+\S/.test(line) && !NUMBERED_CRITERION.test(line)) {
124
+ bulletPosition += 1;
125
+ const id = normalizeAcId(String(bulletPosition));
126
+ if (id !== undefined)
127
+ ids.add(id);
128
+ }
129
+ }
130
+ }
67
131
  }
68
132
  return sortAcIds(ids);
69
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"acceptance-criteria-evidence-check.js","sourceRoot":"","sources":["../../../src/verification/checks/acceptance-criteria-evidence-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acceptance-criteria-evidence-check.js","sourceRoot":"","sources":["../../../src/verification/checks/acceptance-criteria-evidence-check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trivial-output-check.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/trivial-output-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAOpB;;;GAGG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAA;AAMnD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,QAAQ,CAAC,IAAI,oBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEtB,MAAM,CAAC,EAAE,wBAAwB;IAIvC,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiDrE"}
1
+ {"version":3,"file":"trivial-output-check.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/trivial-output-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAOpB;;;GAGG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAA;AAMnD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,QAAQ,CAAC,IAAI,oBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEtB,MAAM,CAAC,EAAE,wBAAwB;IAIvC,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA4FrE"}
@@ -61,8 +61,47 @@ export class TrivialOutputCheck {
61
61
  };
62
62
  }
63
63
  const count = context.outputTokenCount;
64
- // AC1 + AC2: below threshold → fail with actionable message
64
+ // AC1 + AC2: below threshold → fail with actionable message.
65
+ //
66
+ // Story 61-2: when devStoryResult signals SUCCESS and files were
67
+ // modified, the low last-dispatch token count is explained by
68
+ // checkpoint recovery (Story 39-5/39-6) — earlier dispatches
69
+ // already produced the work; the recovery dispatch is bookkeeping.
70
+ // Surfaced live by the 60-12 dogfooding re-dispatch (run 4700c6e8,
71
+ // 2026-04-27): dev produced 7 files of correct code across 4
72
+ // dispatches, the 4th (recovery) returned 0 tokens, and the
73
+ // verdict was VERIFICATION_FAILED despite the implementation being
74
+ // demonstrably correct (17 tests pass, build clean, all 9 ACs met).
75
+ //
76
+ // When devStoryResult signals success + nontrivial files_modified,
77
+ // downgrade fail → warn so the low-token signal stays visible
78
+ // (not silently hidden) but doesn't block dispatches that
79
+ // legitimately checkpoint-recovered.
65
80
  if (count < this.threshold) {
81
+ const devResult = context.devStoryResult;
82
+ const recoveredAfterCheckpoint = devResult?.result === 'success' &&
83
+ Array.isArray(devResult.files_modified) &&
84
+ devResult.files_modified.length > 0;
85
+ if (recoveredAfterCheckpoint) {
86
+ const findings = [
87
+ {
88
+ category: 'trivial-output',
89
+ severity: 'warn',
90
+ message: `output token count ${count} is below threshold ${this.threshold} ` +
91
+ `but dev-story signals success with ${devResult.files_modified.length} ` +
92
+ `files modified — likely checkpoint-recovered dispatch (last dispatch ` +
93
+ `was bookkeeping; earlier dispatches did the work). Verdict downgraded ` +
94
+ `to warn so dispatches that legitimately recovered from checkpoint ` +
95
+ `aren't blocked by the trivial-output gate.`,
96
+ },
97
+ ];
98
+ return {
99
+ status: 'warn',
100
+ details: renderFindings(findings),
101
+ duration_ms: Date.now() - start,
102
+ findings,
103
+ };
104
+ }
66
105
  const findings = [
67
106
  {
68
107
  category: 'trivial-output',
@@ -1 +1 @@
1
- {"version":3,"file":"trivial-output-check.js","sourceRoot":"","sources":["../../../src/verification/checks/trivial-output-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAA;AAenD,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,gBAAgB,CAAA;IACvB,IAAI,GAAG,GAAY,CAAA;IAEX,SAAS,CAAQ;IAElC,YAAY,MAAiC;QAC3C,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,sBAAsB,IAAI,gCAAgC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAA4B;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAExB,2CAA2C;QAC3C,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAA0B;gBACtC;oBACE,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,iDAAiD;iBAC3D;aACF,CAAA;YACD,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;gBACjC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC/B,QAAQ;aACT,CAAA;QACH,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAA;QAEtC,4DAA4D;QAC5D,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAA0B;gBACtC;oBACE,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EACL,sBAAsB,KAAK,uBAAuB,IAAI,CAAC,SAAS,EAAE;wBAClE,mCAAmC;iBACtC;aACF,CAAA;YACD,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;gBACjC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC/B,QAAQ;aACT,CAAA;QACH,CAAC;QAED,oCAAoC;QACpC,OAAO;YACL,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,sBAAsB,KAAK,oBAAoB,IAAI,CAAC,SAAS,EAAE;YACxE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC/B,QAAQ,EAAE,EAAE;SACb,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"trivial-output-check.js","sourceRoot":"","sources":["../../../src/verification/checks/trivial-output-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAA;AAenD,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,gBAAgB,CAAA;IACvB,IAAI,GAAG,GAAY,CAAA;IAEX,SAAS,CAAQ;IAElC,YAAY,MAAiC;QAC3C,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,sBAAsB,IAAI,gCAAgC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAA4B;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAExB,2CAA2C;QAC3C,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAA0B;gBACtC;oBACE,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,iDAAiD;iBAC3D;aACF,CAAA;YACD,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;gBACjC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC/B,QAAQ;aACT,CAAA;QACH,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAA;QAEtC,6DAA6D;QAC7D,EAAE;QACF,iEAAiE;QACjE,8DAA8D;QAC9D,6DAA6D;QAC7D,mEAAmE;QACnE,mEAAmE;QACnE,6DAA6D;QAC7D,4DAA4D;QAC5D,mEAAmE;QACnE,oEAAoE;QACpE,EAAE;QACF,mEAAmE;QACnE,8DAA8D;QAC9D,0DAA0D;QAC1D,qCAAqC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAA;YACxC,MAAM,wBAAwB,GAC5B,SAAS,EAAE,MAAM,KAAK,SAAS;gBAC/B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;gBACvC,SAAS,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAA;YAErC,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAA0B;oBACtC;wBACE,QAAQ,EAAE,gBAAgB;wBAC1B,QAAQ,EAAE,MAAM;wBAChB,OAAO,EACL,sBAAsB,KAAK,uBAAuB,IAAI,CAAC,SAAS,GAAG;4BACnE,sCAAsC,SAAS,CAAC,cAAe,CAAC,MAAM,GAAG;4BACzE,uEAAuE;4BACvE,wEAAwE;4BACxE,oEAAoE;4BACpE,4CAA4C;qBAC/C;iBACF,CAAA;gBACD,OAAO;oBACL,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;oBACjC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;oBAC/B,QAAQ;iBACT,CAAA;YACH,CAAC;YAED,MAAM,QAAQ,GAA0B;gBACtC;oBACE,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EACL,sBAAsB,KAAK,uBAAuB,IAAI,CAAC,SAAS,EAAE;wBAClE,mCAAmC;iBACtC;aACF,CAAA;YACD,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;gBACjC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC/B,QAAQ;aACT,CAAA;QACH,CAAC;QAED,oCAAoC;QACpC,OAAO;YACL,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,sBAAsB,KAAK,oBAAoB,IAAI,CAAC,SAAS,EAAE;YACxE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC/B,QAAQ,EAAE,EAAE;SACb,CAAA;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrate-ai/sdlc",
3
- "version": "0.20.29",
3
+ "version": "0.20.31",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,7 +24,7 @@
24
24
  "node": ">=22.0.0"
25
25
  },
26
26
  "dependencies": {
27
- "@substrate-ai/core": "0.20.29",
27
+ "@substrate-ai/core": "0.20.31",
28
28
  "js-yaml": "^4.1.1",
29
29
  "zod": "^4.3.6"
30
30
  },