agentic-sdlc-wizard 1.81.0 → 1.83.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.81.0",
16
+ "version": "1.83.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.81.0",
3
+ "version": "1.83.0",
4
4
  "description": "SDLC enforcement for AI agents — TDD, planning, self-review, CI shepherd",
5
5
  "author": {
6
6
  "name": "Stefan Ayala",
package/AI_SETUP_LANES.md CHANGED
@@ -15,6 +15,8 @@ This is **guidance, not a hard rule**. Maintainer override is always allowed.
15
15
 
16
16
  Quality-first lane. Fable 5 advises automatically at key decision points (architecture, complexity, blast-radius) via native `advisorModel` (v2.1.170+), Opus 4.6 max implements (stable, Max-bundled), GPT-5.5 xhigh reviews (cross-family, free on ChatGPT sub, catches blind spots Fable can't see in its own work). Escalate to Fable review for the ~5% of PRs where stakes justify it.
17
17
 
18
+ **Effort levels:** Opus driver at `max` (standing default). Fable advisor runs at its own effort level server-side. If switching driver to Fable temporarily (fallback), use `/effort high` — Fable `high` already exceeds prior models at `max`. Unset `CLAUDE_CODE_EFFORT_LEVEL` env var if it forces `max`.
19
+
18
20
  ## Setup B — Claude Saver (OpusPlan)
19
21
 
20
22
  | Role | Model |
@@ -105,6 +107,25 @@ The `!` prefix runs shell commands inside your CC session — no need to exit an
105
107
 
106
108
  Fable 5 as advisor also requires Fable 5 access for your organization/plan (free on Max through June 22, 2026).
107
109
 
110
+ ## When the Advisor Is Unavailable
111
+
112
+ If the advisor returns "Advisor unavailable," the server-side harness failed to initialize. No in-session action (`/model`, `/clear`) can recover it.
113
+
114
+ **Step 1 — restart the session.** Exit and run `claude` (not `--resume`). A fresh process re-initializes the server handshake. This resolves most advisor failures.
115
+
116
+ **Step 2 — if the API incident persists:**
117
+
118
+ - `/model fable` + `/effort high` for the planning phase, then `/model claude-opus-4-6` for implementation. Interactive — stays on your Max subscription.
119
+ - Or proceed with Opus only and let the Codex xhigh PR gate catch issues.
120
+
121
+ **Last resort (scripted/CI only):**
122
+
123
+ - `claude --model fable --effort high -p "$(cat <file>)"` — headless mode bills API credits, not your Max subscription.
124
+
125
+ Check [status.claude.com](https://status.claude.com) if the advisor fails across multiple fresh sessions.
126
+
127
+ Whichever path you use, the cross-model PR review gate still applies.
128
+
108
129
  ## Credit-Spend Warning
109
130
 
110
131
  Setups A and B use Opus 4.6 max for at least the planner — that's the expensive half. On Max-plan subscriptions, **Premium can burn the 5-hour cap faster than Saver** because Opus 4.6 max drives implementation too. If you're hitting the cap mid-session:
@@ -117,6 +138,10 @@ Setups A and B use Opus 4.6 max for at least the planner — that's the expensiv
117
138
 
118
139
  The reviewer (GPT-5.5 xhigh) is billed against your OpenAI account, separately. Watch both bills.
119
140
 
141
+ ## Autocompact Thresholds
142
+
143
+ For recommended `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` values per context window and task shape, see [CLAUDE_CODE_SDLC_WIZARD.md → Autocompact Tuning](CLAUDE_CODE_SDLC_WIZARD.md#autocompact-tuning).
144
+
120
145
  ## How Billing Works — 1M Context, Max Plan, and the June 15 Split
121
146
 
122
147
  A common question: **"does the `[1m]` model alias get billed differently? Does it pull from my Max plan or from API credits?"**
package/CHANGELOG.md CHANGED
@@ -4,6 +4,39 @@ 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.83.0] - 2026-06-11
8
+
9
+ ### Fixed
10
+ - **#403**: Hook lists multiple wizard-blessed models (claude-opus-4-6, opusplan, fable) instead of hardcoded single-model nudge
11
+ - **#391**: Setup Step 9.5 detects global `[1m]` model pin and warns about billing implications
12
+ - **#405**: Update Step 3 uses `min(npm, CHANGELOG)` as "latest installable" — prevents version race during publish window
13
+ - **#384**: Update Step 7.9 checks effort configuration regardless of version match
14
+
15
+ ### Why
16
+ Model config batch — first trial of the confidence ramp pattern (Opus research → Fable batch review → 95% → TDD → Codex safety check). All 4 issues reached 95% confidence before implementation.
17
+
18
+ ## [1.82.0] - 2026-06-11
19
+
20
+ ### Added
21
+
22
+ - **"Reading Usage Signals" subsection** in Token Efficiency section. Maps community-observed session signals (subagent-heavy, >150K context, 8+ hour sessions) to SDLC actions per setup lane. Marked as community-observed, not official CC docs.
23
+
24
+ - **Advisor fallback procedure** in AI_SETUP_LANES.md. Escalation ladder: restart session → Fable driver fallback → `-p` last resort (with billing caveat). Documented after advisor was unavailable for a full session during API incident (2026-06-11).
25
+
26
+ - **Fable effort guidance** in Setup A description. Opus stays at `max`; Fable at `high` (exceeds prior models at `max`). Unset `CLAUDE_CODE_EFFORT_LEVEL` env var if switching driver to Fable temporarily.
27
+
28
+ - **Autocompact Thresholds cross-reference** in AI_SETUP_LANES.md. Numbers-free pointer to wizard doc to prevent dual-source drift.
29
+
30
+ ### Fixed
31
+
32
+ - **Stale `/usage` row** in Monitor Costs table. Was "Session total: USD, API time, code changes" — now accurately describes plan usage limits and per-category breakdown (skill, subagent, plugin, MCP server). Added `/status` row (settings panel) to prevent future confusion.
33
+
34
+ - **`/usage` mention in SKILL.md** Context Management section. Folded into existing auto-compact bullet within 20K char budget.
35
+
36
+ ### Why
37
+
38
+ - Token-burn spike (1.36M costly tokens vs ~86K median) in session 98d6c7b0 surfaced that the wizard's usage guidance was stale and didn't help diagnose the cause. The Monitor Costs table described `/usage` incorrectly, and no wizard prose mapped usage signals to SDLC actions. The advisor fallback procedure is a direct lesson from the same session where the Fable advisor was unavailable for the entire duration.
39
+
7
40
  ## [1.81.0] - 2026-06-10
8
41
 
9
42
  ### Changed
@@ -3041,7 +3041,7 @@ If deployment fails or post-deploy verification catches issues:
3041
3041
 
3042
3042
  **SDLC.md:**
3043
3043
  ```markdown
3044
- <!-- SDLC Wizard Version: 1.81.0 -->
3044
+ <!-- SDLC Wizard Version: 1.83.0 -->
3045
3045
  <!-- Setup Date: [DATE] -->
3046
3046
  <!-- 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 -->
3047
3047
  <!-- Git Workflow: [PRs or Solo] -->
@@ -3691,10 +3691,21 @@ Practical techniques to reduce token consumption without sacrificing quality.
3691
3691
 
3692
3692
  | Tool | What It Shows | When to Use |
3693
3693
  |------|---------------|-------------|
3694
- | `/usage` | Session total: USD, API time, code changes (aliases: `/cost`, `/stats`) | After a session to review spend |
3694
+ | `/usage` | Session cost, plan usage limits, and per-category breakdown (skill, subagent, plugin, MCP server). Aliases: `/cost`, `/stats` | After heavy subagent work, before/after workflow runs, when approaching rate limits |
3695
+ | `/status` | Settings panel — version, model, account, connectivity | Confirm setup before starting work |
3695
3696
  | `/context` | What's consuming context window space | When hitting context limits |
3696
3697
  | Status line | Real-time `cost.total_cost_usd` + token counts | Continuous monitoring |
3697
3698
 
3699
+ ### Reading Usage Signals
3700
+
3701
+ These signals are community-observed behavior on paid plans (Max/Team) — not in official CC docs. They are independent dimensions, not a single breakdown. A single session can contribute to all three. Run `/usage` to see the per-category breakdown.
3702
+
3703
+ | Signal | What It Means | SDLC Action |
3704
+ |--------|---------------|-------------|
3705
+ | **Subagent-heavy** | Each subagent runs its own context. The advisor is a separate server-side consultation (full transcript forwarded, different token profile). Explore agents, full Agent delegates, and workflow agents each spawn separate contexts. | Expected in Setup A (Fable advisor fires per-decision). If unexpectedly high: use `subagent_type: "Explore"` for search (lighter), reserve full agents for implementation. |
3706
+ | **>150K context** | Sessions staying large between compactions. | **Context-window dependent.** On 1M (Setup A): >150K is expected at 30% compact threshold — the real question is whether the task needed 1M headroom. On 200K (Setup B/C): lower `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` toward 75%. `/compact` between planning and implementation. |
3707
+ | **8+ hour sessions** | Long-running sessions accumulate stale context. | `/clear` between unrelated tasks. Split multi-feature work into separate sessions. After committing a PR, start fresh. Background `/loop` sessions count toward this — audit which are still needed. |
3708
+
3698
3709
  ### Reduce Consumption
3699
3710
 
3700
3711
  | Technique | Savings | How |
@@ -11,7 +11,8 @@
11
11
  #
12
12
  # Non-blocking: always exits 0.
13
13
 
14
- RECOMMENDED_MODEL="claude-opus-4-6"
14
+ # Multiple wizard-blessed models — don't nudge to a single one (#403)
15
+ RECOMMENDED_MODELS="claude-opus-4-6, opusplan, or fable (run: /model)"
15
16
 
16
17
  HOOK_DIR="${BASH_SOURCE[0]%/*}"
17
18
  [ "$HOOK_DIR" = "${BASH_SOURCE[0]}" ] && HOOK_DIR="."
@@ -63,7 +64,7 @@ echo ""
63
64
  echo " Run: /effort max"
64
65
  echo " Persist: set CLAUDE_CODE_EFFORT_LEVEL=max in settings env block"
65
66
  echo ""
66
- echo " recommended model: $RECOMMENDED_MODEL (run: /model $RECOMMENDED_MODEL)"
67
+ echo " recommended models: $RECOMMENDED_MODELS"
67
68
  echo "=============================================================================="
68
69
 
69
70
  exit 0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-sdlc-wizard",
3
- "version": "1.81.0",
3
+ "version": "1.83.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"
@@ -267,7 +267,7 @@ Don't fix only the symptom. Add a gate so it can't happen again. Example: PR #14
267
267
 
268
268
  - `/compact` between planning and implementation (plan preserved in summary)
269
269
  - `/clear` between unrelated tasks; after 2+ failed corrections (context polluted)
270
- - Auto-compact fires at ~95% capacity
270
+ - Auto-compact fires at ~95%; `/usage` shows what's driving token spend
271
271
  - After committing a PR, `/clear` before next feature
272
272
  - `--bare` mode (v2.1.81+) skips ALL hooks/skills/LSP/plugins. Scripted headless only — never normal development.
273
273
  - Custom subagents (`.claude/agents/`) run autonomously and return results. Skills guide behavior; agents do work. Use for parallel tasks or fresh context. Examples: `sdlc-reviewer`, `ci-debug`, `test-writer`.
@@ -232,6 +232,8 @@ The CLI ships `cli/templates/settings.json` with **no** `model` or `env` pin by
232
232
 
233
233
  **Why this is opt-in (issue #198):** A top-level `"model"` in `settings.json` disables auto-mode for the session. Pinning is only worth it when you want consistent model behavior (opusplan or flagship) rather than per-turn auto-selection.
234
234
 
235
+ **Check for global `[1m]` model pin (#391):** Read `~/.claude/settings.json`. If `model` contains `[1m]`, warn: global pin forces 1M on every repo; headless surfaces bill against credits after June 15. Offer `[r] Remove / [k] Keep`. If `r`: delete the `model` key.
236
+
235
237
  **Run the complexity heuristic first (roadmap #233):**
236
238
 
237
239
  ```bash
@@ -89,13 +89,17 @@ Extract latest version from the first `## [X.X.X]` line.
89
89
 
90
90
  ### Step 3: Compare Versions and Show What Changed
91
91
 
92
- Parse CHANGELOG entries between the user's installed version and latest. Present a clear summary:
92
+ **Resolve "latest installable" from npm registry (#405):** Compare the npm registry version (Step 1.5 cache) to the CHANGELOG heading version (Step 2). Use the **lower** of the two as "latest installable" — this prevents showing a version that isn't yet published to npm during the publish window. If CHANGELOG is ahead of npm, note: "v{changelog} is on GitHub but not yet published to npm; showing v{npm} as latest installable."
93
+
94
+ Parse CHANGELOG entries between the user's installed version and the resolved latest installable. Present a clear summary:
93
95
 
94
96
  ```
95
97
  Installed: 1.42.0
96
- Latest: 1.81.0
98
+ Latest: 1.83.0
97
99
 
98
100
  What changed:
101
+ - [1.83.0] Model config batch: multi-model hook recommendation (#403), global [1m] pin detection (#391), version race fix (#405), effort config check (#384).
102
+ - [1.82.0] Usage diagnostics: fix /usage row, Reading Usage Signals guide, advisor fallback procedure, Fable effort guidance, autocompact cross-reference.
99
103
  - [1.81.0] Native `advisorModel` support: Setup A gets Fable advisor, Setup B gets Opus advisor. Replaces manual subagent spawning. Requires CC v2.1.170+.
100
104
  - [1.80.0] Flip default: Opus 4.6 max becomes recommended flagship; Opus 4.8 demoted to opt-in `[l] Latest` tier.
101
105
  - [1.79.0] Opus 4.6 Stability tier added as flagship alternative (now graduated to default in 1.80.0).
@@ -125,8 +129,8 @@ Read the actual entries from the fetched CHANGELOG; don't paraphrase. The user w
125
129
 
126
130
  **If versions match:** Step 7.7 (global plugin-registration cleanup) is independent of wizard file versions — it must run even when the user is up-to-date. The `check-only` flag still gates whether cleanup is *applied*:
127
131
 
128
- - **Without `check-only`**: Run Step 7.7 in normal mode (detect, prompt, apply) before stopping. Then say "You're up to date! (version X.X.X)" and stop. Do not run Steps 4–10; only Step 7.7 fires on match.
129
- - **With `check-only`**: Run Step 7.7 in detection-only mode — report any dead plugin registrations, but do NOT prompt and do NOT mutate `~/.claude/settings.json`. Then say "You're up to date! (version X.X.X)" and stop.
132
+ - **Without `check-only`**: Run Step 7.7 and Step 7.9 in normal mode (detect, prompt, apply) before stopping. Then say "You're up to date! (version X.X.X)" and stop. Do not run Steps 4–10; only Steps 7.7 and 7.9 fire on match.
133
+ - **With `check-only`**: Run Step 7.7 and Step 7.9 in detection-only mode — report findings but do NOT prompt and do NOT mutate settings. Then say "You're up to date! (version X.X.X)" and stop.
130
134
 
131
135
  **If user passed `check-only` and versions don't match:** Stop after showing what changed. Do not apply anything.
132
136
 
@@ -235,6 +239,15 @@ If CC < v2.1.170: show "Run `! claude update` to upgrade" and skip. If `.claude/
235
239
 
236
240
  If `model` pin exists but no `advisorModel`, suggest: `claude-opus-4-6`/`claude-opus-4-8` → `advisorModel: "fable"`, `opusplan` → `advisorModel: "claude-opus-4-6"`. Ask `[a/S]`, write only `advisorModel` if accepted.
237
241
 
242
+ ### Step 7.9: Effort Configuration Check (#384)
243
+
244
+ Runs regardless of version match (like Step 7.7). In `check-only` mode: report only, no mutations.
245
+
246
+ 1. Check `CLAUDE_CODE_EFFORT_LEVEL` env var. If set to `max`: **pass** (silent — this is the correct persistence path).
247
+ 2. If env var is unset, check `effortLevel` in settings cascade (`.claude/settings.local.json` → `.claude/settings.json` → `~/.claude/settings.json`).
248
+ 3. If `effortLevel` is `max` but `CLAUDE_CODE_EFFORT_LEVEL` env var is unset: warn that CC ignores session-only max in settings — only the env var persists it. Suggest adding to the `env` block in `.claude/settings.json`.
249
+ 4. If effort is unset or below `max`: warn "SDLC requires max effort" and suggest `/effort max` + env var persistence.
250
+
238
251
  ### Step 8: Apply Selected Changes
239
252
 
240
253
  For each approved file: Edit (existing) or Write (MISSING). For settings.json, apply the merge from Step 7.