agentic-sdlc-wizard 1.25.0 → 1.27.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.25.0",
16
+ "version": "1.27.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.25.0",
3
+ "version": "1.27.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,33 @@ 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.27.0] - 2026-04-05
8
+
9
+ ### Added
10
+ - Domain-adaptive testing diamond — setup wizard auto-detects project domain (firmware/data-science/CLI/web) and generates domain-specific TESTING.md with appropriate testing layers (#79, PR #157)
11
+ - Firmware/Embedded: HIL/SIL/Config Validation/Unit (no browser, no DB)
12
+ - Data Science: Model Evaluation/Pipeline Integration/Data Validation/Unit
13
+ - CLI Tool: CLI Integration/Behavior/Unit (no browser)
14
+ - Web/API: unchanged default (E2E/Integration/Unit)
15
+ - Domain detection patterns in wizard doc scan tree and setup skill Step 1/2/6
16
+ - 3 new test fixtures: firmware-embedded, data-science, cli-tool (partially satisfies #78)
17
+ - 25 domain detection quality tests
18
+
19
+ ### Fixed
20
+ - Setup skill cross-references: Step 4/5 now correctly reference wizard doc Steps 8/9 (caught by CI PR review)
21
+
22
+ ## [1.26.0] - 2026-04-05
23
+
24
+ ### Added
25
+ - Codex SDLC Adapter plan — certified (9/10) through 5-round cross-model review. `BaseInfinity/codex-sdlc-wizard` repo created with plan + README. Upstream sync architecture designed (weekly GH Action monitors sdlc-wizard releases). Hooks: PreToolUse `^Bash$` for git commit/push blocking (HARD — stronger than CC), AGENTS.md for TDD guidance (SOFT), UserPromptSubmit for SDLC baseline. ~70% CC parity (#91)
26
+ - Research: claw-code, OmO, OmX pattern analysis — 16 candidate patterns identified from 3 open-source AI agent projects (claw-code 168K stars, OmO 48K, OmX 16K). Key findings: GreenContract graduated test levels, $ralph bounded persistence loop, planning gate enforcement, planner/executor separation. All candidates require Prove It Gate before adoption. Codex certified 8/10 round 3 (#58)
27
+ - Automated CC Feature Discovery verified working — weekly-update.yml already implements this via analyze-release.md (#85)
28
+
29
+ ### Changed
30
+ - Roadmap: #79 (Domain-Adaptive Testing) and #92 (Autocompact Benchmarking) queued for next release
31
+ - Research doc: `RESEARCH_58_CLAW_OMO_OMX.md` added as reference (candidates list, not commitments)
32
+ - Codex adapter plan: `CODEX_ADAPTER_PLAN.md` added with full specs (hooks, scripts, tests, install flow)
33
+
7
34
  ## [1.25.0] - 2026-04-04
8
35
 
9
36
  ### Added
@@ -519,6 +519,82 @@ Here's the "Testing Diamond" approach (recommended for AI agents):
519
519
  - **Unit**: Pure logic only — no DB, no API, no filesystem. ~5% of suite.
520
520
  - **The rule**: If your test doesn't open a browser or render a UI, it's not E2E — it's integration. Mislabeling leads to overinvestment in slow browser tests.
521
521
 
522
+ #### Domain-Adaptive Testing Layers
523
+
524
+ The Testing Diamond above is the Web/API default. Other project domains have fundamentally different testing layers. The setup wizard auto-detects your domain and generates the appropriate TESTING.md.
525
+
526
+ **Domain Detection Patterns:**
527
+
528
+ | Domain | File/Dir Indicators |
529
+ |--------|-------------------|
530
+ | **Firmware/Embedded** | Makefile with `flash`/`burn` targets, `.cfg` device configs, `/sys/` or `/dev/tty` references, `.c`/`.h` source, `platformio.ini`, `CMakeLists.txt` with embedded targets |
531
+ | **Data Science** | `.ipynb` notebooks, `requirements.txt` with pandas/sklearn/tensorflow/torch, `data/` or `datasets/` dir, `models/` dir, Jupyter config |
532
+ | **CLI Tool** | `package.json` with `"bin"` field (no React/Vue/Angular), `bin/` dir, `src/cli.*`, no `src/components/` |
533
+ | **Web/API (default)** | Everything else — web frameworks, `src/components/`, Playwright/Cypress config, DB config. Fallback when no other domain matches |
534
+
535
+ **Firmware/Embedded Testing Layers:**
536
+
537
+ ```
538
+ /\ ← Few HIL (Hardware-in-the-Loop: real device, flash + boot verify)
539
+ / \
540
+ / \
541
+ /------\
542
+ | | ← MANY SIL (Software-in-the-Loop: emulated hardware, QEMU, device sims)
543
+ | |
544
+ \------/
545
+ \ / ← Config Validation (device config parsing, constraint checks)
546
+ \ /
547
+ \/ ← Few Unit (parsers, formatters, math)
548
+ ```
549
+
550
+ - **HIL (~5%)**: Hardware-in-the-Loop — flash to real device, verify boot, test hardware interfaces
551
+ - **SIL (~60%)**: Software-in-the-Loop — emulated hardware via QEMU or device simulators. Best bang for buck
552
+ - **Config Validation (~25%)**: Device config (.cfg) parsing, cross-device constraint checks, valid value ranges
553
+ - **Unit (~10%)**: Pure logic only — parsers, formatters, math functions
554
+ - **Mocking**: Mock hardware interfaces (`/dev/tty*`, GPIO), NEVER mock config parsers
555
+ - NO browser tests, NO database mocking
556
+
557
+ **Data Science Testing Layers:**
558
+
559
+ ```
560
+ /\ ← Few Model Evaluation (accuracy/precision/recall on holdout sets)
561
+ / \
562
+ / \
563
+ /------\
564
+ | | ← MANY Pipeline Integration (end-to-end with test datasets)
565
+ | |
566
+ \------/
567
+ \ / ← Data Validation (schema checks, distribution drift, missing values)
568
+ \ /
569
+ \/ ← Few Unit (pure transformations, feature engineering)
570
+ ```
571
+
572
+ - **Model Evaluation (~10%)**: Accuracy, precision, recall, F1 on holdout test sets. Catches model degradation
573
+ - **Pipeline Integration (~60%)**: End-to-end pipeline runs with test datasets. Best bang for buck
574
+ - **Data Validation (~20%)**: Schema checks, distribution drift detection, missing value handling, type enforcement
575
+ - **Unit (~10%)**: Pure transformations, feature engineering functions, data cleaning logic
576
+ - **Mocking**: Mock external data sources (APIs, S3), NEVER mock data transformations
577
+ - NO browser tests, NO traditional API endpoint testing
578
+
579
+ **CLI Tool Testing Layers:**
580
+
581
+ ```
582
+ /------\
583
+ | | ← MANY CLI Integration (full invocations, real args, real filesystem)
584
+ | |
585
+ | |
586
+ \------/
587
+ \ / ← Behavior (exit codes, stdout/stderr content, file creation)
588
+ \ /
589
+ \/ ← Few Unit (arg parsing, formatters, pure logic)
590
+ ```
591
+
592
+ - **CLI Integration (~80%)**: Full CLI invocations with real arguments and real filesystem. Best bang for buck
593
+ - **Behavior (~10%)**: Exit codes, stdout/stderr output validation, file creation/modification verification
594
+ - **Unit (~10%)**: Argument parsing, output formatters, pure logic
595
+ - **Mocking**: Mock network calls, NEVER mock filesystem operations
596
+ - NO browser tests, usually NO database
597
+
522
598
  **But your team decides:**
523
599
 
524
600
  | Question | Your Choice |
@@ -1235,12 +1311,34 @@ Claude scans for:
1235
1311
  │ ├── docker-compose.yml → Bash(docker *)
1236
1312
  │ └── .github/workflows/ → Bash(gh *)
1237
1313
 
1238
- └── Design system (for UI projects):
1239
- ├── tailwind.config.* → Extract colors, fonts, spacing from theme
1240
- ├── CSS with --var-name → Extract custom property palette
1241
- ├── .storybook/ → Reference as design source of truth
1242
- ├── MUI/Chakra theme files → Reference theming docs + overrides
1243
- └── /assets/, /images/ → Document asset locations
1314
+ ├── Design system (for UI projects):
1315
+ ├── tailwind.config.* → Extract colors, fonts, spacing from theme
1316
+ ├── CSS with --var-name → Extract custom property palette
1317
+ ├── .storybook/ → Reference as design source of truth
1318
+ ├── MUI/Chakra theme files → Reference theming docs + overrides
1319
+ └── /assets/, /images/ → Document asset locations
1320
+
1321
+ └── Project domain (for domain-adaptive TESTING.md):
1322
+ ├── Firmware/Embedded:
1323
+ │ ├── Makefile with flash/burn targets
1324
+ │ ├── .cfg device config files
1325
+ │ ├── /sys/ or /dev/tty references in scripts
1326
+ │ ├── .c/.h source files without web frameworks
1327
+ │ ├── platformio.ini, CMakeLists.txt
1328
+ │ └── No package.json with web frameworks
1329
+ ├── Data Science:
1330
+ │ ├── .ipynb notebook files
1331
+ │ ├── requirements.txt with pandas/sklearn/tensorflow/torch
1332
+ │ ├── data/ or datasets/ directory
1333
+ │ ├── models/ directory
1334
+ │ └── No Express/FastAPI/Rails web framework
1335
+ ├── CLI Tool:
1336
+ │ ├── package.json with "bin" field (no React/Vue/Angular deps)
1337
+ │ ├── bin/ directory with executable scripts
1338
+ │ ├── src/cli.* entry point
1339
+ │ └── No src/components/, no browser test config
1340
+ └── Web/API (default):
1341
+ └── Everything else — fallback when no other domain matches
1244
1342
  ```
1245
1343
 
1246
1344
  **If Claude can't detect something, it asks.** Never assumes.
@@ -1553,6 +1651,7 @@ Each resolved data point (whether detected or confirmed by the user) maps to gen
1553
1651
  | Infrastructure (DB, cache) | `CLAUDE.md` - Architecture section, `TESTING.md` - mock decisions |
1554
1652
  | Test duration | `SDLC skill` - wait time note |
1555
1653
  | Test types (E2E) | `TESTING.md` - testing diamond top |
1654
+ | Project domain (firmware/data-science/CLI/web) | `TESTING.md` - domain-adaptive testing layers and mocking rules |
1556
1655
 
1557
1656
  ---
1558
1657
 
@@ -2497,7 +2596,7 @@ If deployment fails or post-deploy verification catches issues:
2497
2596
 
2498
2597
  **SDLC.md:**
2499
2598
  ```markdown
2500
- <!-- SDLC Wizard Version: 1.25.0 -->
2599
+ <!-- SDLC Wizard Version: 1.27.0 -->
2501
2600
  <!-- Setup Date: [DATE] -->
2502
2601
  <!-- 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 -->
2503
2602
  <!-- Git Workflow: [PRs or Solo] -->
@@ -2525,26 +2624,168 @@ See `.claude/skills/sdlc/SKILL.md` for the enforced checklist.
2525
2624
  - Survives file edits
2526
2625
  - Travels with the repo
2527
2626
 
2528
- **TESTING.md:**
2627
+ **TESTING.md (domain-adaptive — generate the template matching the detected domain):**
2628
+
2629
+ **Web/API (default):**
2529
2630
  ```markdown
2530
2631
  # Testing Guidelines
2531
2632
 
2532
- See `TESTING.md` for TDD philosophy.
2633
+ ## Testing Diamond
2634
+
2635
+ Integration tests are best bang for buck. Mocks can "pass" while production fails.
2636
+
2637
+ | Layer | What It Tests | % of Suite |
2638
+ |-------|--------------|------------|
2639
+ | E2E | Full user flow through browser (Playwright, Cypress) | ~5% |
2640
+ | Integration | Real DB, real cache, API-level — no UI | ~90% |
2641
+ | Unit | Pure logic — no DB, no API, no filesystem | ~5% |
2533
2642
 
2534
2643
  ## Test Commands
2535
2644
 
2536
2645
  - All tests: `[your command]`
2537
2646
  - Specific test: `[your command]`
2538
2647
 
2648
+ ## Mocking Rules
2649
+
2650
+ | Dependency | Mock? | Why |
2651
+ |------------|-------|-----|
2652
+ | Database | NEVER | Use test DB or in-memory |
2653
+ | Cache | NEVER | Use isolated test instance |
2654
+ | External APIs | YES | Real calls = flaky + expensive |
2655
+ | Time/Date | YES | Determinism |
2656
+
2539
2657
  ## Fixtures
2540
2658
 
2541
- Location: `[Claude will discover or ask - e.g., tests/fixtures/, test-data/]`
2659
+ Location: `[tests/fixtures/ or test-data/]`
2542
2660
 
2543
2661
  ## Lessons Learned
2544
2662
 
2545
2663
  <!-- Add testing gotchas as you discover them -->
2546
2664
  ```
2547
2665
 
2666
+ **Firmware/Embedded (if detected):**
2667
+ ```markdown
2668
+ # Testing Guidelines
2669
+
2670
+ ## Testing Layers (Firmware)
2671
+
2672
+ SIL tests are best bang for buck. Real hardware tests are slow but prove the real thing works.
2673
+
2674
+ | Layer | What It Tests | % of Suite |
2675
+ |-------|--------------|------------|
2676
+ | HIL | Hardware-in-the-Loop — real device, flash + boot verify | ~5% |
2677
+ | SIL | Software-in-the-Loop — emulated hardware (QEMU, device sims) | ~60% |
2678
+ | Config Validation | Device config parsing, constraint checks, valid ranges | ~25% |
2679
+ | Unit | Pure logic — parsers, formatters, math | ~10% |
2680
+
2681
+ ## Test Commands
2682
+
2683
+ - All tests: `[your command, e.g., make test]`
2684
+ - Flash + verify: `[your flash command]`
2685
+ - Config validation: `[your config check command]`
2686
+
2687
+ ## Mocking Rules
2688
+
2689
+ | Dependency | Mock? | Why |
2690
+ |------------|-------|-----|
2691
+ | Hardware interfaces (/dev/tty*, GPIO) | YES | Real hardware not always available |
2692
+ | Config parsers | NEVER | Config bugs brick devices |
2693
+ | Filesystem (/sys/, /proc/) | YES in CI | Real paths only exist on target |
2694
+ | Serial protocols | YES | Use loopback or emulator |
2695
+
2696
+ ## Device Matrix
2697
+
2698
+ | Device | Config File | Status |
2699
+ |--------|------------|--------|
2700
+ | [device-a] | configs/device-a.cfg | [tested/untested] |
2701
+
2702
+ ## Lessons Learned
2703
+
2704
+ <!-- Add firmware testing gotchas as you discover them -->
2705
+ ```
2706
+
2707
+ **Data Science (if detected):**
2708
+ ```markdown
2709
+ # Testing Guidelines
2710
+
2711
+ ## Testing Layers (Data Science)
2712
+
2713
+ Pipeline integration tests are best bang for buck. Model evaluation catches degradation.
2714
+
2715
+ | Layer | What It Tests | % of Suite |
2716
+ |-------|--------------|------------|
2717
+ | Model Evaluation | Accuracy/precision/recall/F1 on holdout sets | ~10% |
2718
+ | Pipeline Integration | End-to-end pipeline runs with test datasets | ~60% |
2719
+ | Data Validation | Schema checks, distribution drift, missing values | ~20% |
2720
+ | Unit | Pure transformations, feature engineering | ~10% |
2721
+
2722
+ ## Test Commands
2723
+
2724
+ - All tests: `[your command, e.g., pytest]`
2725
+ - Model evaluation: `[your eval command]`
2726
+ - Data validation: `[your validation command]`
2727
+
2728
+ ## Mocking Rules
2729
+
2730
+ | Dependency | Mock? | Why |
2731
+ |------------|-------|-----|
2732
+ | External data sources (APIs, S3) | YES | Real calls = flaky + expensive |
2733
+ | Data transformations | NEVER | Transform bugs corrupt pipelines |
2734
+ | Model training | PARTIAL | Use small test datasets for speed |
2735
+ | Database/warehouse | YES in unit | Use test fixtures for integration |
2736
+
2737
+ ## Test Datasets
2738
+
2739
+ Location: `[tests/data/ or tests/fixtures/]`
2740
+ - Keep test datasets small but representative
2741
+ - Include edge cases: missing values, wrong types, outliers
2742
+
2743
+ ## Lessons Learned
2744
+
2745
+ <!-- Add data science testing gotchas as you discover them -->
2746
+ ```
2747
+
2748
+ **CLI Tool (if detected):**
2749
+ ```markdown
2750
+ # Testing Guidelines
2751
+
2752
+ ## Testing Layers (CLI)
2753
+
2754
+ CLI integration tests are best bang for buck. Test real invocations with real arguments.
2755
+
2756
+ | Layer | What It Tests | % of Suite |
2757
+ |-------|--------------|------------|
2758
+ | CLI Integration | Full invocations with real args, real filesystem | ~80% |
2759
+ | Behavior | Exit codes, stdout/stderr content, file creation | ~10% |
2760
+ | Unit | Arg parsing, formatters, pure logic | ~10% |
2761
+
2762
+ ## Test Commands
2763
+
2764
+ - All tests: `[your command]`
2765
+ - Specific test: `[your command]`
2766
+
2767
+ ## Mocking Rules
2768
+
2769
+ | Dependency | Mock? | Why |
2770
+ |------------|-------|-----|
2771
+ | Filesystem | NEVER | CLI tools live on the filesystem |
2772
+ | Network calls | YES | Real calls = flaky |
2773
+ | Stdin/stdout | CAPTURE | Use child_process or subprocess |
2774
+ | Environment vars | SET per test | Determinism |
2775
+
2776
+ ## Behavior Contract
2777
+
2778
+ | Input | Expected Exit Code | Expected Output |
2779
+ |-------|-------------------|----------------|
2780
+ | `--help` | 0 | Usage text |
2781
+ | (no args) | 1 | Error message |
2782
+ | `--version` | 0 | Version string |
2783
+
2784
+ ## Lessons Learned
2785
+
2786
+ <!-- Add CLI testing gotchas as you discover them -->
2787
+ ```
2788
+
2548
2789
  ---
2549
2790
 
2550
2791
  **DESIGN_SYSTEM.md (if UI detected):**
@@ -3414,7 +3655,7 @@ Walk through updates? (y/n)
3414
3655
  Store wizard state in `SDLC.md` as metadata comments (invisible to readers, parseable by Claude):
3415
3656
 
3416
3657
  ```markdown
3417
- <!-- SDLC Wizard Version: 1.25.0 -->
3658
+ <!-- SDLC Wizard Version: 1.27.0 -->
3418
3659
  <!-- Setup Date: 2026-01-24 -->
3419
3660
  <!-- 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 -->
3420
3661
  <!-- Git Workflow: PRs -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-sdlc-wizard",
3
- "version": "1.25.0",
3
+ "version": "1.27.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"
@@ -42,6 +42,11 @@ Scan the project root for:
42
42
  - Scripts in package.json (lint, test, build, typecheck, etc.)
43
43
  - Database config files (prisma/, drizzle.config.*, knexfile.*, .env with DB_*)
44
44
  - Cache config (redis.conf, .env with REDIS_*)
45
+ - Domain indicators (for domain-adaptive TESTING.md):
46
+ - Firmware/Embedded: Makefile with flash/burn targets, .cfg device configs, /sys/ or /dev/tty references, .c/.h source, platformio.ini
47
+ - Data Science: .ipynb notebooks, requirements.txt with pandas/sklearn/tensorflow/torch, data/ or datasets/ dir, models/ dir
48
+ - CLI Tool: package.json with "bin" field (no React/Vue/Angular), bin/ dir, src/cli.*, no src/components/
49
+ - Web/API: default — everything else (web frameworks, src/components/, Playwright/Cypress config)
45
50
 
46
51
  ### Step 2: Build Confidence Map
47
52
 
@@ -69,6 +74,7 @@ For each configuration data point, assign a confidence level based on scan resul
69
74
  | Testing | Test types | What test files exist (*.test.*, *.spec.*, e2e/, integration/) |
70
75
  | Coverage | Coverage config | nyc, c8, coverage.py config, CI coverage steps |
71
76
  | CI | CI shepherd opt-in | Only if CI detected — ALWAYS ASK |
77
+ | Domain | Project domain | Auto-detect from domain indicators above (firmware/data-science/CLI/web). Web/API is the default fallback. One domain per project — dominant signal wins |
72
78
 
73
79
  **Each data point has one of three states:**
74
80
  - **RESOLVED (detected):** Found concrete evidence — config file, script, directory exists. No question needed, just confirm.
@@ -100,7 +106,7 @@ Using detected + confirmed values, generate `CLAUDE.md` with:
100
106
  - Architecture summary (from scan)
101
107
  - Special notes (infra, deployment)
102
108
 
103
- Reference: See "Step 3" in `CLAUDE_CODE_SDLC_WIZARD.md` for the full template.
109
+ Reference: See "Step 8" in `CLAUDE_CODE_SDLC_WIZARD.md` for the full template.
104
110
 
105
111
  ### Step 5: Generate SDLC.md
106
112
 
@@ -118,19 +124,23 @@ Include metadata comments:
118
124
  <!-- 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 -->
119
125
  ```
120
126
 
121
- Reference: See "Step 4" in `CLAUDE_CODE_SDLC_WIZARD.md` for the full template.
127
+ Reference: See "Step 9" in `CLAUDE_CODE_SDLC_WIZARD.md` for the full template.
122
128
 
123
- ### Step 6: Generate TESTING.md
129
+ ### Step 6: Generate TESTING.md (Domain-Adaptive)
124
130
 
125
- Generate `TESTING.md` based on detected/confirmed testing data:
126
- - Testing Diamond visualization
127
- - Test types and their purposes
128
- - Mocking rules (from detected patterns or user input)
129
- - Test file organization (from detected structure)
130
- - Coverage config (from detected config or user input)
131
- - Framework-specific patterns
131
+ Generate `TESTING.md` using the domain-specific template matching the detected project domain:
132
+ - **Web/API (default)**: Standard Testing Diamond (E2E/Integration/Unit)
133
+ - **Firmware/Embedded**: HIL/SIL/Config Validation/Unit layers
134
+ - **Data Science**: Model Evaluation/Pipeline Integration/Data Validation/Unit layers
135
+ - **CLI Tool**: CLI Integration/Behavior/Unit layers
132
136
 
133
- Reference: See "Step 5" in `CLAUDE_CODE_SDLC_WIZARD.md` for the full template.
137
+ Each domain template includes:
138
+ - Domain-appropriate testing layer visualization and percentages
139
+ - Domain-specific mocking rules (what to mock, what NEVER to mock)
140
+ - Test commands and fixture locations
141
+ - Domain-specific sections (Device Matrix for firmware, Test Datasets for data science, Behavior Contract for CLI)
142
+
143
+ Reference: See "Step 9" in `CLAUDE_CODE_SDLC_WIZARD.md` for the full domain-conditional templates.
134
144
 
135
145
  ### Step 7: Generate ARCHITECTURE.md
136
146
 
@@ -45,13 +45,14 @@ Extract the latest version from the first `## [X.X.X]` line.
45
45
  Parse all CHANGELOG entries between the user's installed version and the latest. Present a clear summary:
46
46
 
47
47
  ```
48
- Installed: 1.23.0
49
- Latest: 1.25.0
48
+ Installed: 1.24.0
49
+ Latest: 1.27.0
50
50
 
51
51
  What changed:
52
+ - [1.27.0] Domain-adaptive testing diamond, 3 domain fixtures, 25 quality tests, ...
53
+ - [1.26.0] Codex SDLC Adapter plan, claw-code/OmO/OmX research, CC feature discovery verified, ...
52
54
  - [1.25.0] Plugin format, 6 distribution channels (curl, Homebrew, gh, GitHub Releases), ...
53
55
  - [1.24.0] Hook if conditionals, autocompact tuning + 1M/200K guidance, tdd_red fix, ...
54
- - [1.23.0] Update notification hook, cross-model review standardization, ...
55
56
  ```
56
57
 
57
58
  **If versions match:** Say "You're up to date! (version X.X.X)" and stop.