@substrate-ai/sdlc 0.20.56 → 0.20.58

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 (30) hide show
  1. package/dist/run-model/event-types.d.ts +59 -0
  2. package/dist/run-model/event-types.d.ts.map +1 -0
  3. package/dist/run-model/event-types.js +11 -0
  4. package/dist/run-model/event-types.js.map +1 -0
  5. package/dist/run-model/index.d.ts +1 -0
  6. package/dist/run-model/index.d.ts.map +1 -1
  7. package/dist/verification/checks/index.d.ts +1 -0
  8. package/dist/verification/checks/index.d.ts.map +1 -1
  9. package/dist/verification/checks/index.js +1 -0
  10. package/dist/verification/checks/index.js.map +1 -1
  11. package/dist/verification/checks/runtime-probe-check.d.ts +23 -0
  12. package/dist/verification/checks/runtime-probe-check.d.ts.map +1 -1
  13. package/dist/verification/checks/runtime-probe-check.js +113 -21
  14. package/dist/verification/checks/runtime-probe-check.js.map +1 -1
  15. package/dist/verification/checks/source-ac-shellout-check.d.ts +64 -0
  16. package/dist/verification/checks/source-ac-shellout-check.d.ts.map +1 -0
  17. package/dist/verification/checks/source-ac-shellout-check.js +199 -0
  18. package/dist/verification/checks/source-ac-shellout-check.js.map +1 -0
  19. package/dist/verification/findings.d.ts +17 -0
  20. package/dist/verification/findings.d.ts.map +1 -1
  21. package/dist/verification/findings.js +16 -0
  22. package/dist/verification/findings.js.map +1 -1
  23. package/dist/verification/probes/executor.d.ts +20 -0
  24. package/dist/verification/probes/executor.d.ts.map +1 -1
  25. package/dist/verification/probes/executor.js +31 -1
  26. package/dist/verification/probes/executor.js.map +1 -1
  27. package/dist/verification/verification-pipeline.d.ts.map +1 -1
  28. package/dist/verification/verification-pipeline.js +2 -0
  29. package/dist/verification/verification-pipeline.js.map +1 -1
  30. package/package.json +2 -2
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Event type definitions for dispatcher lifecycle telemetry.
3
+ *
4
+ * These types are the canonical shape for events emitted by the dispatcher
5
+ * and surfaced to OTEL persistence, supervisor, and status CLI.
6
+ *
7
+ * Story 66-4: dispatch:spawnsync-timeout telemetry event emission.
8
+ * obs_2026-05-04_023 fix #3.
9
+ */
10
+ /**
11
+ * Emitted by the dispatcher whenever a dispatch is killed due to a timeout.
12
+ * Fires distinctly for attempt 1 (initial) and attempt 2 (retry at 1.5× the
13
+ * initial timeout), allowing operators to distinguish retryable timeouts from
14
+ * terminal ones and query timeout patterns in OTEL persistence.
15
+ *
16
+ * Story 66-4: closes obs_2026-05-04_023 fix #3 (telemetry event making
17
+ * timeout patterns queryable in OTEL persistence and surfaceable by the
18
+ * supervisor and status CLI).
19
+ *
20
+ * Story 66-5: adds `stderrTail` and `stdoutTail` for forensic capture
21
+ * (obs_2026-05-04_023 fix #4). Fields are optional for backward-compatibility
22
+ * with existing callers that emit the event without tails.
23
+ *
24
+ * Consumed by: OTEL persistence layer, supervisor, status CLI event consumers.
25
+ */
26
+ export interface DispatchSpawnSyncTimeoutEvent {
27
+ type: 'dispatch:spawnsync-timeout';
28
+ /** Story key associated with the dispatch (e.g. '10-1') */
29
+ storyKey: string;
30
+ /** Task type (e.g. 'probe-author', 'dev-story') */
31
+ taskType: string;
32
+ /**
33
+ * Which attempt timed out:
34
+ * 1 = initial attempt (default timeout)
35
+ * 2 = retry attempt (1.5× the initial timeout)
36
+ */
37
+ attemptNumber: 1 | 2;
38
+ /** The configured timeout value that was exceeded (milliseconds) */
39
+ timeoutMs: number;
40
+ /** Wall-clock time from process spawn to kill (milliseconds) */
41
+ elapsedAtKill: number;
42
+ /** Child process PID, if available */
43
+ pid?: number;
44
+ /** ISO 8601 timestamp at the moment the timeout was detected */
45
+ occurredAt: string;
46
+ /**
47
+ * Tail of subprocess stderr output captured at kill time (most recent bytes,
48
+ * up to ~64KB). UTF-8; malformed bytes replaced with U+FFFD.
49
+ * Story 66-5: obs_2026-05-04_023 fix #4.
50
+ */
51
+ stderrTail?: string;
52
+ /**
53
+ * Tail of subprocess stdout output captured at kill time (most recent bytes,
54
+ * up to ~64KB). UTF-8; malformed bytes replaced with U+FFFD.
55
+ * Story 66-5: obs_2026-05-04_023 fix #4.
56
+ */
57
+ stdoutTail?: string;
58
+ }
59
+ //# sourceMappingURL=event-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../src/run-model/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,4BAA4B,CAAA;IAClC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAA;IAChB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,aAAa,EAAE,CAAC,GAAG,CAAC,CAAA;IACpB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAA;IACrB,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Event type definitions for dispatcher lifecycle telemetry.
3
+ *
4
+ * These types are the canonical shape for events emitted by the dispatcher
5
+ * and surfaced to OTEL persistence, supervisor, and status CLI.
6
+ *
7
+ * Story 66-4: dispatch:spawnsync-timeout telemetry event emission.
8
+ * obs_2026-05-04_023 fix #3.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=event-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../src/run-model/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -24,4 +24,5 @@ export { StoredDevStorySignalsSchema } from './dev-story-signals.js';
24
24
  export type { StoredDevStorySignals } from './dev-story-signals.js';
