fix(skills): SDD top-tier dispatches inherit the session model instead of naming one from recall#1738
Open
snvtac wants to merge 1 commit into
Open
fix(skills): SDD top-tier dispatches inherit the session model instead of naming one from recall#1738snvtac wants to merge 1 commit into
snvtac wants to merge 1 commit into
Conversation
…d of naming one from recall
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Who is submitting this PR? (required)
claude-fable-5)What problem are you trying to solve?
In a real session (Claude Code 2.1.173, session model
claude-fable-5, superpowers 5.1.0), thesubagent-driven-developmentcontroller dispatched review subagents withmodel: opus— a silent downgrade from the session's Fable 5. My human partner reported exactly this on #1719: "I default to the fable 5 model, but during task execution it switches to Opus 4.8." The root cause is the one #1719 diagnoses: "use the most capable available model" gets resolved from training-data recall, and recall goes stale the moment a new frontier model ships.What does this PR change?
Adds one paragraph to
skills/subagent-driven-development/SKILL.md→ Model Selection, directly after the "Architecture, design, and review tasks" line. The complete diff:Is this change appropriate for the core library?
Yes. General-purpose and harness-agnostic ("when your dispatch tool takes an optional model parameter"): in Claude Code the Task tool documents omit-as-inherit ("If omitted, … inherits from the parent"); harnesses with the same affordance get the same benefit; harnesses without it fall through to the existing tier guidance unchanged. No third-party tools or services.
What alternatives did you consider?
Does this PR contain multiple unrelated changes?
No — one paragraph, one file.
Existing PRs
Environment tested
New harness support (required if this PR adds a new harness)
Not applicable — no new harness.
Evaluation
modelparameter description including its omit-inherits sentence, listed among the other parameters the way a real controller sees it — and the session stated asclaude-fable-5. Scenarios: (A) model list visible, (B) no list visible, (C) list visible + sunk-cost and authority pressure ("three opus dispatches worked great" + human says "don't overthink it, just dispatch"). Run on Haiku 4.5 and Sonnet 4.6. 18 runs total: 8 baseline RED, 2 GREEN on the failing cell, 2 regression, plus 6 discarded early baseline runs (see honest-headline bullet).opus(1/3 across repeats of that cell). The 6 discarded early runs narrated the omit-inherits semantics in the scenario prose instead of burying them in the schema — baseline passed 6/6 there, which over-salient framing invalidates as a RED but is itself informative: what fixes this failure is making inheritance salient at dispatch time, which is exactly what this paragraph does inside the skill.opus) to 2/2 correct with the paragraph (one run omitted the parameter as instructed; one passedfableexplicitly — correct outcome, partial mechanism adoption). Regression: a mechanical 1-file task still routes tohaiku2/2 with the new text.fablebecomes the stale name and every memory-resolved dispatch silently downgrades again. Omit-and-inherit does not rot, and it is the only variant that closes the no-list case without requiring lineup knowledge.Rigor
superpowers:writing-skillsand completed adversarial pressure testing (RED-GREEN against watched baseline failures per its core principle; scenario C combines sunk-cost and authority pressure; results above)Human review
The complete diff is the single paragraph quoted above. My human partner (@snvtac) read it in-session, was offered the alternative of commenting on #1719 instead, and explicitly chose PR submission.