agentic-sdlc-wizard 1.57.0 → 1.58.0

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.
@@ -13,7 +13,7 @@
13
13
  "name": "sdlc-wizard",
14
14
  "source": ".",
15
15
  "description": "SDLC enforcement for AI agents — TDD, planning, self-review, CI shepherd",
16
- "version": "1.57.0",
16
+ "version": "1.58.0",
17
17
  "author": {
18
18
  "name": "Stefan Ayala"
19
19
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sdlc-wizard",
3
- "version": "1.57.0",
3
+ "version": "1.58.0",
4
4
  "description": "SDLC enforcement for AI agents — TDD, planning, self-review, CI shepherd",
5
5
  "author": {
6
6
  "name": "Stefan Ayala",
package/CHANGELOG.md CHANGED
@@ -4,6 +4,42 @@ All notable changes to the SDLC Wizard.
4
4
 
5
5
  > **Note:** This changelog is for humans to read. Don't manually apply these changes - just run the wizard ("Check for SDLC wizard updates") and it handles everything automatically.
6
6
 
7
+ ## [1.58.0] - 2026-04-30
8
+
9
+ ### Added
10
+
11
+ - **Ground-truth gate for the E2E benchmark — closes ROADMAP #96 Phase 2.** New `tests/e2e/ground-truth.sh` runs the fixture's own test suite (`npm test`) post-simulation and emits structured JSON: `{tests_run, tests_pass, tests_rc, tests_tail}`. `local-shepherd.sh` calls it after the evaluator, before the score-history append. If tests fail, the final score is **capped at 5/10** (configurable via `GROUND_TRUTH_FAIL_CAP`) — the judge can't tell if `npm test` actually passes; only running it can.
12
+
13
+ Combined with Phase 1's de-coaching (v1.57.0), the benchmark now requires **both** judge approval **and** real test passage. Catches "agent followed protocol but produced broken code" false-positives — exactly the failure mode the v1.32.0 cross-model audit warned about.
14
+
15
+ Score-history rows now record `original_judge_score`, `tests_run`, `tests_pass`, `ground_truth_gated` so trend analytics can distinguish judge noise from real regressions.
16
+
17
+ Cross-platform timeout: uses `timeout` if available, falls back to `gtimeout` (coreutils on macOS), and finally a portable `perl` fallback for stock systems. Default `GROUND_TRUTH_TIMEOUT=120s`.
18
+
19
+ Escape hatches:
20
+ - `SDLC_SHEPHERD_SKIP_GROUND_TRUTH=1` — disables the gate entirely (raw judge scores)
21
+ - `SDLC_SHEPHERD_FIXTURE_DIR=...` — override fixture location (default `tests/e2e/fixtures/test-repo`)
22
+ - `SDLC_SHEPHERD_GROUND_TRUTH=...` — override script path (used by tests)
23
+
24
+ ### Tests
25
+
26
+ - New `tests/test-ground-truth.sh` (11 tests): passing/failing/no-test/no-package/missing-dir/no-args/help/JSON-validity/timeout-enforcement.
27
+ - 4 new integration tests in `tests/test-local-shepherd.sh` (38 total): gate caps judge=9 to score=5, gate leaves passing judge alone, no-tests fixture skips gate, `SKIP_GROUND_TRUTH` env var fully disables gate.
28
+ - Wired into `ci.yml` and `CONTRIBUTING.md` test list.
29
+
30
+ ### Files
31
+
32
+ - `tests/e2e/ground-truth.sh` (new, 105 lines)
33
+ - `tests/test-ground-truth.sh` (new, 11 tests)
34
+ - `tests/e2e/local-shepherd.sh` (gate logic + new score-history fields)
35
+ - `tests/test-local-shepherd.sh` (4 new integration tests)
36
+ - `.github/workflows/ci.yml` + `CONTRIBUTING.md` (test list)
37
+ - Version bump 1.57.0 → 1.58.0
38
+
39
+ ### Phase 3 (future)
40
+
41
+ - Install wizard files into the local-shepherd test fixture so the simulation tests "wizard-installed agent" vs "wizard-less agent." That's the actual *"does the wizard work?"* test — pairs with calibration scenarios that include subtle bugs to test self-review effectiveness.
42
+
7
43
  ## [1.57.0] - 2026-04-30
8
44
 
9
45
  ### Fixed
@@ -2974,7 +2974,7 @@ If deployment fails or post-deploy verification catches issues:
2974
2974
 
2975
2975
  **SDLC.md:**
2976
2976
  ```markdown
2977
- <!-- SDLC Wizard Version: 1.57.0 -->
2977
+ <!-- SDLC Wizard Version: 1.58.0 -->
2978
2978
  <!-- Setup Date: [DATE] -->
2979
2979
  <!-- Completed Steps: step-0.1, step-0.2, step-0.4, step-1, step-2, step-3, step-4, step-5, step-6, step-7, step-8, step-9 -->
2980
2980
  <!-- Git Workflow: [PRs or Solo] -->
@@ -4039,7 +4039,7 @@ Walk through updates? (y/n)
4039
4039
  Store wizard state in `SDLC.md` as metadata comments (invisible to readers, parseable by Claude):
4040
4040
 
4041
4041
  ```markdown
4042
- <!-- SDLC Wizard Version: 1.57.0 -->
4042
+ <!-- SDLC Wizard Version: 1.58.0 -->
4043
4043
  <!-- Setup Date: 2026-01-24 -->
4044
4044
  <!-- Completed Steps: step-0.1, step-0.2, step-1, step-2, step-3, step-4, step-5, step-6, step-7, step-8, step-9 -->
4045
4045
  <!-- Git Workflow: PRs -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-sdlc-wizard",
3
- "version": "1.57.0",
3
+ "version": "1.58.0",
4
4
  "description": "SDLC enforcement for Claude Code — hooks, skills, and wizard setup in one command",
5
5
  "bin": {
6
6
  "sdlc-wizard": "cli/bin/sdlc-wizard.js"
@@ -93,9 +93,10 @@ Parse CHANGELOG entries between the user's installed version and latest. Present
93
93
 
94
94
  ```
95
95
  Installed: 1.42.0
96
- Latest: 1.57.0
96
+ Latest: 1.58.0
97
97
 
98
98
  What changed:
99
+ - [1.58.0] ground-truth gate for E2E benchmark (#96 Phase 2) — `tests/e2e/ground-truth.sh` runs `npm test` post-sim; final score capped at 5 if tests fail. Catches "agent followed protocol but produced broken code"
99
100
  - [1.57.0] de-coach E2E benchmark prompt (#96 Phase 1) — remove answer-key leakage that saturated benchmark scores at 10/10; new neutral task framing measures organic SDLC behavior
100
101
  - [1.56.0] community feature-discovery fetcher (#207) — `tests/e2e/fetch-community.sh` pulls Reddit + HN; pipe to `scan-community.sh` to surface candidate /slash-commands
101
102
  - [1.55.0] shrink weekly-update.yml dead code (#231 Phase 4) — delete env.VERSION_SCENARIO + has_overlap/overlap_paths outputs + placeholder/parse steps; 289 → 161 lines (-44%)