25
25
  export { SupervisorLock } from './supervisor-lock.js';
26
26
  export type { SupervisorLockOptions } from './supervisor-lock.js';
27
+ export type { DispatchSpawnSyncTimeoutEvent } from './event-types.js';
27
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run-model/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,YAAY,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,QAAQ,GACT,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAChF,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKzE,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,+BAA+B,EAC/B,kCAAkC,GACnC,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAC5F,YAAY,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAInF,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run-model/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,YAAY,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,QAAQ,GACT,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAChF,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKzE,OAAO,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,+BAA+B,EAC/B,kCAAkC,GACnC,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAC5F,YAAY,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAInF,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAGjE,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA"}
@@ -15,4 +15,5 @@ export { AcceptanceCriteriaEvidenceCheck, extractAcceptanceCriteriaIds } from '.
15
15
  export { BuildCheck, BUILD_CHECK_TIMEOUT_MS, detectBuildCommand } from './build-check.js';
16
16
  export { RuntimeProbeCheck } from './runtime-probe-check.js';
17
17
  export type { RuntimeProbeExecutors } from './runtime-probe-check.js';
18
+ export { SourceAcShelloutCheck, runShelloutCheck, scanFile, isCommentLine, isInStringLiteralContext, } from './source-ac-shellout-check.js';
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAA;AACvH,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAA;AACvH,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,wBAAwB,GACzB,MAAM,+BAA+B,CAAA"}
@@ -14,4 +14,5 @@ export { TrivialOutputCheck, DEFAULT_TRIVIAL_OUTPUT_THRESHOLD } from './trivial-
14
14
  export { AcceptanceCriteriaEvidenceCheck, extractAcceptanceCriteriaIds } from './acceptance-criteria-evidence-check.js';
15
15
  export { BuildCheck, BUILD_CHECK_TIMEOUT_MS, detectBuildCommand } from './build-check.js';
16
16
  export { RuntimeProbeCheck } from './runtime-probe-check.js';
17
+ export { SourceAcShelloutCheck, runShelloutCheck, scanFile, isCommentLine, isInStringLiteralContext, } from './source-ac-shellout-check.js';
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/verification/checks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAA;AACvH,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/verification/checks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAA;AACvH,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,wBAAwB,GACzB,MAAM,+BAA+B,CAAA"}
@@ -49,6 +49,29 @@ export declare function detectsEventDrivenAC(sourceEpicContent: string): boolean
49
49
  * gate uses `||`). No double-dispatch.
50
50
  */
51
51
  export declare function detectsStateIntegratingAC(sourceContent: string): boolean;
52
+ /**
53
+ * Detects whether a probe's combined output (stderr + stdout) contains an
54
+ * unrecognized placeholder token that was not substituted before execution.
55
+ *
56
+ * Two shapes are handled:
57
+ *
58
+ * Shape 1 — command-line tool "no such file" with placeholder argument:
59
+ * `grep: <REPO_ROOT>: No such file or directory`
60
+ * `bash: <CONFIG_DIR>: command not found`
61
+ * Regex (multiline): `/^[\w]*:\s*(<[A-Z_]+>):?/m`
62
+ *
63
+ * Shape 2 — shell syntax error adjacent to a placeholder token:
64
+ * Combined output contains `Syntax error: "&&" unexpected` AND a `<TOKEN>`.
65
+ *
66
+ * Returns the captured `<TOKEN>` string if the placeholder leakage pattern
67
+ * fires, or `null` if no placeholder is detected (allowing the existing
68
+ * `CATEGORY_FAIL` path to proceed unmodified).
69
+ *
70
+ * Exported (mirrors the export pattern of `detectNegationContextLines`,
71
+ * `detectDependencyContextLines`, `detectsEventDrivenAC`) so tests and
72
+ * downstream consumers can call it directly.
73
+ */
74
+ export declare function detectPlaceholderLeakage(output: string): string | null;
52
75
  /**
53
76
  * Per-sandbox executors, injected via constructor so tests (and future
54
77
  * twin integration in Phase 3) can swap implementations without touching
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-probe-check.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/runtime-probe-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAA;AA+F3B;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAKvE;AA0FD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CASxE;AAkBD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IACnD;wEACoE;IACpE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAAA;CACjE;AAWD,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,QAAQ,CAAC,IAAI,oBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAEtC,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAOhD,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA4MrE"}
1
+ {"version":3,"file":"runtime-probe-check.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/runtime-probe-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAA;AAyG3B;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAKvE;AA0FD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CASxE;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBtE;AAkBD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IACnD;wEACoE;IACpE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAAA;CACjE;AAWD,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,QAAQ,CAAC,IAAI,oBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAEtC,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAOhD,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA8PrE"}
@@ -74,6 +74,16 @@ const CATEGORY_MISSING_TRIGGER = 'runtime-probe-missing-production-trigger';
74
74
  * probes are present but don't invoke a production trigger for event-driven ACs).
75
75
  */
76
76
  const CATEGORY_MISSING_PROBES_DECLARED = 'runtime-probe-missing-declared-probes';
