agentic-sdlc-wizard 1.78.0 → 1.81.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/AI_SETUP_LANES.md +192 -0
- package/CHANGELOG.md +64 -0
- package/CLAUDE_CODE_SDLC_WIZARD.md +117 -59
- package/README.md +66 -2
- package/cli/init.js +42 -4
- package/cli/lib/repo-complexity.js +2 -2
- package/hooks/instructions-loaded-check.sh +3 -1
- package/hooks/model-effort-check.sh +34 -34
- package/package.json +2 -1
- package/skills/sdlc/SKILL.md +11 -9
- package/skills/setup/SKILL.md +46 -12
- package/skills/update/SKILL.md +12 -29
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# AI Setup Lanes
|
|
2
|
+
|
|
3
|
+
Three recommended AI coding setups for this repo. Setups A and B are complete triads: **planner → driver → reviewer**. Setup C is a lightweight driver-only lane for operational grunt work.
|
|
4
|
+
|
|
5
|
+
This is **guidance, not a hard rule**. Maintainer override is always allowed.
|
|
6
|
+
|
|
7
|
+
## Setup A — Claude Premium
|
|
8
|
+
|
|
9
|
+
| Role | Model |
|
|
10
|
+
|------|-------|
|
|
11
|
+
| **Advisor** | Fable 5 (via `advisorModel: "fable"` in project settings — auto-consults at key decisions) |
|
|
12
|
+
| **Driver** | Opus 4.6 max |
|
|
13
|
+
| **Reviewer** | Codex (GPT-5.5) xhigh |
|
|
14
|
+
| **Escalation** | + Fable 5 review (security, releases, wide-blast architecture only) |
|
|
15
|
+
|
|
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
|
+
|
|
18
|
+
## Setup B — Claude Saver (OpusPlan)
|
|
19
|
+
|
|
20
|
+
| Role | Model |
|
|
21
|
+
|------|-------|
|
|
22
|
+
| **Planner** | Opus 4.6 max (via Plan Mode — Shift+Tab) |
|
|
23
|
+
| **Advisor** | Opus 4.6 (via `advisorModel: "claude-opus-4-6"` — compensates for Sonnet driver) |
|
|
24
|
+
| **Driver** | Sonnet (latest, auto execute mode) |
|
|
25
|
+
| **Reviewer** | Codex (GPT-5.5) xhigh |
|
|
26
|
+
|
|
27
|
+
Cost-efficient lane using CC's native `opusplan` alias. Opus reasons during Plan Mode (Shift+Tab), Sonnet executes. Both 200K context, Max-bundled — no API credit drain. Pin `model: "opusplan"` + `advisorModel: "claude-opus-4-6"` + `CLAUDE_CODE_EFFORT_LEVEL=max` in project settings. The Opus advisor auto-compensates for Sonnet's lighter reasoning at key decision points. GPT-5.5 xhigh is the cross-model reviewer.
|
|
28
|
+
|
|
29
|
+
## When to Use Setup A
|
|
30
|
+
|
|
31
|
+
Reach for Premium when the change can damage a consumer repo or has high blast radius:
|
|
32
|
+
|
|
33
|
+
- Architecture or methodology changes
|
|
34
|
+
- Tagged release prep
|
|
35
|
+
- Installer behavior (`cli/`, `init`, `setup-wizard`)
|
|
36
|
+
- Destructive file operations
|
|
37
|
+
- Package publishing
|
|
38
|
+
- Generated repo modifications (template changes)
|
|
39
|
+
- CI / release automation
|
|
40
|
+
- Security-sensitive behavior
|
|
41
|
+
- Anything that could damage a consumer repo
|
|
42
|
+
|
|
43
|
+
## When to Use Setup B
|
|
44
|
+
|
|
45
|
+
Setup B is sufficient for routine work where a Sonnet driver can ship with a strong reviewer:
|
|
46
|
+
|
|
47
|
+
- Routine implementation
|
|
48
|
+
- Documentation
|
|
49
|
+
- Examples
|
|
50
|
+
- Tests
|
|
51
|
+
- Normal CLI changes (non-installer)
|
|
52
|
+
- Low-risk methodology edits
|
|
53
|
+
- Mechanical refactors
|
|
54
|
+
|
|
55
|
+
## Setup C — Claude Lite
|
|
56
|
+
|
|
57
|
+
| Role | Model | Notes |
|
|
58
|
+
|------|-------|-------|
|
|
59
|
+
| **Planner** | You (the user) | Task is pre-planned, no model reasoning needed |
|
|
60
|
+
| **Driver** | Sonnet 4.6 | Same model as Setup B driver — Max-bundled, no extra model to manage |
|
|
61
|
+
| **Reviewer** | None | Blast radius too low for cross-model overhead |
|
|
62
|
+
|
|
63
|
+
The "just do the thing" lane. No TDD enforcement, no cross-model review, no planning phase. You already know what to do — you just need a fast, cheap pair of hands.
|
|
64
|
+
|
|
65
|
+
## When to Use Setup C
|
|
66
|
+
|
|
67
|
+
Setup C is for work where SDLC discipline overhead exceeds the value:
|
|
68
|
+
|
|
69
|
+
- Run a script with basic intelligence
|
|
70
|
+
- Deploy to staging (prod deploys need Setup A's discipline — human gate + rollback plan)
|
|
71
|
+
- Config updates, env var changes
|
|
72
|
+
- File moves, renames, bulk operations
|
|
73
|
+
- Repo maintenance (dependency bumps, lockfile refreshes)
|
|
74
|
+
- Simple administrative tasks across repos like `~/afterhours`
|
|
75
|
+
- Anything where blast radius is low and you need speed, not depth
|
|
76
|
+
|
|
77
|
+
**Not Lite — escalate to A or B:** env vars that touch secrets or credentials, dependency bumps with security advisories, destructive bulk ops (rm -rf, drop table), migrations, prod-like shared staging, anything security-sensitive. If you're unsure, it's not Lite.
|
|
78
|
+
|
|
79
|
+
## What Setup C explicitly skips
|
|
80
|
+
|
|
81
|
+
- No TDD (no test-first for running a deploy script)
|
|
82
|
+
- No cross-model review (not worth the cost or time for grunt work)
|
|
83
|
+
- No planning phase (you are the planner)
|
|
84
|
+
- No effort escalation (Sonnet standard is plenty)
|
|
85
|
+
|
|
86
|
+
**The discipline of knowing when NOT to use discipline.** Documenting this lane tells users "here's when to switch off the heavy methodology" rather than silently tempting them to skip it. If the task turns out to be harder than expected, escalate to Setup B or A.
|
|
87
|
+
|
|
88
|
+
## Final Review Policy
|
|
89
|
+
|
|
90
|
+
**Setups A and B end at GPT-5.5 xhigh as the cross-model reviewer.** Claude can't grade its own homework — the reviewer always belongs to a different lab with different blind spots. See [CLAUDE_CODE_SDLC_WIZARD.md → "Cross-Model Review (Codex)"](CLAUDE_CODE_SDLC_WIZARD.md) for the handoff protocol.
|
|
91
|
+
|
|
92
|
+
**Setup C has no reviewer** — the blast radius doesn't justify it. If you're unsure whether a task is truly Lite, it probably isn't. Escalate.
|
|
93
|
+
|
|
94
|
+
If GPT-5.5 isn't available on your OpenAI account, Codex auto-falls back to GPT-5.4 — still keep `model_reasoning_effort="xhigh"`. Lower reasoning misses subtle bugs that the reviewer is the last gate to catch.
|
|
95
|
+
|
|
96
|
+
## Version Requirement
|
|
97
|
+
|
|
98
|
+
`advisorModel` in settings.json requires **Claude Code v2.1.170+**. Check your version with `claude --version`. If below v2.1.170, update from inside a CC session:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
! claude update
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The `!` prefix runs shell commands inside your CC session — no need to exit and re-enter. After updating, restart the session for the advisor to activate.
|
|
105
|
+
|
|
106
|
+
Fable 5 as advisor also requires Fable 5 access for your organization/plan (free on Max through June 22, 2026).
|
|
107
|
+
|
|
108
|
+
## Credit-Spend Warning
|
|
109
|
+
|
|
110
|
+
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:
|
|
111
|
+
|
|
112
|
+
- Drop to Setup B for the remainder of the day
|
|
113
|
+
- Or drop to Setup C for grunt work that doesn't need Opus reasoning
|
|
114
|
+
- Or use Sonnet directly for the final mechanical edits, then run the GPT-5.5 reviewer over the whole diff at the end
|
|
115
|
+
|
|
116
|
+
**Setup C uses Sonnet** — same model as Setup B's driver, Max-bundled. One less model to manage.
|
|
117
|
+
|
|
118
|
+
The reviewer (GPT-5.5 xhigh) is billed against your OpenAI account, separately. Watch both bills.
|
|
119
|
+
|
|
120
|
+
## How Billing Works — 1M Context, Max Plan, and the June 15 Split
|
|
121
|
+
|
|
122
|
+
A common question: **"does the `[1m]` model alias get billed differently? Does it pull from my Max plan or from API credits?"**
|
|
123
|
+
|
|
124
|
+
The short answer: **Setup A uses Fable advisor + Opus driver (both Max-bundled in interactive sessions). Setup B is fully Max-bundled via opusplan + Opus advisor.** Here's the detail.
|
|
125
|
+
|
|
126
|
+
### 1M context is free on Max — no API premium
|
|
127
|
+
|
|
128
|
+
[Anthropic 2026-03-13](https://claude.com/blog/1m-context-ga): 1M context is GA at standard $5/$25 per million tokens for Opus 4.6 (also 4.7, 4.8). No long-context multiplier. **No beta header required**, requests over 200K tokens just work.
|
|
129
|
+
|
|
130
|
+
For Claude Code on Max / Team / Enterprise plans, **1M context is included automatically** with no extra usage allocation. Whether you set `claude-opus-4-6` or `claude-opus-4-6[1m]` doesn't change *what* you're billed — both pull from the same per-token budget on your subscription. The `[1m]` suffix just makes the alias explicit so it sticks across alias-resolution changes; functionally Opus 4.6 in Claude Code today *is* the 1M-context model on a Max plan.
|
|
131
|
+
|
|
132
|
+
(Pro plan is the exception: Pro users need "Enable usage credits" turned on in their Claude account settings to use 1M context. Max / Team / Enterprise have it on by default.)
|
|
133
|
+
|
|
134
|
+
### The June 15, 2026 billing split
|
|
135
|
+
|
|
136
|
+
[Anthropic moved a slice of usage off the subscription](https://codersera.com/blog/anthropic-june-2026-billing-change-claude-code/) onto a separate metered credit pool that bills at full API rates:
|
|
137
|
+
|
|
138
|
+
| Surface | Billing as of June 15, 2026 |
|
|
139
|
+
|---|---|
|
|
140
|
+
| **Interactive Claude Code in terminal** (you typing into Claude Code right now) | **Stays on Max subscription** — unchanged |
|
|
141
|
+
| Claude.ai web / desktop / mobile chat | Stays on Max subscription |
|
|
142
|
+
| Claude Cowork | Stays on Max subscription |
|
|
143
|
+
| `claude -p` (headless / `--print`) | **Moves to separate credit pool**, billed at API rates |
|
|
144
|
+
| Claude Agent SDK | Moves to separate credit pool |
|
|
145
|
+
| Claude Code GitHub Actions | Moves to separate credit pool |
|
|
146
|
+
| Third-party apps via Agent SDK | Moves to separate credit pool |
|
|
147
|
+
|
|
148
|
+
Credit allocations: Pro $20/mo, Max 5x $100/mo, Max 20x $200/mo. **No rollover.**
|
|
149
|
+
|
|
150
|
+
### What this means for the lanes
|
|
151
|
+
|
|
152
|
+
- **Setup A — Premium (Fable advisor + Opus driver):** Fable 5 advisor via `advisorModel: "fable"` in project settings — interactive session, Max-bundled. Opus 4.6 max driver on Max. GPT-5.5 xhigh reviewer on ChatGPT subscription.
|
|
153
|
+
- **Setup B — Saver (OpusPlan):** **fully Max-bundled.** `opusplan` uses Opus (plan mode) + Sonnet (execute mode), both at 200K context — no `[1m]` variants, no credit drain. This is why Setup B now recommends `opusplan` instead of the old `sonnet[1m]` pin (#390).
|
|
154
|
+
- **⚠️ Avoid `sonnet[1m]`:** Sonnet with 1M context draws from your usage credits pool ($3/$15 per Mtok), NOT your Max subscription. The `/model` picker shows this explicitly. Plain `sonnet` (200K) or `opusplan` stays on Max.
|
|
155
|
+
- **Reviewer (GPT-5.5 xhigh) in both lanes:** billed against your OpenAI account, completely separate from Anthropic.
|
|
156
|
+
- **CI loops that use `claude -p` post-June-15:** these now bill against the separate Anthropic credit pool, not your Max subscription. The wizard's CI shepherd loops (E2E scoring, weekly-update jobs) are local-only on the maintainer's machine and stay on Max; consumer-repo CI integrations may need to budget the new credit pool.
|
|
157
|
+
|
|
158
|
+
### Caveat: Setup B's cost-saving has conditions
|
|
159
|
+
|
|
160
|
+
The savings argument for Setup B is "Sonnet driver is cheaper than Opus driver per turn." **That's true at standard 200K context.** If your Sonnet driver needs to load >200K tokens (large diff, multi-file refactor, monorepo audit), the bill quietly flips:
|
|
161
|
+
|
|
162
|
+
| Mode | Per-token rate | Pool |
|
|
163
|
+
|---|---|---|
|
|
164
|
+
| Setup A — Opus 4.6 1M | $5/$25 per Mtok | **Max subscription** |
|
|
165
|
+
| Setup B — Sonnet 4.6 standard | $3/$15 per Mtok | **Max subscription** |
|
|
166
|
+
| Setup B — Sonnet 4.6 1M | $3/$15 per Mtok | **Credits pool** |
|
|
167
|
+
|
|
168
|
+
So **for context-heavy work that crosses 200K, Setup A on Max is actually cheaper than Setup B on credits** — because Setup A's Opus stays on the Max pool while Setup B's Sonnet 1M draws down a separately-metered $100/mo (Max 5x) or $200/mo (Max 20x) credit budget.
|
|
169
|
+
|
|
170
|
+
**Practical guidance:**
|
|
171
|
+
|
|
172
|
+
- **Subscription-first mindset (recommended):** Use Setup A unless you're confident the Sonnet driver in Setup B stays under 200K context. The Opus 4.6 max planner+driver combo lives entirely on Max — no credit-pool drawdown.
|
|
173
|
+
- **Setup B is a real cost win only when:** the driver task fits in ≤ 200K (routine implementation, single-file work, small refactors, docs). Use B specifically for those, not as a blanket choice.
|
|
174
|
+
- **Watch the picker.** When you swap to Sonnet 1M, Claude Code shows "Draws from usage credits" explicitly. That's your billing flip signal — choose Opus 1M instead if you want to stay on Max.
|
|
175
|
+
|
|
176
|
+
### Bottom line
|
|
177
|
+
|
|
178
|
+
If you're using Claude Code interactively (you, in your terminal, doing `/sdlc` work), **both lanes ride your existing Max subscription**, and the `[1m]` alias is the same billable budget as plain `claude-opus-4-6`. No extra charges for the 1M context. The June 15 split only affects programmatic / headless / CI use of Claude Code.
|
|
179
|
+
|
|
180
|
+
Watch the headless surface if you've automated `claude -p` calls in your project — those now bill differently as of June 15, 2026.
|
|
181
|
+
|
|
182
|
+
## Maintainer Override
|
|
183
|
+
|
|
184
|
+
**Override at any time.** A blanket setup choice doesn't replace judgment per change. If you're touching CI but the change is a one-line typo, Setup B is fine. If you're touching docs but the section is the wizard's safety-critical hook ordering, Setup A is the call.
|
|
185
|
+
|
|
186
|
+
The wizard does not enforce setup lane selection — it documents the recommended default per change shape. Whatever ships is your call.
|
|
187
|
+
|
|
188
|
+
## See Also
|
|
189
|
+
|
|
190
|
+
- [`CLAUDE_CODE_SDLC_WIZARD.md`](CLAUDE_CODE_SDLC_WIZARD.md) — Full wizard doc, including Stability tier opt-in for the wider model choice
|
|
191
|
+
- [`README.md` § Choosing Your Model](README.md#choosing-your-model) — Model selection philosophy
|
|
192
|
+
- [`AGENTS.md`](AGENTS.md) — Codex/reviewer guidelines used in both lanes
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,70 @@ 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.81.0] - 2026-06-10
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **Native `advisorModel` support (CC v2.1.170+).** Setup A (Premium) now uses `advisorModel: "fable"` in project settings instead of manual `Agent(model: "fable")` subagent spawning. Fable 5 auto-consults at key decision points (architecture, complexity, blast-radius). Setup B (Saver) gains `advisorModel: "claude-opus-4-6"` — Opus advisor compensates for Sonnet driver's lighter reasoning.
|
|
12
|
+
|
|
13
|
+
- **Settings are project-level by default.** The setup skill writes `model` + `advisorModel` to `.claude/settings.json` (project-scoped, committed, shared with team). After writing, asks if user also wants `advisorModel` in global `~/.claude/settings.json`. Never nukes global settings without consent.
|
|
14
|
+
|
|
15
|
+
- **Update skill gains Step 7.8 (advisorModel migration).** Detects projects with a model pin but no `advisorModel` and suggests the right advisor pairing. Version-gated to CC v2.1.170+.
|
|
16
|
+
|
|
17
|
+
- **CLI init.js smart-merge handles `advisorModel`.** Same pattern as `model` — only set if missing, preserve on `--force`.
|
|
18
|
+
|
|
19
|
+
- **This repo dogfoods Setup A.** Project settings now include `model: "claude-opus-4-6"` + `advisorModel: "fable"`.
|
|
20
|
+
|
|
21
|
+
- **Documented `! claude update` tip** for users needing v2.1.170+ — the `!` prefix runs shell commands inside a CC session without exiting.
|
|
22
|
+
|
|
23
|
+
### Why
|
|
24
|
+
|
|
25
|
+
- The advisor tool (API beta `advisor-tool-2026-03-01`) graduated to native CC support as `advisorModel` in v2.1.170+. Native advisor is strictly better than manual subagent spawning: automatic consultation at key decision points, no headless billing risk, persists across sessions via settings.json, and integrates with CC's settings precedence (project > global).
|
|
26
|
+
|
|
27
|
+
- Project-level settings prevent the wizard from overwriting a multi-project user's global model config. Settings precedence: Managed > CLI flags > Local > Project > User (global). Writing project-level means each repo picks its own lane independently.
|
|
28
|
+
|
|
29
|
+
## [1.80.0] - 2026-06-09
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- **Flipped default recommended model: Opus 4.8 → Opus 4.6 max.** v1.79.0 added Opus 4.6 max as opt-in Stability tier; v1.80.0 graduates it to the wizard's recommended flagship default. Setup wizard's `[f] Flagship full` choice now writes `model: "claude-opus-4-6[1m]"` (was `"opus[1m]"` → 4.8). All wizard prose flipped accordingly: SDLC.md Recommended Model row, CLAUDE_CODE_SDLC_WIZARD.md effort warning + Strict Effort behavior section + mixed-mode reviewer references, skills/sdlc/SKILL.md model section + cross-model reviewer line, skills/setup/SKILL.md choice list, hooks/model-effort-check.sh RECOMMENDED_MODEL + warning text, cli/lib/repo-complexity.js tier comments, README.md "Choosing Your Model" section reframed as a 6-source argument for why 4.6 max beats 4.8 in production SDLC workflows.
|
|
34
|
+
|
|
35
|
+
- **Added `[l] Latest` tier as opt-in for Opus 4.8.** Replaces v1.79.0's `[s] Stability` choice (which is now the default — graduated, not removed). Latest tier ships SWE-Bench Pro / Terminal-Bench 2.1 / dynamic-workflows / parallel-subagent-swarm features 4.6 doesn't have. Documents the tradeoffs explicitly: 40-60× cache token jump at HIGH effort ([AI Weekly](https://aiweekly.co/alerts/claude-opus-48-thinking-burns-900k-tokens-per-turn)), `max` is worse than `xhigh` on 4.8 ([Andon Labs Vending-Bench](https://andonlabs.com/blog/opus-4-8-vending-bench)), active GitHub regressions still open. Recommended effort for 4.8 is `xhigh`, not `max`.
|
|
36
|
+
|
|
37
|
+
- **Setup wizard choice list updated** from `[N/m/f/s]` to `[N/m/f/l]`. The Stability tier graduates into Flagship; Latest replaces Stability as the new optional opposite-direction choice.
|
|
38
|
+
|
|
39
|
+
### Why
|
|
40
|
+
|
|
41
|
+
- Six independent sources converged in the 12 days since 4.8 launched (2026-05-28) on the same conclusion: **4.6 is the only Opus where `max` effort tolerates without overthinking, and 4.7/4.8's tokenizer + agentic improvements come with structural token-burn tradeoffs that hurt long-running SDLC workflows.** Sources: Andon Labs Vending-Bench arena (4.8 finished last; "Max reasoning is not the best reasoning effort"), AI Weekly (40-60× cache token jump at HIGH effort; up to 900K tokens per turn), [Tech.yahoo review](https://tech.yahoo.com/ai/claude/articles/claude-opus-4-8-review-130106963.html) ("Anthropic deliberately made Opus's new tokenizer less efficient"), [Paweł Huryn's 4.7 guide](https://www.productcompass.pm/p/claude-opus-4-7-guide) ("most complaints about 4.7 feeling slow stem from people reflexively using max"), [BSWEN effort decision guide](https://docs.bswen.com/blog/2026-04-19-claude-code-effort-level-decision-guide/) ("Max on Opus causes overthinking"), r/Claudeopus field reports including one maintainer's literal A/B ("12 hours with 4.8 zero deliverables; plugged in 4.6, spec written + 133 tests green in one session").
|
|
42
|
+
|
|
43
|
+
- Active GitHub regressions documented against 4.8 in Claude Code: false-greens ([#63861](https://github.com/anthropics/claude-code/issues/63861)), 2-3× token burn ([#64961](https://github.com/anthropics/claude-code/issues/64961)), 46K tokens for simple coding turn ([#64153](https://github.com/anthropics/claude-code/issues/64153)), dropped constraints during execution ([#65932](https://github.com/anthropics/claude-code/issues/65932)), fabricated identifiers in parallel batches.
|
|
44
|
+
|
|
45
|
+
- 4.6 is Anthropic-supported until ≥ Feb 5, 2027 per the [official deprecation page](https://platform.claude.com/docs/en/about-claude/model-deprecations) — 8 months minimum runway. The Feb-Apr 2026 quality bugs that triggered the original "is 4.6 nerfed" wave are fully fixed per Anthropic's [April 23 postmortem](https://www.anthropic.com/engineering/april-23-postmortem); the wizard's default picks up the post-fix model.
|
|
46
|
+
|
|
47
|
+
- Aligns the wizard with the [AI Setup Lanes](AI_SETUP_LANES.md) doc shipped in v1.79.0, which already named Opus 4.6 max as "Claude Premium" for both planner and driver in Setup A. The wizard's default flagship recommendation now matches.
|
|
48
|
+
|
|
49
|
+
### Notes
|
|
50
|
+
|
|
51
|
+
- **This is an explicit bet against the "newest = best" convention.** Anthropic recommends Opus 4.8 as their flagship; the wizard recommends Opus 4.6 max instead. Documented in README.md "Choosing Your Model" with the full six-source argument so users can evaluate the bet themselves and pick `[l] Latest` if they want Anthropic's official flagship.
|
|
52
|
+
|
|
53
|
+
- **No breaking changes to consumer-repo installs.** `settings.json` template still ships unpinned (auto-mode default unchanged). The flip is at the *setup wizard's recommendation step* — users running `setup-wizard` get the new `[f] Flagship full` choice writing 4.6 max instead of 4.8. Users who already opted into v1.78.0/v1.79.0 flagship and want to stay current can re-run setup or manually flip `claude-opus-4-8` → `claude-opus-4-6` in their `~/.claude/settings.json` env vars.
|
|
54
|
+
|
|
55
|
+
- **v1.79.0's Stability tier code stays in git history** but is now redundant — the Stability tier *was* "opt into Opus 4.6 max"; in v1.80.0 that's the default. No PR needed to remove the redundancy because the v1.80.0 prose subsumes it cleanly (Stability section content reframed as Latest tier opt-out instructions).
|
|
56
|
+
|
|
57
|
+
- **If 4.8 regressions materially improve** (Anthropic ships hotfixes for the token-burn issues, GitHub bug closures, second wave of positive field reports), the default can flip back via a single PR. The CHANGELOG entry above names the specific signals to watch.
|
|
58
|
+
|
|
59
|
+
## [1.79.0] - 2026-06-08
|
|
60
|
+
|
|
61
|
+
### Added
|
|
62
|
+
|
|
63
|
+
- **Opus 4.6 Stability tier** as a fourth setup-wizard model choice ([s] Stability, alongside [N] No pin / [m] Mixed-mode / [f] Flagship). Pins `model: "claude-opus-4-6[1m]"` with `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=30`. Pairs with `max` effort. Community signal converges on 4.6 being the only Opus version `max` tolerates without overthinking — Andon Labs Vending-Bench arena (4.8 finished last, "Max reasoning is not the best reasoning effort"), Paweł Huryn's 4.7 guide ("most complaints about 4.7 feeling slow stem from people reflexively using max"), BSWEN effort decision guide ("Max on Opus causes overthinking"), r/Claudeopus field reports (one maintainer: "12 hours with 4.8 zero deliverables; plugged in 4.6, spec written + 133 tests green in one session"; another commenter: "4.6 had the best overall balance at max"). New section "Stability tier — Opus 4.6 at max effort" in `CLAUDE_CODE_SDLC_WIZARD.md` documents when to pick it (production 4.7/4.8 regression escape — false-greens GH #63861, 2-3× token burn #64961, dropped constraints #65932, fabricated identifiers; context-heavy work where 4.6 scored 94.7% NYT Connections vs 4.7's 41%; original tokenizer avoids the 4.7+ 12-18% English token tax) and tradeoffs (misses 4.8's SWE-Bench Pro / Terminal-Bench / dynamic-workflows gains). Anthropic-supported until ≥ Feb 5, 2027 (8 months minimum runway per [Anthropic deprecation page](https://platform.claude.com/docs/en/about-claude/model-deprecations)). Wizard default remains flagship Opus 4.8 — Stability is opt-in, not a recommendation swap. Setup skill updated with `[s] Stability` choice + handler; settings.json snippet provided for both global (env-var sweep across all projects via `ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-6`) and project-scoped pin patterns.
|
|
64
|
+
|
|
65
|
+
### Notes
|
|
66
|
+
|
|
67
|
+
- **4.6's Feb-Apr 2026 quality bugs are fully fixed per [Anthropic's April 23 postmortem](https://www.anthropic.com/engineering/april-23-postmortem).** The three bugs (effort default high→medium Mar 4-Apr 7; cache-clear-every-turn Mar 26-Apr 10; verbosity-limit prompt Apr 16-Apr 20) are resolved. The Stability tier picks up the post-fix model, not the regression window. Anthropic reset usage limits as compensation Apr 23.
|
|
68
|
+
- **Wizard default unchanged.** v1.78.0's flagship recommendation of Opus 4.8 stays. The Stability tier is an additive sibling for maintainers who've hit 4.7/4.8 regressions in production — surfaced as a choice in the setup wizard, not flipped as the default. If the community-validated A/B of 4.6 max vs 4.7/4.8 max materializes as a sustained pattern across maintainers, a future release may revisit the default.
|
|
69
|
+
- **Validation pending.** This release ships the tier so maintainers can opt in across their own repos and run the comparison. Real-world signal from extended use (token spend deltas, context-fidelity wins, false-green regressions caught) feeds back into a v1.80.0 calibration if warranted.
|
|
70
|
+
|
|
7
71
|
## [1.78.0] - 2026-06-02
|
|
8
72
|
|
|
9
73
|
### Changed
|
|
@@ -249,28 +249,28 @@ When Anthropic provides official plugins or tools that handle something:
|
|
|
249
249
|
|
|
250
250
|
Claude Code's **effort level** controls how much thinking the model does before responding. Higher effort = deeper reasoning but more tokens.
|
|
251
251
|
|
|
252
|
-
> ⚠️ **
|
|
252
|
+
> ⚠️ **SDLC requires `max` effort on all Claude models.** Below max = degraded reasoning, shallow TDD, weak self-review. Persist via env var: `CLAUDE_CODE_EFFORT_LEVEL=max` (CC docs: `effortLevel: "max"` in settings.json is **session-only and silently ignored** — the env var is the only way to persist it).
|
|
253
253
|
|
|
254
254
|
| Level | When to Use | How to Set |
|
|
255
255
|
|-------|-------------|------------|
|
|
256
|
-
| `
|
|
257
|
-
| `
|
|
258
|
-
| `max` | **Recommended default for Opus 4.8 SDLC work.** Multi-file changes, architecture decisions, debugging, cross-model reviews, any task touching wizard/skill/CI code | `/effort max` (session only — resets next session) |
|
|
256
|
+
| `max` | **Required for all SDLC work.** Claude: max. OpenAI/Codex: xhigh (their highest). | `CLAUDE_CODE_EFFORT_LEVEL=max` in settings env block |
|
|
257
|
+
| `high` or below | **Not for SDLC work.** Only for trivial grep/search subagents | `effort: high` in a specific subagent frontmatter only |
|
|
259
258
|
|
|
260
|
-
**Strict effort behavior (Opus 4.7+, carried forward
|
|
259
|
+
**Strict effort behavior (Opus 4.7+, carried forward in 4.8 — and why 4.6 max is the wizard's pick):**
|
|
261
260
|
- **`xhigh` was introduced in 4.7** — sits between `high` and `max`, designed for coding and agentic work (30+ minute tasks with token budgets in the millions)
|
|
262
261
|
- **Claude Code defaults to `xhigh`** on Opus 4.7+ for all plans
|
|
263
262
|
- **Opus 4.7+ respects effort levels more strictly** than 4.6 — at lower levels it scopes work tighter instead of going above and beyond. If you see shallow reasoning, raise effort rather than prompting around it
|
|
264
263
|
- **`budget_tokens` is deprecated** on Opus 4.7+ — use adaptive thinking with effort instead
|
|
264
|
+
- **4.6 max is the wizard's flagship pick despite this:** community signal converges on 4.6 being the only Opus version where `max` effort tolerates without overthinking (Andon Labs Vending-Bench, Paweł Huryn's 4.7 guide, BSWEN effort decision guide, r/Claudeopus field reports). On 4.7 and 4.8, `max` triggers excessive reasoning that hits context limits faster and burns more tokens per turn — making the strict-effort behavior backfire. 4.6 max stays in the sweet spot. See [README → "Choosing Your Model"](../README.md#choosing-your-model) for the full evidence
|
|
265
265
|
- When running at `xhigh` or `max`, set a large `max_tokens` (64k+) so the model has room to think across subagents and tool calls
|
|
266
266
|
|
|
267
267
|
**Why `high` was the previous default:** Claude Code uses **adaptive thinking** to dynamically allocate reasoning budget per turn. On Pro and Max plans, the default effort level was **medium (85)**, which causes the model to under-allocate reasoning on complex multi-step tasks — leading to shallow analysis, missed edge cases, and "lazy" outputs. This was [confirmed by Anthropic engineer Boris Cherny](https://github.com/anthropics/claude-code/issues/42796) and is documented at [code.claude.com](https://code.claude.com/docs/en/model-config). API, Team, and Enterprise plans default to high effort and are not affected.
|
|
268
268
|
|
|
269
|
-
**Don't rely on the CC default — set effort yourself.** Anthropic's [2026-04-23 post-mortem](https://www.anthropic.com/engineering/april-23-postmortem) is independent third-party evidence that CC has flipped reasoning_effort defaults across versions (high → medium → xhigh/high). The default has changed before and will change again. The wizard's `model-effort-check.sh` hook
|
|
269
|
+
**Don't rely on the CC default — set effort yourself.** Anthropic's [2026-04-23 post-mortem](https://www.anthropic.com/engineering/april-23-postmortem) is independent third-party evidence that CC has flipped reasoning_effort defaults across versions (high → medium → xhigh/high). The default has changed before and will change again. The wizard's `model-effort-check.sh` hook warns on anything below `max` at session start. Set `CLAUDE_CODE_EFFORT_LEVEL=max` in your settings env block, and treat any "I assumed the default was X" reasoning as a bug.
|
|
270
270
|
|
|
271
|
-
The `/sdlc` skill sets `effort:
|
|
271
|
+
The `/sdlc` skill sets `effort: max` in its frontmatter, overriding the medium default on every SDLC invocation. This matches the wizard's v1.80.0 contract: Opus 4.6 max is the recommended flagship, and `max` is where SDLC-compliant work actually happens on 4.6.
|
|
272
272
|
|
|
273
|
-
**Nuclear option — disable adaptive thinking entirely:** Set `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` in your environment or settings.json `env` block. This forces a fixed reasoning budget per turn instead of letting the model dynamically allocate. Use this if you observe persistent quality issues even
|
|
273
|
+
**Nuclear option — disable adaptive thinking entirely:** Set `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` in your environment or settings.json `env` block. This forces a fixed reasoning budget per turn instead of letting the model dynamically allocate. Use this if you observe persistent quality issues even at `max` effort. See [Claude Code model config docs](https://code.claude.com/docs/en/model-config) for details.
|
|
274
274
|
|
|
275
275
|
**When to escalate to `max`:**
|
|
276
276
|
- You hit LOW confidence on your approach — deeper thinking may find clarity
|
|
@@ -281,27 +281,27 @@ The `/sdlc` skill sets `effort: high` in its frontmatter as a baseline, overridi
|
|
|
281
281
|
|
|
282
282
|
**How it works:**
|
|
283
283
|
- `/effort max` changes effort for the current session only (resets next session)
|
|
284
|
-
- `effort:
|
|
284
|
+
- `effort: max` in SKILL.md frontmatter persists — every `/sdlc` invocation uses `max`
|
|
285
285
|
- You can also type `ultrathink` in any prompt for a single high-effort turn
|
|
286
286
|
|
|
287
|
-
**Cost note:** `max` uses
|
|
287
|
+
**Cost note:** `max` uses more tokens than lower efforts. Always `max` on all Claude models (#395). Token burn is higher on 4.7/4.8 than 4.6 — that's why 4.6 is the wizard's flagship.
|
|
288
288
|
|
|
289
289
|
> See also: the **Effort** column in the [Confidence Check table](#confidence-check-required) below for per-confidence-level guidance on when to escalate to `max`.
|
|
290
290
|
|
|
291
291
|
### Anti-Laziness Guidance for CLAUDE.md
|
|
292
292
|
|
|
293
|
-
If you notice Claude Code producing shallow outputs despite `effort:
|
|
293
|
+
If you notice Claude Code producing shallow outputs despite `effort: max`, add these instructions to your project's `CLAUDE.md`. These target the **specific mechanisms** behind quality degradation — adaptive thinking and effort levels — rather than vague directives:
|
|
294
294
|
|
|
295
295
|
```markdown
|
|
296
296
|
## Quality Anchoring
|
|
297
|
-
- This project uses effort:
|
|
297
|
+
- This project uses effort: max via SDLC skill frontmatter. Do not reduce reasoning depth.
|
|
298
298
|
- Adaptive thinking may under-allocate your thinking budget on complex tasks. When working on
|
|
299
299
|
multi-file changes, architecture decisions, or debugging: reason through the full problem
|
|
300
300
|
before acting, even if the system prompt suggests taking the "simplest approach first."
|
|
301
301
|
- If you catch yourself skipping steps, re-read the task requirements and verify completeness.
|
|
302
302
|
```
|
|
303
303
|
|
|
304
|
-
**Why this works:** Claude Code's hidden system prompt includes "Go straight to the point. Try the simplest approach first." This is good for simple queries but causes the model to under-invest in reasoning on complex SDLC tasks. The instructions above don't fight the system prompt — they provide task-specific context that justifies deeper reasoning. Note that CLAUDE.md instructions can be partially overridden by the system prompt, so `effort:
|
|
304
|
+
**Why this works:** Claude Code's hidden system prompt includes "Go straight to the point. Try the simplest approach first." This is good for simple queries but causes the model to under-invest in reasoning on complex SDLC tasks. The instructions above don't fight the system prompt — they provide task-specific context that justifies deeper reasoning. Note that CLAUDE.md instructions can be partially overridden by the system prompt, so `effort: max` in skill frontmatter remains the primary defense.
|
|
305
305
|
|
|
306
306
|
---
|
|
307
307
|
|
|
@@ -392,6 +392,34 @@ New built-in commands available to use alongside the wizard:
|
|
|
392
392
|
|
|
393
393
|
**Tip**: `/simplify` pairs well with the self-review phase. Run it after implementation as an additional quality check.
|
|
394
394
|
|
|
395
|
+
### Advisor Model (v2.1.170+)
|
|
396
|
+
|
|
397
|
+
**What changed**: `advisorModel` in settings.json configures a stronger model that Claude Code automatically consults at key decision points — before committing to an approach, when stuck on recurring errors, or before declaring a task done. Replaces manual `Agent(model: "fable")` subagent spawning for planning.
|
|
398
|
+
|
|
399
|
+
**Three ways to enable:**
|
|
400
|
+
|
|
401
|
+
| Method | Scope | Persists? |
|
|
402
|
+
|--------|-------|-----------|
|
|
403
|
+
| `"advisorModel": "fable"` in `.claude/settings.json` | Project | Yes (committed, shared with team) |
|
|
404
|
+
| `/advisor fable` | User (global `~/.claude/settings.json`) | Yes (all projects) |
|
|
405
|
+
| `--advisor fable` CLI flag | Session | No |
|
|
406
|
+
|
|
407
|
+
**Recommended pairings:**
|
|
408
|
+
|
|
409
|
+
| Driver | Advisor | Lane |
|
|
410
|
+
|--------|---------|------|
|
|
411
|
+
| Opus 4.6 (`claude-opus-4-6`) | Fable (`"fable"`) | Setup A — Premium |
|
|
412
|
+
| Sonnet via opusplan | Opus (`"claude-opus-4-6"`) | Setup B — Saver |
|
|
413
|
+
| Opus 4.8 (`claude-opus-4-8`) | Fable (`"fable"`) | Latest tier |
|
|
414
|
+
|
|
415
|
+
**Settings precedence:** Managed > CLI flags > Local (`.claude/settings.local.json`) > Project (`.claude/settings.json`) > User (`~/.claude/settings.json`). The wizard writes project-level by default — never nukes global settings. Setup skill Step 9.5 asks if you also want global.
|
|
416
|
+
|
|
417
|
+
**Important:** Fable does NOT appear in the `/advisor` interactive picker. Set it via `/advisor fable`, `--advisor fable`, or `advisorModel: "fable"` in settings.json.
|
|
418
|
+
|
|
419
|
+
**Billing:** Advisor queries in interactive sessions are Max-bundled (same pool as the driver). The advisor does not trigger headless/credit-pool billing.
|
|
420
|
+
|
|
421
|
+
**To update:** Run `! claude update` from inside a CC session to get v2.1.170+. The `!` prefix runs shell commands inline — no need to exit.
|
|
422
|
+
|
|
395
423
|
### Skill Frontmatter Fields (v2.1.80+)
|
|
396
424
|
|
|
397
425
|
Skills support these frontmatter fields:
|
|
@@ -400,14 +428,14 @@ Skills support these frontmatter fields:
|
|
|
400
428
|
|-------|---------|---------|
|
|
401
429
|
| `name` | Skill name (matches `/command`) | `name: sdlc` |
|
|
402
430
|
| `description` | Trigger description for auto-invocation | `description: Full SDLC workflow...` |
|
|
403
|
-
| `effort` | Set reasoning effort level | `effort:
|
|
431
|
+
| `effort` | Set reasoning effort level | `effort: max` |
|
|
404
432
|
| `paths` | Restrict skill to specific file patterns | `paths: ["src/**/*.ts", "tests/**"]` |
|
|
405
433
|
| `context` | Context mode (`fork` = isolated subagent) | `context: fork` |
|
|
406
434
|
| `argument-hint` | Hint for `$ARGUMENTS` placeholder | `argument-hint: [task description]` |
|
|
407
435
|
| `disable-model-invocation` | Prevent skill from being auto-invoked by model | `disable-model-invocation: true` |
|
|
408
436
|
|
|
409
437
|
**Key fields explained:**
|
|
410
|
-
- **`effort:
|
|
438
|
+
- **`effort: max`** — The wizard's `/sdlc` skill uses this to ensure Claude gives full attention at the recommended effort level for Opus 4.6 max (v1.80.0+).
|
|
411
439
|
- **`paths:`** — Limits when a skill activates based on files being worked on. Useful for language-specific or directory-specific skills.
|
|
412
440
|
- **`context: fork`** — Runs the skill in an isolated subagent context. The subagent gets its own context window, so it won't pollute the main conversation. Useful for review skills or analysis that should run independently.
|
|
413
441
|
|
|
@@ -480,7 +508,7 @@ When a cached prompt prefix is re-served after idle pruning, downstream thinking
|
|
|
480
508
|
|
|
481
509
|
**Workaround**: if you hit suspicious shallow reasoning mid-session — especially after a long idle gap — start a fresh session with `claude --continue` to reset cache state. The wizard's PreCompact hook gates manual `/compact` precisely because compacting at bad seams can also pull thinking blocks out of context.
|
|
482
510
|
|
|
483
|
-
**Detection signal**: the wizard's `model-effort-check.sh`
|
|
511
|
+
**Detection signal**: the wizard's `model-effort-check.sh` loud-warns below `max`. Combine with token-spike anomaly detection (ROADMAP #220) once shipped.
|
|
484
512
|
|
|
485
513
|
### Prompt brevity caps can compound across turns (post-mortem 2026-04-23)
|
|
486
514
|
|
|
@@ -966,14 +994,16 @@ Override the default auto-compact threshold with environment variables. These ar
|
|
|
966
994
|
| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Trigger compaction at this % of context capacity (1-100) | ~95% |
|
|
967
995
|
| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Override context capacity in tokens (useful for 1M models) | Model default |
|
|
968
996
|
|
|
969
|
-
**Opt-in (issue #198):** The SDLC Wizard CLI ships `.claude/settings.json` with **no** `model` or `env` pin so Claude Code's auto-mode stays enabled. The setup skill's Step 9.5
|
|
997
|
+
**Opt-in (issue #198):** The SDLC Wizard CLI ships `.claude/settings.json` with **no** `model`, `advisorModel`, or `env` pin so Claude Code's auto-mode stays enabled. The setup skill's Step 9.5 offers four choices: `[N]` no pin, `[o]` opusplan + Opus advisor, `[f]` flagship Opus 4.6 + Fable advisor, `[l]` latest Opus 4.8 + Fable advisor. Default is **No**. Pinning the model turns off per-turn auto-selection — a real tradeoff, so we ask.
|
|
970
998
|
|
|
971
|
-
To opt in by hand, edit `.claude/settings.json
|
|
999
|
+
To opt in by hand, edit `.claude/settings.json` (flagship example):
|
|
972
1000
|
|
|
973
1001
|
```json
|
|
974
1002
|
{
|
|
975
|
-
"model": "opus
|
|
1003
|
+
"model": "claude-opus-4-6",
|
|
1004
|
+
"advisorModel": "fable",
|
|
976
1005
|
"env": {
|
|
1006
|
+
"CLAUDE_CODE_EFFORT_LEVEL": "max",
|
|
977
1007
|
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "30"
|
|
978
1008
|
}
|
|
979
1009
|
}
|
|
@@ -1021,13 +1051,13 @@ Claude Code supports both 200K and 1M context windows. **`opus[1m]` is an opt-in
|
|
|
1021
1051
|
**Why `opus[1m]` is opt-in (issue #198):**
|
|
1022
1052
|
- **Pinning disables auto-mode.** Max-plan users pay for Claude Code's per-turn model selection (Sonnet for cheap tasks, Opus for hard ones, plus weekly-limit smoothing). A top-level `model` gives that up.
|
|
1023
1053
|
- **The 1M headroom has to earn it.** If your typical session stays under 150K, you're giving up auto-mode for headroom you're not using.
|
|
1024
|
-
- **Power users who want guaranteed Opus 4.
|
|
1054
|
+
- **Power users who want guaranteed Opus 4.6 max + 1M** — go ahead, it's a real win for long shepherding sessions. Just make it a conscious choice, not a silent default.
|
|
1025
1055
|
|
|
1026
|
-
**Opt in when:** you routinely cross 100K tokens in a single session (plan → TDD → review → CI shepherd on one feature), you want Opus 4.
|
|
1056
|
+
**Opt in when:** you routinely cross 100K tokens in a single session (plan → TDD → review → CI shepherd on one feature), you want Opus 4.6 max specifically (not Sonnet), and you're OK losing auto-mode.
|
|
1027
1057
|
|
|
1028
1058
|
**Stay on auto-mode (default) when:** you're unsure, your work is mixed short/long, or you want Claude Code to do the model math for you.
|
|
1029
1059
|
|
|
1030
|
-
**How to opt in:** run `/model opus[1m]` in your session (transient), or set `"model": "opus[1m]"` in `.claude/settings.json` (persistent). Requires Claude Code v2.1.154+ for Opus 4.
|
|
1060
|
+
**How to opt in:** run `/model opus[1m]` in your session (transient), or set `"model": "opus[1m]"` in `.claude/settings.json` (persistent). Requires Claude Code v2.1.154+ for Opus 4.6 max (the `opus[1m]` alias auto-resolves to the latest Opus). The setup wizard's Step 9.5 also asks once, with default No.
|
|
1031
1061
|
|
|
1032
1062
|
**How to opt out:** remove the `model` line from `.claude/settings.json`, or run `/model` and pick "Default (recommended)".
|
|
1033
1063
|
|
|
@@ -1035,46 +1065,74 @@ Claude Code supports both 200K and 1M context windows. **`opus[1m]` is an opt-in
|
|
|
1035
1065
|
|
|
1036
1066
|
**Autocompact pairing (important):** If you opt into `opus[1m]`, also set `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=30` — otherwise CC's default autocompact fires at ~76K and destroys the headroom you're paying for. Step 9.5 writes both together when you opt in.
|
|
1037
1067
|
|
|
1038
|
-
###
|
|
1068
|
+
### OpusPlan Tier (Opus planner + Sonnet driver, #395)
|
|
1069
|
+
|
|
1070
|
+
For cost-conscious SDLC work, CC's native `opusplan` alias gives you Opus reasoning during Plan Mode (Shift+Tab) and Sonnet execution — both at 200K, Max-bundled, no API credit drain.
|
|
1071
|
+
|
|
1072
|
+
| Layer | OpusPlan tier | Flagship tier |
|
|
1073
|
+
|-------|--------------|---------------|
|
|
1074
|
+
| Planner | Opus 4.6 max (Plan Mode) | Opus 4.6 max |
|
|
1075
|
+
| Driver | Sonnet 4.6 (execute mode) | Opus 4.6 max |
|
|
1076
|
+
| Reviewer | GPT-5.5 xhigh | GPT-5.5 xhigh |
|
|
1077
|
+
| Effort | max (via `CLAUDE_CODE_EFFORT_LEVEL` env var) | max |
|
|
1078
|
+
|
|
1079
|
+
**How to opt in:**
|
|
1080
|
+
```json
|
|
1081
|
+
{
|
|
1082
|
+
"model": "opusplan",
|
|
1083
|
+
"env": {
|
|
1084
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6",
|
|
1085
|
+
"CLAUDE_CODE_EFFORT_LEVEL": "max"
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
```
|
|
1089
|
+
|
|
1090
|
+
**⚠️ Avoid `sonnet[1m]`** — Sonnet with 1M context draws from usage credits ($3/$15 per Mtok), not your Max subscription (#390). Plain `sonnet` (200K) or `opusplan` stays on Max.
|
|
1039
1091
|
|
|
1040
|
-
|
|
1092
|
+
**When to use OpusPlan:** routine SDLC work, simple repos, cost-conscious sessions. Press Shift+Tab before architecture/blast-radius decisions to get Opus reasoning.
|
|
1041
1093
|
|
|
1042
|
-
**
|
|
1094
|
+
**When to stay Flagship:** stakes-flagged repos, architecture work, security review, long shepherd sessions.
|
|
1043
1095
|
|
|
1044
|
-
|
|
1045
|
-
|-------|----------------|---------------|
|
|
1046
|
-
| Coder (in-session CC) | `model: "sonnet[1m]"` | `model: "opus[1m]"` |
|
|
1047
|
-
| Cross-model reviewer (Codex etc.) | gpt-5.5 xhigh (or Opus 4.8 max via Bash) | gpt-5.5 xhigh (or Opus 4.8 max via Bash) |
|
|
1048
|
-
| Effort floor (CC session) | xhigh; max preferred | xhigh; max preferred |
|
|
1096
|
+
**Prove-It Gate (#233 acceptance criterion):** mixed-mode ships only if pair-tested on 3+ simple repos shows Sonnet-coder + Opus-reviewer produces ≥ same SDLC scores as full-Opus baseline. The first version of the heuristic ships v1.38.0; pair-test results land in CHANGELOG before recommending mixed-mode as the default for any tier.
|
|
1049
1097
|
|
|
1050
|
-
|
|
1098
|
+
**Tradeoffs (be honest):**
|
|
1099
|
+
- Sonnet 4.6 will drop some fine-grained self-review moves (it's fast, less deliberate). The Opus reviewer catches them — but you'll see more "fix in round 2" cycles compared to Opus-coder runs.
|
|
1100
|
+
- Mixed-mode disables auto-mode (same as flagship pin). The Sonnet pin is per-session — to switch back, remove the `model` line.
|
|
1051
1101
|
|
|
1052
|
-
|
|
1053
|
-
- Repo is small (LOC < 10K), few tests (< 30), few hooks (< 5), few workflows (< 5), no `.env` / secrets handling
|
|
1054
|
-
- You're on API billing (not Max subscription) and 2× cost on simple repos actually matters
|
|
1055
|
-
- Tasks are predominantly mechanical — typo fixes, config tweaks, small CRUD endpoints
|
|
1056
|
-
- You're running the SDLC Wizard's setup flow against a sibling repo where the coder doesn't need flagship reasoning
|
|
1102
|
+
### Latest tier — Opus 4.8 (opt-in for bleeding-edge)
|
|
1057
1103
|
|
|
1058
|
-
**
|
|
1059
|
-
- Stakes-flagged repo: anywhere `.env` / `secrets/` / `credentials/` exists. Force flagship even if LOC is tiny — leaks are catastrophic
|
|
1060
|
-
- Architecture work, debugging non-obvious bugs, security review, anything where the *coder's* judgment matters as much as the reviewer's
|
|
1061
|
-
- Long shepherd sessions (plan → TDD → review → CI loop) — they cross 100K tokens regularly and Opus 4.8 fits the window better in a single thread
|
|
1104
|
+
The wizard's flagship recommendation is Opus 4.6 max (see "Choosing Your Model" in [README.md](../README.md) for the full evidence). Some maintainers will want Anthropic's newest Opus instead — **Opus 4.8** ships SWE-Bench Pro / Terminal-Bench 2.1 gains, dynamic-workflows, and parallel-subagent-swarm features 4.6 doesn't have.
|
|
1062
1105
|
|
|
1063
|
-
**
|
|
1106
|
+
**When the Latest tier is the right call:**
|
|
1107
|
+
- You want Anthropic's newest benchmark wins (SWE-Bench Pro 69.2% vs 4.7's 64.3%, Terminal-Bench 2.1 74.6% vs 4.7's 66.1%)
|
|
1108
|
+
- You use dynamic workflows / parallel subagent swarms — introduced in 4.8, not available in 4.6
|
|
1109
|
+
- You're on the launch-week mailing list and want to validate the newest model against your workflow
|
|
1110
|
+
- You haven't hit 4.7/4.8 token burn / false-green / dropped-constraint regressions in your own work
|
|
1111
|
+
|
|
1112
|
+
**Tradeoffs (be honest):**
|
|
1113
|
+
- **Documented 40-60× cache token jump** vs 4.7 at HIGH effort ([AI Weekly](https://aiweekly.co/alerts/claude-opus-48-thinking-burns-900k-tokens-per-turn) — up to 900K cache tokens per turn). Burns Max 5-hour limits 2-3× faster than 4.6
|
|
1114
|
+
- **Earlier field signal suggested xhigh over max on 4.8** per [Andon Labs Vending-Bench](https://andonlabs.com/blog/opus-4-8-vending-bench), but wizard standard is now `max` on all Claude models (#395)
|
|
1115
|
+
- Active GitHub regressions still open: false-greens ([#63861](https://github.com/anthropics/claude-code/issues/63861)), 2-3× token burn ([#64961](https://github.com/anthropics/claude-code/issues/64961)), 46K tokens for simple coding turn ([#64153](https://github.com/anthropics/claude-code/issues/64153)), dropped constraints ([#65932](https://github.com/anthropics/claude-code/issues/65932))
|
|
1116
|
+
- [Tech.yahoo review](https://tech.yahoo.com/ai/claude/articles/claude-opus-4-8-review-130106963.html): "Anthropic deliberately made Opus's new tokenizer less efficient" — not a transient bug, structural pricing change
|
|
1117
|
+
- Anthropic-supported until ≥ May 28, 2027 (longer runway than 4.6)
|
|
1064
1118
|
|
|
1065
|
-
**How to opt in (
|
|
1119
|
+
**How to opt in (global, sweeps every project):**
|
|
1120
|
+
|
|
1121
|
+
Edit `~/.claude/settings.json`:
|
|
1066
1122
|
```json
|
|
1067
1123
|
{
|
|
1068
|
-
"model": "
|
|
1124
|
+
"model": "claude-opus-4-8",
|
|
1125
|
+
"env": {
|
|
1126
|
+
"CLAUDE_CODE_EFFORT_LEVEL": "max"
|
|
1127
|
+
}
|
|
1069
1128
|
}
|
|
1070
1129
|
```
|
|
1071
|
-
Don't add `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` — Sonnet's 1M window has different compaction characteristics than Opus's; let upstream defaults ride until we benchmark.
|
|
1072
1130
|
|
|
1073
|
-
|
|
1131
|
+
On Max plans, Opus auto-upgrades to 1M context. No `[1m]` suffix needed.
|
|
1074
1132
|
|
|
1075
|
-
**
|
|
1076
|
-
|
|
1077
|
-
|
|
1133
|
+
**Effort tuning for 4.8:** always `max`. Earlier field signal suggested xhigh on 4.8 but the wizard standard is max on all Claude models (#395).
|
|
1134
|
+
|
|
1135
|
+
**Escape hatch:** flip the env vars back to `claude-opus-4-6` to return to the wizard's recommended default. Or remove them entirely to fall back to Claude Code auto-mode.
|
|
1078
1136
|
|
|
1079
1137
|
### Community Feature-Discovery Scanner (roadmap #207)
|
|
1080
1138
|
|
|
@@ -2227,7 +2285,7 @@ TodoWrite([
|
|
|
2227
2285
|
{ content: "DRY check: Is logic duplicated elsewhere?", status: "pending", activeForm: "Checking for duplication" },
|
|
2228
2286
|
{ content: "Self-review: run /code-review", status: "pending", activeForm: "Running code review" },
|
|
2229
2287
|
{ content: "Security review (if warranted)", status: "pending", activeForm: "Checking security implications" },
|
|
2230
|
-
{ content: "Cross-model review (
|
|
2288
|
+
{ content: "Cross-model review (REQUIRED for high-stakes)", status: "pending", activeForm: "Running cross-model review" },
|
|
2231
2289
|
// CI FEEDBACK LOOP (After local tests pass)
|
|
2232
2290
|
{ content: "Commit and push to remote", status: "pending", activeForm: "Pushing to remote" },
|
|
2233
2291
|
{ content: "Watch CI - fix failures, iterate until green (max 2x)", status: "pending", activeForm: "Watching CI" },
|
|
@@ -2296,9 +2354,9 @@ Before presenting approach, STATE your confidence:
|
|
|
2296
2354
|
|
|
2297
2355
|
| Level | Meaning | Action | Effort |
|
|
2298
2356
|
|-------|---------|--------|--------|
|
|
2299
|
-
| HIGH (90%+) | Know exactly what to do | Present approach, proceed after approval | `
|
|
2300
|
-
| MEDIUM (60-89%) | Solid approach, some uncertainty | Present approach, highlight uncertainties | `
|
|
2301
|
-
| LOW (<60%) | Not sure | ASK USER before proceeding | **Run `/effort
|
|
2357
|
+
| HIGH (90%+) | Know exactly what to do | Present approach, proceed after approval | `max` (default) |
|
|
2358
|
+
| MEDIUM (60-89%) | Solid approach, some uncertainty | Present approach, highlight uncertainties | `max` (default) |
|
|
2359
|
+
| LOW (<60%) | Not sure | ASK USER before proceeding | **Run `/effort max` now** — don't wait |
|
|
2302
2360
|
| FAILED 2x | Something's wrong | STOP. ASK USER immediately | **Run `/effort max` now** — you're burning cycles at lower effort |
|
|
2303
2361
|
| CONFUSED | Can't diagnose why something is failing | STOP. Describe what you tried, ask for help | **Run `/effort max` now** — stop spinning |
|
|
2304
2362
|
|
|
@@ -2328,10 +2386,10 @@ PLANNING → DOCS → TDD RED → TDD GREEN → Tests Pass → Self-Review
|
|
|
2328
2386
|
4. Issues below 80 are likely false positives — skip unless obviously valid
|
|
2329
2387
|
5. Address issues by going back through the proper SDLC loop
|
|
2330
2388
|
|
|
2331
|
-
## Cross-Model Review (
|
|
2389
|
+
## Cross-Model Review (REQUIRED for High-Stakes)
|
|
2332
2390
|
|
|
2333
2391
|
**When to run:** High-stakes changes (auth, payments, data handling), releases/publishes (version bumps, CHANGELOG, npm publish), complex refactors, research-heavy work.
|
|
2334
|
-
**When to skip:** Trivial changes (typo fixes, config tweaks), time-sensitive hotfixes, risk < review cost.
|
|
2392
|
+
**When to skip (log justification):** Trivial changes (typo fixes, config tweaks), time-sensitive hotfixes, risk < review cost.
|
|
2335
2393
|
|
|
2336
2394
|
**Prerequisites:** Codex CLI installed (`npm i -g @openai/codex`), OpenAI API key set.
|
|
2337
2395
|
|
|
@@ -2442,7 +2500,7 @@ Self-review passes → handoff.json (round 1, PENDING_REVIEW)
|
|
|
2442
2500
|
|
|
2443
2501
|
**Tool-agnostic:** The value is adversarial diversity (different model, different blind spots), not the specific tool. Any competing AI reviewer works.
|
|
2444
2502
|
|
|
2445
|
-
**Full protocol:** See the "Cross-Model Review Loop
|
|
2503
|
+
**Full protocol:** See the "Cross-Model Review Loop" section below for key flags and reasoning effort guidance.
|
|
2446
2504
|
|
|
2447
2505
|
### Release Review Focus
|
|
2448
2506
|
|
|
@@ -2983,7 +3041,7 @@ If deployment fails or post-deploy verification catches issues:
|
|
|
2983
3041
|
|
|
2984
3042
|
**SDLC.md:**
|
|
2985
3043
|
```markdown
|
|
2986
|
-
<!-- SDLC Wizard Version: 1.
|
|
3044
|
+
<!-- SDLC Wizard Version: 1.81.0 -->
|
|
2987
3045
|
<!-- Setup Date: [DATE] -->
|
|
2988
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 -->
|
|
2989
3047
|
<!-- Git Workflow: [PRs or Solo] -->
|
|
@@ -3743,7 +3801,7 @@ Claude: [fetches via gh api, discusses with you interactively]
|
|
|
3743
3801
|
|
|
3744
3802
|
This is optional - skip if you prefer fresh reviews only.
|
|
3745
3803
|
|
|
3746
|
-
### Cross-Model Review Loop (
|
|
3804
|
+
### Cross-Model Review Loop (REQUIRED for High-Stakes)
|
|
3747
3805
|
|
|
3748
3806
|
Use an independent AI model from a different company as a code reviewer. The author can't grade their own homework — a model with different training data and different biases catches blind spots the authoring model misses.
|
|
3749
3807
|
|
|
@@ -4120,7 +4178,7 @@ Every wizard step has a unique ID for tracking:
|
|
|
4120
4178
|
| `step-9` | SDLC/TESTING/ARCH docs | 1.0.0 |
|
|
4121
4179
|
| `question-git-workflow` | Git workflow preference | 1.2.0 |
|
|
4122
4180
|
| `step-update-notify` | Optional: CI update notification | 1.13.0 |
|
|
4123
|
-
| `step-cross-model-review` |
|
|
4181
|
+
| `step-cross-model-review` | Cross-model review (REQUIRED for high-stakes) | 1.16.0 |
|
|
4124
4182
|
| `step-update-wizard` | /update-wizard smart update skill | 1.18.0 |
|
|
4125
4183
|
|
|
4126
4184
|
When checking for updates, Claude compares user's completed steps against this registry.
|
|
@@ -4428,7 +4486,7 @@ The wizard watches the **Anthropic API changelog** — not just Claude Code CLI
|
|
|
4428
4486
|
|
|
4429
4487
|
When that issue is open, the session-start hook nudges you. The session (not the workflow) does the deep research + adoption via the full SDLC loop. This mirrors the "local shepherd" pattern used for CI fixes: cheap Action-layer detection + session-time analysis beats expensive Action-layer LLM calls.
|
|
4430
4488
|
|
|
4431
|
-
The gap this closes: the advisor tool (API beta, `advisor-tool-2026-03-01`) shipped and was missed for several days before manual discovery. Detector would have flagged it on the next weekly tick.
|
|
4489
|
+
The gap this closes: the advisor tool (API beta, `advisor-tool-2026-03-01`) shipped and was missed for several days before manual discovery. Detector would have flagged it on the next weekly tick. **Update (v1.81.0):** The API beta graduated to native CC support as `advisorModel` in settings.json (v2.1.170+). See [Advisor Model (v2.1.170+)](#advisor-model-v21170) above.
|
|
4432
4490
|
|
|
4433
4491
|
**Complementary native skills worth knowing:**
|
|
4434
4492
|
|
package/README.md
CHANGED
|
@@ -113,7 +113,7 @@ Layer 1: PHILOSOPHY
|
|
|
113
113
|
| **Pre-tool TDD hooks** | Before source edits, a hook reminds Claude to write tests first. CI scoring checks whether it actually followed TDD |
|
|
114
114
|
| **Self-evolving loop** | Weekly/monthly external research + local CI shepherd loop — you approve, the system gets better |
|
|
115
115
|
|
|
116
|
-
##
|
|
116
|
+
## Cross-Model Review (Codex) — REQUIRED for High-Stakes
|
|
117
117
|
|
|
118
118
|
Claude can't grade its own homework. Have a **different AI from a different company** review Claude's work — different training, different blind spots, different biases. We use OpenAI's Codex CLI, and it's **three commands to set up**:
|
|
119
119
|
|
|
@@ -136,7 +136,71 @@ codex exec -c 'model_reasoning_effort="xhigh"' -s danger-full-access \
|
|
|
136
136
|
|
|
137
137
|
**Always append `< /dev/null`** when running `codex exec` from a non-interactive parent (background, hooks, CI, Claude Code Bash tool). Without it, codex blocks on stdin reads even when the prompt is an argument — the process sits at S/0% CPU indefinitely with a 0-byte `-o` output file. Validated on codex-cli 0.130.0 / macOS 14, 2026-05-15.
|
|
138
138
|
|
|
139
|
-
`xhigh` reasoning is **non-negotiable** — lower settings miss subtle bugs. See [CLAUDE_CODE_SDLC_WIZARD.md](CLAUDE_CODE_SDLC_WIZARD.md#cross-model-review-loop-
|
|
139
|
+
`xhigh` reasoning is **non-negotiable** — lower settings miss subtle bugs. See [CLAUDE_CODE_SDLC_WIZARD.md](CLAUDE_CODE_SDLC_WIZARD.md#cross-model-review-loop-required-for-high-stakes) for the full protocol (handoff format, round-2 dialogue loop, preflight docs). Real-world: this catches P0/P1 issues in 2-3 out of 10 reviews that Claude's self-review rated as clean.
|
|
140
|
+
|
|
141
|
+
## Choosing Your Model
|
|
142
|
+
|
|
143
|
+
The wizard ships a **default recommendation**, not a mandate. You can swap to any Claude model — newer, older, or sibling tier — at any time. `/model` per session, or pin in `.claude/settings.json`.
|
|
144
|
+
|
|
145
|
+
**Default: Opus 4.6 at max effort** (`[f] Flagship` in the setup wizard). This is the wizard's recommendation as of v1.80.0 — a stronger statement than "this might work." Here's why.
|
|
146
|
+
|
|
147
|
+
### Why Opus 4.6 max, not Anthropic's latest
|
|
148
|
+
|
|
149
|
+
Two weeks of in-the-wild data after Opus 4.8's launch (2026-05-28) showed a clear pattern:
|
|
150
|
+
|
|
151
|
+
- **[Andon Labs Vending-Bench](https://andonlabs.com/blog/opus-4-8-vending-bench)** — 4.8 finished last vs 4.7 and GPT-5.5; documented "Max reasoning is not the best reasoning effort"; falls for scam suppliers 30× more frequently
|
|
152
|
+
- **[AI Weekly: 900K cache tokens per turn](https://aiweekly.co/alerts/claude-opus-48-thinking-burns-900k-tokens-per-turn)** — 40-60× jump vs 4.7 at HIGH effort. Burns Max 5-hour limits 2-3× faster
|
|
153
|
+
- **[Tech.yahoo review](https://tech.yahoo.com/ai/claude/articles/claude-opus-4-8-review-130106963.html)** — explicit: "Anthropic deliberately made Opus's new tokenizer less efficient"; "a single coding prompt drained our entire token quota"
|
|
154
|
+
- **Active GitHub regressions** — false-greens ([#63861](https://github.com/anthropics/claude-code/issues/63861)), 2-3× token burn ([#64961](https://github.com/anthropics/claude-code/issues/64961)), 46K tokens for simple coding turn ([#64153](https://github.com/anthropics/claude-code/issues/64153)), dropped constraints during execution ([#65932](https://github.com/anthropics/claude-code/issues/65932)), fabricated identifiers in parallel tool batches
|
|
155
|
+
- **[Paweł Huryn's 4.7 guide](https://www.productcompass.pm/p/claude-opus-4-7-guide)** — "most complaints about 4.7 feeling slow stem from people reflexively using max"
|
|
156
|
+
- **[BSWEN effort decision guide](https://docs.bswen.com/blog/2026-04-19-claude-code-effort-level-decision-guide/)** — "Max on Opus causes overthinking on routine stuff. xHigh is the sweet spot for autonomous work"
|
|
157
|
+
- **r/Claudeopus field reports** — one maintainer's literal A/B: "12 hours with 4.8 zero deliverables; plugged in 4.6, spec written + 133 tests green in one session." Top comment: "4.6 had the best overall balance at max"
|
|
158
|
+
|
|
159
|
+
Six independent sources converging on the same conclusion: **4.6 is the only Opus where `max` effort tolerates without overthinking, and 4.7/4.8's "improvements" come with structural token-burn tradeoffs.** When you're running SDLC discipline workflows that span hours and tens of thousands of tokens, reliability beats benchmarks.
|
|
160
|
+
|
|
161
|
+
4.6 is Anthropic-supported until **≥ Feb 5, 2027** per the [official deprecation page](https://platform.claude.com/docs/en/about-claude/model-deprecations) — 8 months minimum runway. The Feb-Apr 2026 quality bugs are fully fixed per Anthropic's [April 23 postmortem](https://www.anthropic.com/engineering/april-23-postmortem) — the wizard picks up the post-fix model, not the regression window.
|
|
162
|
+
|
|
163
|
+
### What 4.6 max gives up
|
|
164
|
+
|
|
165
|
+
- 4.8's SWE-Bench Pro (69.2% vs 4.7's 64.3%) and Terminal-Bench 2.1 (74.6% vs 66.1%) gains
|
|
166
|
+
- Dynamic-workflows and parallel-subagent-swarm features introduced in 4.8
|
|
167
|
+
- Anthropic's "latest = best" convention. The wizard is explicitly betting against that convention here.
|
|
168
|
+
|
|
169
|
+
### Latest tier — Opus 4.8 (opt-in)
|
|
170
|
+
|
|
171
|
+
If you want the newest benchmarks and you're comfortable with the token-burn tradeoff, pick `[l] Latest` in the setup wizard. Always `max` effort on all Claude models (#395). The [`Latest tier — Opus 4.8`](CLAUDE_CODE_SDLC_WIZARD.md) section has the full opt-in instructions.
|
|
172
|
+
|
|
173
|
+
### Switch any time
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
/model claude-opus-4-6 # wizard's recommended flagship (default in v1.80.0+)
|
|
177
|
+
/model opusplan # Opus plans (Shift+Tab), Sonnet executes — both Max-bundled
|
|
178
|
+
/model claude-opus-4-8 # Anthropic's latest, opt-in via Latest tier
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Or pin in `.claude/settings.json`:
|
|
182
|
+
|
|
183
|
+
```json
|
|
184
|
+
{ "model": "claude-opus-4-6", "env": { "CLAUDE_CODE_EFFORT_LEVEL": "max" } }
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Or sweep all your projects by setting `ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-6` in `~/.claude/settings.json`.
|
|
188
|
+
|
|
189
|
+
Effort: **always `max`** on all Claude models. Persist it: set `CLAUDE_CODE_EFFORT_LEVEL=max` in your settings env block (CC docs: `effortLevel: "max"` in settings.json is session-only and silently ignored). OpenAI/Codex: `xhigh` (their highest).
|
|
190
|
+
|
|
191
|
+
### Three Setup Lanes
|
|
192
|
+
|
|
193
|
+
The wizard defines three AI coding setups in [`AI_SETUP_LANES.md`](AI_SETUP_LANES.md):
|
|
194
|
+
|
|
195
|
+
| Lane | Advisor | Driver | Reviewer | Escalation |
|
|
196
|
+
|------|---------|--------|----------|------------|
|
|
197
|
+
| **A — Premium** | Fable 5 (advisorModel) | Opus 4.6 max | GPT-5.5 xhigh | + Fable review (security/release/architecture) |
|
|
198
|
+
| **B — Saver** | Opus 4.6 (advisorModel) | Sonnet | GPT-5.5 xhigh | None |
|
|
199
|
+
| **C — Lite** | None | Sonnet | None | None |
|
|
200
|
+
|
|
201
|
+
Setup C's whole point: **the discipline of knowing when NOT to use discipline.** When blast radius is low and you just need fast cheap hands, skip the SDLC overhead.
|
|
202
|
+
|
|
203
|
+
**A note on `[1m]` and billing.** The `[1m]` suffix is the 1M-context alias. As of [March 2026](https://claude.com/blog/1m-context-ga), 1M context is GA at standard pricing — **no long-context surcharge, no premium tier, no API-only restriction.** Interactive Claude Code sessions on Max / Team / Enterprise plans include 1M context automatically; whether you set `claude-opus-4-6` or `claude-opus-4-6[1m]`, you're billed against the same per-token Max budget at $5/$25 per million tokens. (Pro users need "Enable usage credits" turned on once.) The [June 15, 2026 billing split](https://codersera.com/blog/anthropic-june-2026-billing-change-claude-code/) moved *headless* surfaces — `claude -p`, Agent SDK, GitHub Actions, third-party apps — off the Max subscription onto a separate metered credit pool. Interactive Claude Code in your terminal stays on Max. Full details in [`AI_SETUP_LANES.md` § How Billing Works](AI_SETUP_LANES.md#how-billing-works--1m-context-max-plan-and-the-june-15-split).
|
|
140
204
|
|
|
141
205
|
## How It Works
|
|
142
206
|
|
package/cli/init.js
CHANGED
|
@@ -83,6 +83,10 @@ function mergeSettings(existingPath, templatePath, force) {
|
|
|
83
83
|
existing.model = template.model;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
if (template.advisorModel && (!('advisorModel' in existing) || force)) {
|
|
87
|
+
existing.advisorModel = template.advisorModel;
|
|
88
|
+
}
|
|
89
|
+
|
|
86
90
|
// Merge cleanupPeriodDays (ROADMAP #225): only set the template default when
|
|
87
91
|
// the user has not chosen a value. NEVER overwrite under --force — retention
|
|
88
92
|
// policy is a user preference (they may want >30 for long pauses, or <30 for
|
|
@@ -532,16 +536,50 @@ function buildUpdateRecommendation(updateInfo, customizedCount) {
|
|
|
532
536
|
return lines;
|
|
533
537
|
}
|
|
534
538
|
|
|
539
|
+
function settingsHooksMatch(srcPath, destPath) {
|
|
540
|
+
try {
|
|
541
|
+
const src = JSON.parse(fs.readFileSync(srcPath, 'utf8'));
|
|
542
|
+
const dest = JSON.parse(fs.readFileSync(destPath, 'utf8'));
|
|
543
|
+
for (const [event, entries] of Object.entries(src.hooks || {})) {
|
|
544
|
+
if (!dest.hooks || !dest.hooks[event]) return false;
|
|
545
|
+
const templateEntry = entries[0];
|
|
546
|
+
if (!templateEntry || !templateEntry.hooks) continue;
|
|
547
|
+
for (const th of templateEntry.hooks) {
|
|
548
|
+
if (!th.command) continue;
|
|
549
|
+
const marker = WIZARD_HOOK_MARKERS.find((m) => th.command.includes(m));
|
|
550
|
+
if (!marker) continue;
|
|
551
|
+
// Verify marker present AND type matches. We intentionally skip matcher/if
|
|
552
|
+
// comparison — those are customizable per-project (the wizard's own settings
|
|
553
|
+
// use different if guards than the consumer template).
|
|
554
|
+
const found = dest.hooks[event].some(
|
|
555
|
+
(de) => de.hooks && de.hooks.some(
|
|
556
|
+
(h) => h.command && h.command.includes(marker) && h.type === (th.type || 'command')
|
|
557
|
+
)
|
|
558
|
+
);
|
|
559
|
+
if (!found) return false;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
return true;
|
|
563
|
+
} catch (_) {
|
|
564
|
+
return false;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
|
|
535
568
|
function checkFile(srcPath, destPath, relativeDest, shouldBeExecutable) {
|
|
536
569
|
if (!fs.existsSync(destPath)) {
|
|
537
570
|
return { file: relativeDest, status: 'MISSING' };
|
|
538
571
|
}
|
|
539
572
|
const srcHash = crypto.createHash('sha256').update(fs.readFileSync(srcPath)).digest('hex');
|
|
540
573
|
const destHash = crypto.createHash('sha256').update(fs.readFileSync(destPath)).digest('hex');
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
}
|
|
574
|
+
let fileStatus;
|
|
575
|
+
if (srcHash === destHash) {
|
|
576
|
+
fileStatus = 'MATCH';
|
|
577
|
+
} else if (relativeDest === '.claude/settings.json' && settingsHooksMatch(srcPath, destPath)) {
|
|
578
|
+
fileStatus = 'MATCH';
|
|
579
|
+
} else {
|
|
580
|
+
fileStatus = 'CUSTOMIZED';
|
|
581
|
+
}
|
|
582
|
+
const result = { file: relativeDest, status: fileStatus };
|
|
545
583
|
|
|
546
584
|
if (shouldBeExecutable) {
|
|
547
585
|
try {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Roadmap #233: repo complexity heuristic for mixed-mode tier selection.
|
|
2
2
|
//
|
|
3
3
|
// Output: { tier: 'simple' | 'complex', score: <number>, signals: [...] }
|
|
4
|
-
// - 'simple' → setup wizard suggests mixed-mode (Sonnet 4.6 coder + Opus 4.
|
|
5
|
-
// - 'complex' → setup wizard suggests full flagship (Opus 4.
|
|
4
|
+
// - 'simple' → setup wizard suggests mixed-mode (Sonnet 4.6 coder + Opus 4.6 max reviewer)
|
|
5
|
+
// - 'complex' → setup wizard suggests full flagship (Opus 4.6 max everywhere)
|
|
6
6
|
// Cross-model review (Codex / external) always stays at the flagship tier
|
|
7
7
|
// regardless of coder selection — see CLAUDE_CODE_SDLC_WIZARD.md.
|
|
8
8
|
//
|
|
@@ -256,7 +256,9 @@ if [ -f "$PROJECT_DIR/.github/workflows/weekly-update.yml" ] && \
|
|
|
256
256
|
fi
|
|
257
257
|
|
|
258
258
|
# Claude Code version check (non-blocking, best-effort)
|
|
259
|
-
|
|
259
|
+
# Gate on CLAUDE_PROJECT_DIR — only Claude Code sets this. Without it, we're
|
|
260
|
+
# running under Codex/OpenCode where a CC update nudge is misleading (#375).
|
|
261
|
+
if [ -n "${CLAUDE_PROJECT_DIR:-}" ] && command -v claude > /dev/null 2>&1 && command -v npm > /dev/null 2>&1; then
|
|
260
262
|
CC_LOCAL=$(claude --version 2>/dev/null | grep -o '[0-9][0-9.]*' | head -1) || true
|
|
261
263
|
if [ -n "$CC_LOCAL" ]; then
|
|
262
264
|
CC_LATEST=$(npm view @anthropic-ai/claude-code version 2>/dev/null) || true
|
|
@@ -1,67 +1,67 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# SessionStart hook — effort/model nudge.
|
|
3
3
|
#
|
|
4
|
-
# Behavior (
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# Opus 4.8 needs xhigh floor for SDLC compliance (TDD, self-review, deep reasoning).
|
|
9
|
-
# Recommends `/effort max`. Also reminds about recommended model `opus[1m]`.
|
|
4
|
+
# Behavior (#395 update):
|
|
5
|
+
# CLAUDE_CODE_EFFORT_LEVEL env var takes precedence over effortLevel in settings.
|
|
6
|
+
# CC docs: max is session-only in settings.json — only the env var persists it.
|
|
7
|
+
# Opus 4.6 supports: low, medium, high, max (NO xhigh — falls back to high).
|
|
10
8
|
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
9
|
+
# effort=max -> silent (only acceptable level)
|
|
10
|
+
# anything else -> LOUD WARNING
|
|
13
11
|
#
|
|
14
12
|
# Non-blocking: always exits 0.
|
|
15
13
|
|
|
16
|
-
RECOMMENDED_MODEL="opus
|
|
14
|
+
RECOMMENDED_MODEL="claude-opus-4-6"
|
|
17
15
|
|
|
18
|
-
# Token-bloat fix: when both project + plugin register this hook, plugin yields.
|
|
19
16
|
HOOK_DIR="${BASH_SOURCE[0]%/*}"
|
|
20
17
|
[ "$HOOK_DIR" = "${BASH_SOURCE[0]}" ] && HOOK_DIR="."
|
|
21
18
|
# shellcheck disable=SC1091
|
|
22
19
|
source "$HOOK_DIR/_find-sdlc-root.sh"
|
|
23
20
|
dedupe_plugin_or_project "${BASH_SOURCE[0]}" || { cat > /dev/null; exit 0; }
|
|
24
21
|
|
|
25
|
-
# Drain stdin (SessionStart sends JSON but model field isn't in it)
|
|
26
22
|
cat > /dev/null
|
|
27
23
|
|
|
28
24
|
if ! command -v jq > /dev/null 2>&1; then
|
|
29
25
|
exit 0
|
|
30
26
|
fi
|
|
31
27
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
# Env var takes precedence (CC docs: only way to persist max)
|
|
29
|
+
effort="${CLAUDE_CODE_EFFORT_LEVEL:-}"
|
|
30
|
+
settings_max=0
|
|
31
|
+
|
|
32
|
+
if [ -z "$effort" ]; then
|
|
33
|
+
project_dir="${CLAUDE_PROJECT_DIR:-.}"
|
|
34
|
+
for f in "$project_dir/.claude/settings.local.json" "$project_dir/.claude/settings.json" "$HOME/.claude/settings.json"; do
|
|
35
|
+
if [ -f "$f" ]; then
|
|
36
|
+
val=$(jq -r '.effortLevel // empty' "$f" 2>/dev/null)
|
|
37
|
+
if [ -n "$val" ]; then
|
|
38
|
+
effort="$val"
|
|
39
|
+
[ "$val" = "max" ] && settings_max=1
|
|
40
|
+
break
|
|
41
|
+
fi
|
|
40
42
|
fi
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
done
|
|
44
|
+
fi
|
|
43
45
|
|
|
44
|
-
#
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
;;
|
|
49
|
-
esac
|
|
46
|
+
# Only env-var max is truly silent.
|
|
47
|
+
if [ "$effort" = "max" ] && [ "$settings_max" -eq 0 ]; then
|
|
48
|
+
exit 0
|
|
49
|
+
fi
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
if [ "$settings_max" -eq 1 ] && [ -z "${CLAUDE_CODE_EFFORT_LEVEL:-}" ]; then
|
|
52
|
+
effort_display="max (settings-only — CC ignores this)"
|
|
53
|
+
elif [ -z "$effort" ]; then
|
|
54
54
|
effort_display="unset"
|
|
55
55
|
else
|
|
56
56
|
effort_display="$effort"
|
|
57
57
|
fi
|
|
58
58
|
|
|
59
59
|
echo "=============================================================================="
|
|
60
|
-
echo " WARNING: effort '$effort_display'
|
|
61
|
-
echo " Below
|
|
60
|
+
echo " WARNING: effort '$effort_display' — SDLC requires max."
|
|
61
|
+
echo " Below max = degraded reasoning, shallow TDD, weak self-review."
|
|
62
62
|
echo ""
|
|
63
|
-
echo " Run: /effort max
|
|
64
|
-
echo "
|
|
63
|
+
echo " Run: /effort max"
|
|
64
|
+
echo " Persist: set CLAUDE_CODE_EFFORT_LEVEL=max in settings env block"
|
|
65
65
|
echo ""
|
|
66
66
|
echo " recommended model: $RECOMMENDED_MODEL (run: /model $RECOMMENDED_MODEL)"
|
|
67
67
|
echo "=============================================================================="
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-sdlc-wizard",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.81.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"
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"hooks/",
|
|
12
12
|
".claude-plugin/",
|
|
13
13
|
"CLAUDE_CODE_SDLC_WIZARD.md",
|
|
14
|
+
"AI_SETUP_LANES.md",
|
|
14
15
|
"CHANGELOG.md"
|
|
15
16
|
],
|
|
16
17
|
"keywords": [
|
package/skills/sdlc/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: sdlc
|
|
3
3
|
description: Full SDLC workflow for implementing features, fixing bugs, refactoring code, testing, releasing, publishing, and deploying. Use this skill when implementing, fixing, refactoring, testing, adding features, building new code, or releasing/publishing/deploying.
|
|
4
4
|
argument-hint: [task description]
|
|
5
|
-
effort:
|
|
5
|
+
effort: max
|
|
6
6
|
---
|
|
7
7
|
# SDLC Skill - Full Development Workflow
|
|
8
8
|
|
|
@@ -47,7 +47,7 @@ TodoWrite([
|
|
|
47
47
|
{ content: "Visual consistency check (if UI change)", status: "pending" },
|
|
48
48
|
{ content: "Self-review: run /code-review", status: "pending" },
|
|
49
49
|
{ content: "Security review (if warranted)", status: "pending" },
|
|
50
|
-
{ content: "Cross-model review (
|
|
50
|
+
{ content: "Cross-model review (high-stakes)", status: "pending" },
|
|
51
51
|
{ content: "Scope guard: only changes related to task? No legacy/fallback code left?", status: "pending" },
|
|
52
52
|
// CI SHEPHERD
|
|
53
53
|
{ content: "Commit and push to remote", status: "pending" },
|
|
@@ -96,9 +96,9 @@ State your confidence before presenting an approach:
|
|
|
96
96
|
|
|
97
97
|
| Level | Meaning | Action | Effort |
|
|
98
98
|
|-------|---------|--------|--------|
|
|
99
|
-
| HIGH (90%+) | Know exactly what to do | Present, proceed after approval | `
|
|
100
|
-
| MEDIUM (60-89%) | Solid approach, some uncertainty | Present, highlight uncertainties | `
|
|
101
|
-
| LOW (<60%) | Not sure | Research or try Codex; if still LOW, ASK USER | **`/effort
|
|
99
|
+
| HIGH (90%+) | Know exactly what to do | Present, proceed after approval | `max` (default) |
|
|
100
|
+
| MEDIUM (60-89%) | Solid approach, some uncertainty | Present, highlight uncertainties | `max` (default) |
|
|
101
|
+
| LOW (<60%) | Not sure | Research or try Codex; if still LOW, ASK USER | **`/effort max` now** |
|
|
102
102
|
| FAILED 2x | Something's wrong | Codex for fresh perspective; if still stuck, STOP | **`/effort max` now** |
|
|
103
103
|
| CONFUSED | Can't diagnose | Codex; if still confused, STOP and describe | **`/effort max` now** |
|
|
104
104
|
|
|
@@ -114,9 +114,11 @@ Native `/goal <condition>` (**v2.1.143+**). Haiku evaluator re-checks transcript
|
|
|
114
114
|
|
|
115
115
|
## Recommended Model
|
|
116
116
|
|
|
117
|
-
**
|
|
117
|
+
**Recommended: `claude-opus-4-6` or `opusplan` (Opus 4.6 max — wizard's flagship).** Pin in settings or `/model claude-opus-4-6` at session start. `opusplan` uses Opus for Plan Mode (Shift+Tab) + Sonnet for execution — both Max-bundled. Persist effort: `CLAUDE_CODE_EFFORT_LEVEL=max` in settings env block.
|
|
118
118
|
|
|
119
|
-
**
|
|
119
|
+
**If pinning `claude-opus-4-6`:** pair with `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=30` — default compacts too early at ~76K on 1M. **Do not set this for `opusplan`** — 200K context, 30% = 60K too aggressive.
|
|
120
|
+
|
|
121
|
+
**Advisor (v2.1.170+):** Flagship → `advisorModel: "fable"`. OpusPlan → `advisorModel: "claude-opus-4-6"`. Set during `/setup-wizard` Step 9.5.
|
|
120
122
|
|
|
121
123
|
## Self-Review Loop
|
|
122
124
|
|
|
@@ -128,9 +130,9 @@ PLANNING → DOCS → TDD RED → GREEN → Tests Pass → Self-Review
|
|
|
128
130
|
|
|
129
131
|
The loop goes back to PLANNING, not TDD RED. Run `/code-review`; issues at confidence ≥ 80 are real, < 80 are likely false positives. Found issues → ask "Want a plan to fix?" → new plan → docs → TDD → review.
|
|
130
132
|
|
|
131
|
-
## Cross-Model Review (
|
|
133
|
+
## Cross-Model Review (REQUIRED for High-Stakes)
|
|
132
134
|
|
|
133
|
-
**When to run:** high-stakes changes (auth, payments, data), releases/publishes, complex refactors. **When to skip:** trivial
|
|
135
|
+
**When to run:** high-stakes changes (auth, payments, data), releases/publishes, complex refactors. **When to skip (log justification):** trivial, hotfixes, risk < review cost. **Prerequisites:** Codex CLI (`npm i -g @openai/codex`) + OpenAI API key. **Reviewer at flagship tier (#233):** even on `opusplan` (Sonnet driver), reviewer runs `gpt-5.5` xhigh — adversarial diversity is the point.
|
|
134
136
|
|
|
135
137
|
PROTOCOL is universal across domains; only `review_instructions` and `verification_checklist` change.
|
|
136
138
|
|
package/skills/setup/SKILL.md
CHANGED
|
@@ -228,9 +228,9 @@ Present suggestions and let the user confirm.
|
|
|
228
228
|
|
|
229
229
|
### Step 9.5: Context Window + Mixed-Mode Configuration (Opt-In)
|
|
230
230
|
|
|
231
|
-
The CLI ships `cli/templates/settings.json` with **no** `model` or `env` pin by default. This preserves Claude Code's built-in model auto-selection
|
|
231
|
+
The CLI ships `cli/templates/settings.json` with **no** `model` or `env` pin by default. This preserves Claude Code's built-in model auto-selection. Power users can opt into a pin during setup — `opusplan` for cost-conscious SDLC, or `claude-opus-4-6` for full flagship.
|
|
232
232
|
|
|
233
|
-
**Why this is opt-in (issue #198):** A top-level `"model"` in `settings.json`
|
|
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
235
|
**Run the complexity heuristic first (roadmap #233):**
|
|
236
236
|
|
|
@@ -246,42 +246,76 @@ The output is JSON: `{ tier: "simple" | "complex", score, signals }`. Use the re
|
|
|
246
246
|
>
|
|
247
247
|
> How do you want to configure the model for this repo?
|
|
248
248
|
>
|
|
249
|
-
> - **[N] No pin (default
|
|
250
|
-
> - **[
|
|
251
|
-
> - **[f] Flagship full** *(
|
|
249
|
+
> - **[N] No pin (default):** Auto-mode. CC picks model per turn. Simplest.
|
|
250
|
+
> - **[o] OpusPlan** *(recommended for cost-conscious SDLC):* Pins `model: "opusplan"`. Opus plans (Shift+Tab), Sonnet executes. Both 200K, Max-bundled. No API credit drain (#390).
|
|
251
|
+
> - **[f] Flagship full** *(recommended for complex / high-stakes):* Pins `model: "claude-opus-4-6"`. Opus 4.6 max everywhere. Max-bundled (auto-upgrades to 1M on Max plans).
|
|
252
|
+
> - **[l] Latest** *(opt-in bleeding-edge):* Pins `model: "claude-opus-4-8"`. Effort: always max (#395).
|
|
252
253
|
>
|
|
253
|
-
> `[N/
|
|
254
|
+
> `[N/o/f/l]`
|
|
254
255
|
|
|
255
256
|
**If the user answers `N` (default):** Make no edits to `.claude/settings.json`. Auto-mode stays on. Done.
|
|
256
257
|
|
|
257
|
-
**If the user answers `
|
|
258
|
+
**If the user answers `o` (opusplan):** Edit `.claude/settings.json` and add:
|
|
258
259
|
|
|
259
260
|
```json
|
|
260
261
|
{
|
|
261
|
-
"model": "
|
|
262
|
+
"model": "opusplan",
|
|
263
|
+
"advisorModel": "claude-opus-4-6",
|
|
264
|
+
"env": {
|
|
265
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6",
|
|
266
|
+
"CLAUDE_CODE_EFFORT_LEVEL": "max"
|
|
267
|
+
}
|
|
262
268
|
}
|
|
263
269
|
```
|
|
264
270
|
|
|
265
|
-
|
|
271
|
+
Tell the user: "Opus reasons during Plan Mode (Shift+Tab), Sonnet executes. Both Max-bundled at 200K — no API credit drain. The Opus advisor auto-compensates for Sonnet's lighter reasoning at key decision points. Cross-model reviews still run at GPT-5.5 xhigh. Requires CC v2.1.170+ — run `! claude update` if needed."
|
|
266
272
|
|
|
267
|
-
**If the user answers `f` (flagship):** Edit `.claude/settings.json` and add
|
|
273
|
+
**If the user answers `f` (flagship):** Edit `.claude/settings.json` and add:
|
|
268
274
|
|
|
269
275
|
```json
|
|
270
276
|
{
|
|
271
|
-
"model": "opus
|
|
277
|
+
"model": "claude-opus-4-6",
|
|
278
|
+
"advisorModel": "fable",
|
|
272
279
|
"env": {
|
|
280
|
+
"CLAUDE_CODE_EFFORT_LEVEL": "max",
|
|
273
281
|
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "30"
|
|
274
282
|
}
|
|
275
283
|
}
|
|
276
284
|
```
|
|
277
285
|
|
|
278
|
-
|
|
286
|
+
Tell the user: "Opus 4.6 max everywhere with Fable 5 advisor. Fable auto-consults at key decision points (architecture, complexity, blast-radius). On Max plans, Opus auto-upgrades to 1M context — the autocompact override prevents early compaction at ~76K. Requires CC v2.1.170+ — run `! claude update` if needed."
|
|
287
|
+
|
|
288
|
+
**If the user answers `l` (latest):** Edit `.claude/settings.json` and add:
|
|
289
|
+
|
|
290
|
+
```json
|
|
291
|
+
{
|
|
292
|
+
"model": "claude-opus-4-8",
|
|
293
|
+
"advisorModel": "fable",
|
|
294
|
+
"env": {
|
|
295
|
+
"CLAUDE_CODE_EFFORT_LEVEL": "max"
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Tell the user: "Always max effort on all Claude models (#395) with Fable 5 advisor. Fable auto-consults at key decision points. Requires CC v2.1.170+ — run `! claude update` if needed. Escape hatch: change `model` back to `claude-opus-4-6` or remove to fall back to auto-mode."
|
|
301
|
+
|
|
302
|
+
Mention the escape hatch in all four cases:
|
|
279
303
|
- To opt out later: remove the `model` line (and optionally the `env` block) from `.claude/settings.json`, or run `/model` and pick "Default (recommended)".
|
|
280
304
|
- To switch tiers later: edit `.claude/settings.json` and replace the `model` value, or re-run `/setup-wizard` Step 9.5.
|
|
281
305
|
- For CI pipelines with short tasks (flagship only), consider `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=60` — compact early to stay fast.
|
|
282
306
|
|
|
283
307
|
This is project-scoped and shared with the team via git.
|
|
284
308
|
|
|
309
|
+
**After writing project settings (for `[o]`, `[f]`, or `[l]`), ask once:**
|
|
310
|
+
|
|
311
|
+
> Also set `advisorModel` in your global `~/.claude/settings.json`?
|
|
312
|
+
> (Applies advisor to ALL your projects. Project-level always overrides.)
|
|
313
|
+
> `[y/N]`
|
|
314
|
+
|
|
315
|
+
Default No. If yes, read `~/.claude/settings.json`, add/update only the `advisorModel` key (do NOT touch other keys), write back. This is the only global settings mutation in setup besides Step 7.7's dead plugin cleanup.
|
|
316
|
+
|
|
317
|
+
**Note:** Flagship, OpusPlan, and Latest choices include an advisor model that auto-consults at key decision points. Requires CC v2.1.170+ — run `! claude update` from inside a CC session if needed.
|
|
318
|
+
|
|
285
319
|
### Step 10: Customize Hooks
|
|
286
320
|
|
|
287
321
|
Update `tdd-pretool-check.sh` with the actual source directory (replace generic `/src/` pattern).
|
package/skills/update/SKILL.md
CHANGED
|
@@ -93,9 +93,12 @@ 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.
|
|
96
|
+
Latest: 1.81.0
|
|
97
97
|
|
|
98
98
|
What changed:
|
|
99
|
+
- [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
|
+
- [1.80.0] Flip default: Opus 4.6 max becomes recommended flagship; Opus 4.8 demoted to opt-in `[l] Latest` tier.
|
|
101
|
+
- [1.79.0] Opus 4.6 Stability tier added as flagship alternative (now graduated to default in 1.80.0).
|
|
99
102
|
- [1.78.0] Opus 4.7 → 4.8 model recommendation (#365) + min CC v2.1.154+.
|
|
100
103
|
- [1.77.0] release-dry-run.yml + cc-version-drift.yml (#350) + /goal SDLC gates (95% + DLC binding).
|
|
101
104
|
- [1.76.0] /goal /sdlc wrapper (#347) + CC v2.1.150 feature adoption + ROADMAP demand-signal gate (4 excise, 4 kill).
|
|
@@ -170,12 +173,12 @@ Check user's `.claude/settings.json`:
|
|
|
170
173
|
1. **`model: "opus[1m]"` AND `env.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE: "30"`** — likely the old wizard-installed pair, not an intentional choice. Ask:
|
|
171
174
|
> Your `.claude/settings.json` pins `model: "opus[1m]"` with `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=30`. This pair was the wizard default in 1.31.0–1.33.x, but it disables Claude Code's auto-mode (issue #198).
|
|
172
175
|
> - **Remove the pin** (recommended) — keeps auto-mode enabled
|
|
173
|
-
> - **Keep the pin** — guaranteed Opus 4.
|
|
176
|
+
> - **Keep the pin** — guaranteed Opus 4.6 max + 1M, OK with no auto-selection
|
|
174
177
|
> Remove, keep, or decide later? `[r/k/l]`
|
|
175
178
|
|
|
176
179
|
2. **Only one of the two fields matches** — treat as intentional customization. Do not prompt.
|
|
177
|
-
3. **`model: "sonnet[1m]"`**
|
|
178
|
-
4.
|
|
180
|
+
3. **`model: "sonnet[1m]"`** — ⚠️ warn: "sonnet[1m] draws from usage credits, not Max subscription (#390). Consider switching to `opusplan` (Opus plans, Sonnet executes, both Max-bundled) or plain `sonnet` (200K, Max-bundled)."
|
|
181
|
+
4. **`model: "opusplan"`** or other value (`sonnet`, `opus`) — explicit user choice. Do not touch.
|
|
179
182
|
5. **Neither field set** — already on new default.
|
|
180
183
|
|
|
181
184
|
When removing: drop `model` (and `env.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` if `env` becomes empty). Never touch other keys.
|
|
@@ -222,35 +225,15 @@ If `cli/init.js` later adds wizard marketplace names, append verbatim.
|
|
|
222
225
|
3. For every dead marketplace `<name>`, look for `enabledPlugins["sdlc-wizard@<name>"]` — also flag for removal.
|
|
223
226
|
4. Repeat for **all** allowlist entries; collect the full set of dead pairs before prompting (multiple are common).
|
|
224
227
|
|
|
225
|
-
**Cleanup
|
|
228
|
+
**Cleanup:** List all dead pairs, ask `[y/N]`. If yes: `cp ~/.claude/settings.json ~/.claude/settings.json.bak.$(date +%Y%m%dT%H%M%S)`, then single `jq` filter: `del(.enabledPlugins["sdlc-wizard@<name>"]) | del(.extraKnownMarketplaces["<name>"])` for each dead key. Write to temp, validate with `jq empty`, then `mv`. If no: skip.
|
|
226
229
|
|
|
227
|
-
|
|
228
|
-
>
|
|
229
|
-
> - `extraKnownMarketplaces.sdlc-wizard-local.source.path` → `<resolved-path>` (missing)
|
|
230
|
-
> - `enabledPlugins["sdlc-wizard@sdlc-wizard-local"]` is `true`
|
|
231
|
-
> - (list all dead pairs)
|
|
232
|
-
>
|
|
233
|
-
> Causes `Plugin directory does not exist` on every prompt in every CC session.
|
|
234
|
-
>
|
|
235
|
-
> Drop these entries from `~/.claude/settings.json`? `[y/N]`
|
|
236
|
-
|
|
237
|
-
If yes:
|
|
238
|
-
1. **Backup with timestamp**: `cp ~/.claude/settings.json ~/.claude/settings.json.bak.$(date +%Y%m%dT%H%M%S)` (two cleanups same day don't overwrite each other).
|
|
239
|
-
2. **Single `jq` filter** dropping every dead marketplace + every dead `enabledPlugins` key in one pass: `jq 'del(.enabledPlugins["sdlc-wizard@sdlc-wizard-local"]) | del(.extraKnownMarketplaces["sdlc-wizard-local"]) | del(.enabledPlugins["sdlc-wizard@sdlc-wizard-wrap"]) | del(.extraKnownMarketplaces["sdlc-wizard-wrap"])'` — include only keys actually marked dead.
|
|
240
|
-
3. Write to a temp file, validate with `jq empty` (round-trip parse), then `mv`. Validation fails → restore from backup.
|
|
241
|
-
4. **Formatting note**: `jq` rewrites the whole file. Wizard does NOT preserve comments/trailing commas (CC's settings.json is strict JSON, so safe today). Tell the user.
|
|
242
|
-
|
|
243
|
-
If no: skip silently. Some users have a recovery plan (re-enable, reinstall).
|
|
244
|
-
|
|
245
|
-
**Idempotency:** rerunning Step 7.7 after a clean must be a no-op. Only marketplaces with allowlist match AND missing path qualify.
|
|
246
|
-
|
|
247
|
-
**Scope guard:** only entries whose marketplace name matches the exact allowlist. Third-party plugin registrations (`legal@knowledge-work-plugins`, etc.) and unrelated `sdlc`-prefixed marketplaces (e.g. `danielscholl/claude-sdlc`) are never the wizard's business.
|
|
230
|
+
**Guards:** Idempotent (no-op after clean). Scope: only allowlist matches. Runs regardless of version match. `check-only`: detect only, no mutations.
|
|
248
231
|
|
|
249
|
-
|
|
232
|
+
### Step 7.8: advisorModel Migration (v2.1.170+)
|
|
250
233
|
|
|
251
|
-
|
|
234
|
+
If CC < v2.1.170: show "Run `! claude update` to upgrade" and skip. If `.claude/settings.json` already has `advisorModel` or no `model` pin: skip.
|
|
252
235
|
|
|
253
|
-
|
|
236
|
+
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.
|
|
254
237
|
|
|
255
238
|
### Step 8: Apply Selected Changes
|
|
256
239
|
|