77
+ /**
78
+ * Story 66-7: probe exited non-zero AND stderr/stdout contained a placeholder
79
+ * token that was never substituted before execution (e.g. `<REPO_ROOT>`,
80
+ * `<CONFIG_DIR>`, `<UNKNOWN_VAR>`). Distinct from `runtime-probe-fail`
81
+ * (genuine runtime failure) so operators and probe-author quality dashboards
82
+ * can carve placeholder substitution failures out for cleaner triage and
83
+ * metrics. Severity: `error` (matches `runtime-probe-fail` baseline).
84
+ * Closes obs_2026-05-04_024 fix #3.
85
+ */
86
+ const CATEGORY_PLACEHOLDER_NOT_SUBSTITUTED = 'runtime-probe-placeholder-not-substituted';
77
87
  // ---------------------------------------------------------------------------
78
88
  // Story 60-11: event-driven trigger heuristic
79
89
  // ---------------------------------------------------------------------------
@@ -231,6 +241,46 @@ export function detectsStateIntegratingAC(sourceContent) {
231
241
  }
232
242
  return false;
233
243
  }
244
+ // ---------------------------------------------------------------------------
245
+ // Story 66-7: placeholder-leakage detection helper
246
+ // ---------------------------------------------------------------------------
247
+ /**
248
+ * Detects whether a probe's combined output (stderr + stdout) contains an
249
+ * unrecognized placeholder token that was not substituted before execution.
250
+ *
251
+ * Two shapes are handled:
252
+ *
253
+ * Shape 1 — command-line tool "no such file" with placeholder argument:
254
+ * `grep: <REPO_ROOT>: No such file or directory`
255
+ * `bash: <CONFIG_DIR>: command not found`
256
+ * Regex (multiline): `/^[\w]*:\s*(<[A-Z_]+>):?/m`
257
+ *
258
+ * Shape 2 — shell syntax error adjacent to a placeholder token:
259
+ * Combined output contains `Syntax error: "&&" unexpected` AND a `<TOKEN>`.
260
+ *
261
+ * Returns the captured `<TOKEN>` string if the placeholder leakage pattern
262
+ * fires, or `null` if no placeholder is detected (allowing the existing
263
+ * `CATEGORY_FAIL` path to proceed unmodified).
264
+ *
265
+ * Exported (mirrors the export pattern of `detectNegationContextLines`,
266
+ * `detectDependencyContextLines`, `detectsEventDrivenAC`) so tests and
267
+ * downstream consumers can call it directly.
268
+ */
269
+ export function detectPlaceholderLeakage(output) {
270
+ // Shape 1: command-line tool error line with placeholder argument
271
+ const shape1Match = /^[\w]*:\s*(<[A-Z_]+>):?/m.exec(output);
272
+ if (shape1Match !== null) {
273
+ return shape1Match[1] ?? null;
274
+ }
275
+ // Shape 2: shell syntax error adjacent to a placeholder token
276
+ if (output.includes('Syntax error: "&&" unexpected')) {
277
+ const tokenMatch = /(<[A-Z_]+>)/.exec(output);
278
+ if (tokenMatch !== null) {
279
+ return tokenMatch[1] ?? null;
280
+ }
281
+ }
282
+ return null;
283
+ }
234
284
  /**
235
285
  * Returns true if any probe's command line invokes a known production trigger.
236
286
  */
@@ -387,34 +437,76 @@ export class RuntimeProbeCheck {
387
437
  if (result.outcome === 'pass') {
388
438
  continue;
389
439
  }
390
- const category = result.outcome === 'timeout'
391
- ? CATEGORY_TIMEOUT
392
- : result.assertionFailures !== undefined
393
- ? CATEGORY_ASSERTION_FAIL
394
- : result.errorShapeIndicators !== undefined
395
- ? CATEGORY_ERROR_RESPONSE
396
- : CATEGORY_FAIL;
397
440
  const descriptor = probe.description ? ` (${probe.description})` : '';
398
- let message;
399
441
  if (result.outcome === 'timeout') {
400
- message = `probe "${probe.name}"${descriptor} timed out after ${result.durationMs}ms`;
442
+ findings.push({
443
+ category: CATEGORY_TIMEOUT,
444
+ severity: 'error',
445
+ message: `probe "${probe.name}"${descriptor} timed out after ${result.durationMs}ms`,
446
+ command: result.command,
447
+ stdoutTail: result.stdoutTail,
448
+ stderrTail: result.stderrTail,
449
+ durationMs: result.durationMs,
450
+ _authoredBy: probe._authoredBy ?? 'create-story-ac-transfer',
451
+ });
452
+ continue;
401
453
  }
402
- else if (result.assertionFailures !== undefined) {
403
- message =
404
- `probe "${probe.name}"${descriptor} exit 0 but stdout assertion failed: ` +
405
- result.assertionFailures.join('; ');
454
+ if (result.assertionFailures !== undefined) {
455
+ findings.push({
456
+ category: CATEGORY_ASSERTION_FAIL,
457
+ severity: 'error',
458
+ message: `probe "${probe.name}"${descriptor} exit 0 but stdout assertion failed: ` +
459
+ result.assertionFailures.join('; '),
460
+ command: result.command,
461
+ ...(result.exitCode !== undefined ? { exitCode: result.exitCode } : {}),
462
+ stdoutTail: result.stdoutTail,
463
+ stderrTail: result.stderrTail,
464
+ durationMs: result.durationMs,
465
+ _authoredBy: probe._authoredBy ?? 'create-story-ac-transfer',
466
+ });
467
+ continue;
406
468
  }
407
- else if (result.errorShapeIndicators !== undefined) {
408
- message =
409
- `probe "${probe.name}"${descriptor} exit 0 but response contained error envelope: ` +
469
+ if (result.errorShapeIndicators !== undefined) {
470
+ findings.push({
471
+ category: CATEGORY_ERROR_RESPONSE,
472
+ severity: 'error',
473
+ message: `probe "${probe.name}"${descriptor} exit 0 but response contained error envelope: ` +
410
474
  result.errorShapeIndicators.join('; ') +
411
475
  ` — the tool returned an error-shaped JSON response despite a clean exit code. ` +
412
476
  `This is structural evidence the implementation didn't actually work; ` +
413
477
  `add an explicit \`expect_stdout_no_regex\` assertion to make the failure ` +
414
- `surface earlier in author-controlled form.`;
478
+ `surface earlier in author-controlled form.`,
479
+ command: result.command,
480
+ ...(result.exitCode !== undefined ? { exitCode: result.exitCode } : {}),
481
+ stdoutTail: result.stdoutTail,
482
+ stderrTail: result.stderrTail,
483
+ durationMs: result.durationMs,
484
+ _authoredBy: probe._authoredBy ?? 'create-story-ac-transfer',
485
+ });
486
+ continue;
415
487
  }
416
- else {
417
- message = `probe "${probe.name}"${descriptor} failed with exit ${result.exitCode ?? 'unknown'}`;
488
+ // Story 66-7: check for placeholder leakage BEFORE emitting CATEGORY_FAIL.
489
+ // Combine stderrTail and stdoutTail for detection; if a placeholder token
490
+ // is found, emit CATEGORY_PLACEHOLDER_NOT_SUBSTITUTED instead.
491
+ // CATEGORY_ERROR_RESPONSE and CATEGORY_ASSERTION_FAIL are already handled
492
+ // above (exit-0 paths), so placeholder detection only applies here in the
493
+ // exit-non-zero path. Closes obs_2026-05-04_024 fix #3.
494
+ const outputForDetection = `${result.stderrTail ?? ''}\n${result.stdoutTail ?? ''}`;
495
+ const placeholderToken = detectPlaceholderLeakage(outputForDetection);
496
+ if (placeholderToken !== null) {
497
+ findings.push({
498
+ category: CATEGORY_PLACEHOLDER_NOT_SUBSTITUTED,
499
+ severity: 'error',
500
+ message: `Probe failed: unrecognized placeholder token "${placeholderToken}" was not substituted before execution`,
501
+ command: result.command,
502
+ ...(result.exitCode !== undefined ? { exitCode: result.exitCode } : {}),
503
+ stdoutTail: result.stdoutTail,
504
+ stderrTail: result.stderrTail,
505
+ durationMs: result.durationMs,
506
+ unrecognizedPlaceholder: placeholderToken,
507
+ _authoredBy: probe._authoredBy ?? 'create-story-ac-transfer',
508
+ });
509
+ continue;
418
510
  }
419
511
  // Story 60-15: copy `_authoredBy` from the probe onto the finding so
420
512
  // downstream consumers (rollupProbeAuthorMetrics, byAuthor breakdown
@@ -422,9 +514,9 @@ export class RuntimeProbeCheck {
422
514
  // Probes without the field default to `'create-story-ac-transfer'`
423
515
  // — pre-60-15 manifests + the legacy create-story AC-transfer path.
424
516
  findings.push({
425
- category,
517
+ category: CATEGORY_FAIL,
426
518
  severity: 'error',
427
- message,
519
+ message: `probe "${probe.name}"${descriptor} failed with exit ${result.exitCode ?? 'unknown'}`,
428
520
  command: result.command,
429
521
  ...(result.exitCode !== undefined ? { exitCode: result.exitCode } : {}),
430
522
  stdoutTail: result.stdoutTail,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-probe-check.js","sourceRoot":"","sources":["../../../src/verification/checks/runtime-probe-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-probe-check.js","sourceRoot":"","sources":["../../../src/verification/checks/runtime-probe-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * SourceAcShelloutCheck — Story 67-3.
3
+ *
4
+ * Tier A static-analysis check that detects bare `npx <package>` invocations
5
+ * (without `--no-install`) in story-modified source files.
6
+ *
7
+ * Motivation: obs_2026-05-03_023 (dependency-confusion attack vector). When
8
+ * `npx <package>` is invoked without `--no-install`, npm silently falls back
9
+ * to the public registry if the package binary is not locally installed —
10
+ * making the binary name a potential dependency-confusion target.
11
+ *
12
+ * This check fires only when the `npx <package>` pattern appears inside a
13
+ * string-literal context (single-quoted, double-quoted, or template-literal),
14
+ * which is the canonical shape of shell-out code in TypeScript/JavaScript.
15
+ * Bare prose in comments is excluded.
16
+ */
17
+ import type { VerificationCheck, VerificationContext, VerificationResult } from '../types.js';
18
+ /**
19
+ * Returns `true` when the line (after trimming leading whitespace) starts with
20
+ * a single-line comment marker (`//` or `#`). Block comments (/* … *\/) are not
21
+ * matched here — they are handled by the string-literal context check.
22
+ */
23
+ export declare function isCommentLine(line: string): boolean;
24
+ /**
25
+ * Returns `true` when `matchIndex` falls inside a single-quoted (`'...'`),
26
+ * double-quoted (`"..."`), or template-literal (`` `...` ``) region of the line,
27
+ * OR when the line is a shebang (`#!...`).
28
+ *
29
+ * Implementation: scan character-by-character from index 0, toggling
30
+ * `inSingle`, `inDouble`, `inTemplate` flags at unescaped quote characters.
31
+ * An escaped quote is one where the immediately preceding character is `\`.
32
+ * (Note: this is a heuristic — it does not handle `\\` or complex escape
33
+ * sequences correctly. For a static-analysis severity:warn heuristic, the
34
+ * simplification is acceptable.)
35
+ */
36
+ export declare function isInStringLiteralContext(line: string, matchIndex: number): boolean;
37
+ /**
38
+ * Reads the file at `absolutePath` and returns every line/match pair where
39
+ * a bare `npx <name>` (without `--no-install`) appears inside a string-literal
40
+ * context on a non-comment line.
41
+ *
42
+ * Returns 1-indexed line numbers.
43
+ */
44
+ export declare function scanFile(absolutePath: string): Array<{
45
+ lineNum: number;
46
+ name: string;
47
+ }>;
48
+ /**
49
+ * Standalone function implementing the shellout check logic.
50
+ * Exported separately so tests can call it directly without instantiating the class.
51
+ */
52
+ export declare function runShelloutCheck(context: VerificationContext): Promise<VerificationResult>;
53
+ /**
54
+ * VerificationCheck class for the shellout static-analysis gate.
55
+ *
56
+ * name = 'source-ac-shellout'
57
+ * tier = 'A' (fast — file I/O only, no LLM, no subprocess except optional git fallback)
58
+ */
59
+ export declare class SourceAcShelloutCheck implements VerificationCheck {
60
+ readonly name = "source-ac-shellout";
61
+ readonly tier: "A";
62
+ run(context: VerificationContext): Promise<VerificationResult>;
63
+ }
64
+ //# sourceMappingURL=source-ac-shellout-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-ac-shellout-check.d.ts","sourceRoot":"","sources":["../../../src/verification/checks/source-ac-shellout-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAapB;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAwBlF;AAMD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAwBvF;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CA+E7B;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,QAAQ,CAAC,IAAI,wBAAuB;IACpC,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAS;IAEtB,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGrE"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * SourceAcShelloutCheck — Story 67-3.
3
+ *
4
+ * Tier A static-analysis check that detects bare `npx <package>` invocations
5
+ * (without `--no-install`) in story-modified source files.
6
+ *
7
+ * Motivation: obs_2026-05-03_023 (dependency-confusion attack vector). When
8
+ * `npx <package>` is invoked without `--no-install`, npm silently falls back
9
+ * to the public registry if the package binary is not locally installed —
10
+ * making the binary name a potential dependency-confusion target.
11
+ *
12
+ * This check fires only when the `npx <package>` pattern appears inside a
13
+ * string-literal context (single-quoted, double-quoted, or template-literal),
14
+ * which is the canonical shape of shell-out code in TypeScript/JavaScript.
15
+ * Bare prose in comments is excluded.
16
+ */
17
+ import { execSync } from 'child_process';
18
+ import * as fs from 'fs';
19
+ import * as path from 'path';
20
+ import { CATEGORY_SHELLOUT_NPX_FALLBACK, renderFindings } from '../findings.js';
21
+ // ---------------------------------------------------------------------------
22
+ // Detection pattern
23
+ // ---------------------------------------------------------------------------
24
+ /** Matches `npx <name>` but NOT `npx --no-install <name>`. */
25
+ const NPX_PATTERN = /npx\s+(?!--no-install)([a-zA-Z0-9_@\-/]+)/g;
26
+ // ---------------------------------------------------------------------------
27
+ // Line-level classification helpers
28
+ // ---------------------------------------------------------------------------
29
+ /**
30
+ * Returns `true` when the line (after trimming leading whitespace) starts with
31
+ * a single-line comment marker (`//` or `#`). Block comments (/* … *\/) are not
32
+ * matched here — they are handled by the string-literal context check.
33
+ */
34
+ export function isCommentLine(line) {
35
+ const trimmed = line.trimStart();
36
+ return trimmed.startsWith('//') || trimmed.startsWith('#');
37
+ }
38
+ /**
39
+ * Returns `true` when `matchIndex` falls inside a single-quoted (`'...'`),
40
+ * double-quoted (`"..."`), or template-literal (`` `...` ``) region of the line,
41
+ * OR when the line is a shebang (`#!...`).
42
+ *
43
+ * Implementation: scan character-by-character from index 0, toggling
44
+ * `inSingle`, `inDouble`, `inTemplate` flags at unescaped quote characters.
45
+ * An escaped quote is one where the immediately preceding character is `\`.
46
+ * (Note: this is a heuristic — it does not handle `\\` or complex escape
47
+ * sequences correctly. For a static-analysis severity:warn heuristic, the
48
+ * simplification is acceptable.)
49
+ */
50
+ export function isInStringLiteralContext(line, matchIndex) {
51
+ // Shebang lines are shell string context
52
+ if (line.trimStart().startsWith('#!'))
53
+ return true;
54
+ let inSingle = false;
55
+ let inDouble = false;
56
+ let inTemplate = false;
57
+ for (let i = 0; i < matchIndex; i++) {
58
+ const char = line[i];
59
+ const escaped = i > 0 && line[i - 1] === '\\';
60
+ if (!escaped) {
61
+ if (char === "'" && !inDouble && !inTemplate) {
62
+ inSingle = !inSingle;
63
+ }
64
+ else if (char === '"' && !inSingle && !inTemplate) {
65
+ inDouble = !inDouble;
66
+ }
67
+ else if (char === '`' && !inSingle && !inDouble) {
68
+ inTemplate = !inTemplate;
69
+ }
70
+ }
71
+ }
72
+ return inSingle || inDouble || inTemplate;
73
+ }
74
+ // ---------------------------------------------------------------------------
75
+ // File scanner
76
+ // ---------------------------------------------------------------------------
77
+ /**
78
+ * Reads the file at `absolutePath` and returns every line/match pair where
79
+ * a bare `npx <name>` (without `--no-install`) appears inside a string-literal
80
+ * context on a non-comment line.
81
+ *
82
+ * Returns 1-indexed line numbers.
83
+ */
84
+ export function scanFile(absolutePath) {
85
+ const content = fs.readFileSync(absolutePath, 'utf-8');
86
+ const lines = content.split('\n');
87
+ const results = [];
88
+ for (let i = 0; i < lines.length; i++) {
89
+ const line = lines[i];
90
+ if (line === undefined)
91
+ continue;
92
+ if (isCommentLine(line))
93
+ continue;
94
+ // Reset regex state for each line
95
+ NPX_PATTERN.lastIndex = 0;
96
+ let match;
97
+ // Use a fresh copy of the regex for exec (avoids global state issues)
98
+ const linePattern = new RegExp(NPX_PATTERN.source, 'g');
99
+ while ((match = linePattern.exec(line)) !== null) {
100
+ const name = match[1];
101
+ if (name !== undefined && isInStringLiteralContext(line, match.index)) {
102
+ results.push({ lineNum: i + 1, name });
103
+ }
104
+ }
105
+ }
106
+ return results;
107
+ }
108
+ // ---------------------------------------------------------------------------
109
+ // Check implementation
110
+ // ---------------------------------------------------------------------------
111
+ /**
112
+ * Standalone function implementing the shellout check logic.
113
+ * Exported separately so tests can call it directly without instantiating the class.
114
+ */
115
+ export async function runShelloutCheck(context) {
116
+ const start = Date.now();
117
+ const findings = [];
118
+ // --- Resolve modified files ---
119
+ let modifiedFiles = context.devStoryResult?.files_modified ?? [];
120
+ if (modifiedFiles.length === 0) {
121
+ // Fallback: git diff HEAD~1
122
+ try {
123
+ const output = execSync('git diff --name-only HEAD~1', {
124
+ cwd: context.workingDir,
125
+ encoding: 'utf-8',
126
+ });
127
+ modifiedFiles = output
128
+ .trim()
129
+ .split('\n')
130
+ .filter((f) => f.length > 0);
131
+ }
132
+ catch {
133
+ // Git unavailable or no prior commit — skip check
134
+ return {
135
+ status: 'pass',
136
+ details: 'source-ac-shellout: no modified files available — skipping check',
137
+ duration_ms: Date.now() - start,
138
+ findings: [],
139
+ };
140
+ }
141
+ }
142
+ // --- Filter out .md files ---
143
+ const filesToCheck = modifiedFiles.filter((f) => !f.endsWith('.md'));
144
+ if (filesToCheck.length === 0) {
145
+ return {
146
+ status: 'pass',
147
+ details: 'source-ac-shellout: no non-.md modified files — skipping check',
148
+ duration_ms: Date.now() - start,
149
+ findings: [],
150
+ };
151
+ }
152
+ // --- Scan each file ---
153
+ for (const relPath of filesToCheck) {
154
+ const absPath = path.join(context.workingDir, relPath);
155
+ let matches;
156
+ try {
157
+ matches = scanFile(absPath);
158
+ }
159
+ catch {
160
+ // File unreadable or missing — skip silently
161
+ continue;
162
+ }
163
+ for (const { lineNum, name } of matches) {
164
+ findings.push({
165
+ category: CATEGORY_SHELLOUT_NPX_FALLBACK,
166
+ severity: 'warn',
167
+ message: `npx fallback detected in ${relPath}:${lineNum}: "npx ${name}" — bare \`npx <package>\` without \`--no-install\` falls through to the public npm registry on first use. If \`<package>\` isn't a registered binary in your dev dependencies, this is a dependency-confusion vector. Use absolute path or \`npx --no-install <package>\` instead.`,
168
+ });
169
+ }
170
+ }
171
+ // --- Derive status ---
172
+ const status = findings.some((f) => f.severity === 'error')
173
+ ? 'fail'
174
+ : findings.some((f) => f.severity === 'warn')
175
+ ? 'warn'
176
+ : 'pass';
177
+ return {
178
+ status,
179
+ details: findings.length > 0
180
+ ? renderFindings(findings)
181
+ : 'source-ac-shellout: no bare npx fallback patterns detected',
182
+ duration_ms: Date.now() - start,
183
+ findings,
184
+ };
185
+ }
186
+ /**
187
+ * VerificationCheck class for the shellout static-analysis gate.
188
+ *
189
+ * name = 'source-ac-shellout'
190
+ * tier = 'A' (fast — file I/O only, no LLM, no subprocess except optional git fallback)
191
+ */
192
+ export class SourceAcShelloutCheck {
193
+ name = 'source-ac-shellout';
194
+ tier = 'A';
195
+ async run(context) {
196
+ return runShelloutCheck(context);
197
+ }
198
+ }
199
+ //# sourceMappingURL=source-ac-shellout-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-ac-shellout-check.js","sourceRoot":"","sources":["../../../src/verification/checks/source-ac-shellout-check.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,24 @@ export interface VerificationFinding {
57
57
  * and the catch-rate KPI's per-author attribution.
58
58
  */
59
59
  _authoredBy?: 'probe-author' | 'create-story-ac-transfer';
60
+ /**
61
+ * Story 66-7: when this finding has category
62
+ * `runtime-probe-placeholder-not-substituted`, carries the escaped
63
+ * placeholder token (e.g. `<UNKNOWN_VAR>`) that was not substituted
64
+ * before probe execution. Absent for all other finding categories.
65
+ */
66
+ unrecognizedPlaceholder?: string;
60
67
  }
68
+ /**
69
+ * source-ac-shellout-npx-fallback — Story 67-3, obs_2026-05-03_023 fix #3.
70
+ *
71
+ * Severity: warn. Emitted by SourceAcShelloutCheck when a bare `npx <package>`
72
+ * invocation (without `--no-install`) is detected in a story-modified source file.
73
+ * A bare `npx <package>` without `--no-install` falls through to the public npm
74
+ * registry on first use if the package binary is not locally installed —
75
+ * a dependency-confusion attack vector.
76
+ */
77
+ export declare const CATEGORY_SHELLOUT_NPX_FALLBACK: "source-ac-shellout-npx-fallback";
61
78
  /**
62
79
  * Render a list of findings into the multi-line human-readable string that
63
80
  * populates VerificationResult.details. One line per finding:
@@ -1 +1 @@
1
- {"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/verification/findings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;;;;;GAQG;AACH,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,QAAQ,EAAE,2BAA2B,CAAA;IACrC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,cAAc,GAAG,0BAA0B,CAAA;CAC1D;AAYD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAKtE"}
1
+ {"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/verification/findings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;;;;;GAQG;AACH,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,QAAQ,EAAE,2BAA2B,CAAA;IACrC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,cAAc,GAAG,0BAA0B,CAAA;IACzD;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC;AAgBD;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,EACzC,iCAA0C,CAAA;AAM5C;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAKtE"}
@@ -20,6 +20,22 @@ const SEVERITY_PREFIX = {
20
20
  warn: 'WARN',
21
21
  info: 'INFO',
22
22
  };
23
+ // ---------------------------------------------------------------------------
24
+ // Story-allocated finding categories (stable cross-file identifiers)
25
+ // ---------------------------------------------------------------------------
26
+ /**
27
+ * source-ac-shellout-npx-fallback — Story 67-3, obs_2026-05-03_023 fix #3.
28
+ *
29
+ * Severity: warn. Emitted by SourceAcShelloutCheck when a bare `npx <package>`
30
+ * invocation (without `--no-install`) is detected in a story-modified source file.
31
+ * A bare `npx <package>` without `--no-install` falls through to the public npm
32
+ * registry on first use if the package binary is not locally installed —
33
+ * a dependency-confusion attack vector.
34
+ */
35
+ export const CATEGORY_SHELLOUT_NPX_FALLBACK = 'source-ac-shellout-npx-fallback';
36
+ // ---------------------------------------------------------------------------
37
+ // Rendering
38
+ // ---------------------------------------------------------------------------
23
39
  /**
24
40
  * Render a list of findings into the multi-line human-readable string that
25
41
  * populates VerificationResult.details. One line per finding:
@@ -1 +1 @@
1
- {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/verification/findings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsDH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,eAAe,GAAgD;IACnE,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,QAA+B;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACpC,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SACzE,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/verification/findings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA6DH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,eAAe,GAAgD;IACnE,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAA;AAED,8EAA8E;AAC9E,qEAAqE;AACrE,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GACzC,iCAA0C,CAAA;AAE5C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,QAA+B;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACpC,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SACzE,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC"}
@@ -12,6 +12,26 @@
12
12
  * without routing through this module.
13
13
  */
14
14
  import { type ProbeResult, type RuntimeProbe } from './types.js';
15
+ /**
16
+ * Story 66-6 / obs_2026-05-04_024 fix #1:
17
+ * Substitute `<REPO_ROOT>` and `$REPO_ROOT` placeholder tokens in a probe
18
+ * command string with the actual project root path before shell invocation.
19
+ *
20
+ * Rules:
21
+ * - Every literal `<REPO_ROOT>` substring is replaced with `projectRoot`.
22
+ * - Every `$REPO_ROOT` token that is NOT immediately followed by an
23
+ * alphanumeric character or underscore is replaced with `projectRoot`
24
+ * (so `$REPO_ROOT_EXTRA` is left untouched).
25
+ * - All other `<...>` placeholders (e.g. `<UNKNOWN_PLACEHOLDER>`) are
26
+ * passed through unchanged — Story 66-7 handles the unknown-placeholder
27
+ * finding category separately.
28
+ * - Probes without any placeholder are returned byte-for-byte identical.
29
+ *
30
+ * Backward-compat note: any existing probe command that contained the
31
+ * literal text `<REPO_ROOT>` (none expected in practice) will now have that
32
+ * text replaced with the project root path. This is the intended behavior.
33
+ */
34
+ export declare function substituteRuntimePlaceholders(command: string, projectRoot: string): string;
15
35
  /** Options for host execution. Injected primarily to make tests deterministic. */
16
36
  export interface HostExecuteOptions {
17
37
  /** Working directory for the spawned shell. Defaults to process.cwd(). */
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/verification/probes/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AA4HnB,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CA4GtB"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/verification/probes/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAWnB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,MAAM,CAMR;AAmHD,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CAiHtB"}
@@ -20,6 +20,32 @@ import { DEFAULT_PROBE_TIMEOUT_MS, PROBE_TAIL_BYTES, } from './types.js';
20
20
  function tail(text, bytes = PROBE_TAIL_BYTES) {
21
21
  return text.length <= bytes ? text : text.slice(text.length - bytes);
22
22
  }
23
+ /**
24
+ * Story 66-6 / obs_2026-05-04_024 fix #1:
25
+ * Substitute `<REPO_ROOT>` and `$REPO_ROOT` placeholder tokens in a probe
26
+ * command string with the actual project root path before shell invocation.
27
+ *
28
+ * Rules:
29
+ * - Every literal `<REPO_ROOT>` substring is replaced with `projectRoot`.
30
+ * - Every `$REPO_ROOT` token that is NOT immediately followed by an
31
+ * alphanumeric character or underscore is replaced with `projectRoot`
32
+ * (so `$REPO_ROOT_EXTRA` is left untouched).
33
+ * - All other `<...>` placeholders (e.g. `<UNKNOWN_PLACEHOLDER>`) are
34
+ * passed through unchanged — Story 66-7 handles the unknown-placeholder
35
+ * finding category separately.
36
+ * - Probes without any placeholder are returned byte-for-byte identical.
37
+ *
38
+ * Backward-compat note: any existing probe command that contained the
39
+ * literal text `<REPO_ROOT>` (none expected in practice) will now have that
40
+ * text replaced with the project root path. This is the intended behavior.
41
+ */
42
+ export function substituteRuntimePlaceholders(command, projectRoot) {
43
+ // Replace all occurrences of literal `<REPO_ROOT>`
44
+ let result = command.replaceAll('<REPO_ROOT>', projectRoot);
45
+ // Replace `$REPO_ROOT` only when NOT followed by [A-Za-z0-9_]
46
+ result = result.replace(/\$REPO_ROOT(?=[^A-Za-z0-9_]|$)/g, projectRoot);
47
+ return result;
48
+ }
23
49
  /**
24
50
  * Story 60-4: evaluate `expect_stdout_no_regex` and `expect_stdout_regex`
25
51
  * patterns against the captured stdout. Runs against the full (un-tailed)
@@ -135,11 +161,15 @@ export function executeProbeOnHost(probe, options = {}) {
135
161
  const cwd = options.cwd ?? process.cwd();
136
162
  const env = options.env ?? process.env;
137
163
  const start = Date.now();
164
+ // Story 66-6: substitute <REPO_ROOT> / $REPO_ROOT placeholders before
165
+ // passing the command to the shell so probe authors can use repo-relative
166
+ // paths without hard-coding the operator's file-system layout.
167
+ const resolvedCommand = substituteRuntimePlaceholders(probe.command, cwd);
138
168
  return new Promise((resolve) => {
139
169
  let stdout = '';
140
170
  let stderr = '';
141
171
  let settled = false;
142
- const child = spawn(probe.command, [], {
172
+ const child = spawn(resolvedCommand, [], {
143
173
  cwd,
144
174
  env,
145
175
  detached: true,
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/verification/probes/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/verification/probes/executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verification-pipeline.d.ts","sourceRoot":"","sources":["../../src/verification/verification-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AA6BhF;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAElD;;;OAGG;gBACS,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAE,iBAAiB,EAAO;IAO5E;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIxC;;;;;;;;;;OAUG;IACG,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,GAAE,GAAG,GAAG,GAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAqE7F;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,EAC9B,MAAM,CAAC,EAAE,wBAAwB,GAChC,oBAAoB,CAUtB"}
1
+ {"version":3,"file":"verification-pipeline.d.ts","sourceRoot":"","sources":["../../src/verification/verification-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AA8BhF;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAElD;;;OAGG;gBACS,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAE,iBAAiB,EAAO;IAO5E;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIxC;;;;;;;;;;OAUG;IACG,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,GAAE,GAAG,GAAG,GAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAqE7F;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,EAC9B,MAAM,CAAC,EAAE,wBAAwB,GAChC,oBAAoB,CAWtB"}
@@ -16,6 +16,7 @@ import { AcceptanceCriteriaEvidenceCheck } from './checks/acceptance-criteria-ev
16
16
  import { BuildCheck } from './checks/build-check.js';
17
17
  import { RuntimeProbeCheck } from './checks/runtime-probe-check.js';
18
18
  import { SourceAcFidelityCheck } from './source-ac-fidelity-check.js';
19
+ import { SourceAcShelloutCheck } from './checks/source-ac-shellout-check.js';
19
20
  // ---------------------------------------------------------------------------
20
21
  // Helpers
21
22
  // ---------------------------------------------------------------------------
@@ -165,6 +166,7 @@ export function createDefaultVerificationPipeline(bus, config) {
165
166
  new BuildCheck(), // story 51-4: runs late in Tier A (expensive, 60s worst-case)
166
167
  new RuntimeProbeCheck(), // Epic 55 Phase 2: runtime behavior verification
167
168
  new SourceAcFidelityCheck(), // Story 58-2: source AC fidelity gate
169
+ new SourceAcShelloutCheck(), // Story 67-3: bare npx fallback static-analysis gate (obs_2026-05-03_023 fix #3)
168
170
  ];
169
171
  return new VerificationPipeline(bus, checks);
170
172
  }
@@ -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.56",
3
+ "version": "0.20.58",
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.56",
27
+ "@substrate-ai/core": "0.20.58",
28
28
  "js-yaml": "^4.1.1",
29
29
  "zod": "^4.3.6"
30
30
  },