fix(3784): expose adaptive in model_profile settings flow (#91)
* fix(3784): expose adaptive in model_profile settings flow Split the single 4-option model-profile AskUserQuestion into a two-question flow: Q1 (Adaptive / Standard tier / Inherit) routes top-level intent; Q2 (Quality / Balanced / Budget) appears only when Standard tier is chosen. Updates the confirm table and success_criteria to include adaptive. Adds regression test asserting all five valid profiles are reachable interactively via the settings UI. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * changeset: add Fixed entry for #3784 / PR #3795 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(3784): correct Q2-skip comment and remove duplicate brace in settings.md Codex review followup: - Replaced vague "preserve existing config" comment with accurate description: Q1 still writes model_profile on Adaptive/Inherit branches; only Q2 is skipped. - Removed stray duplicate `{` line before the Spawn Plan Researcher question block (pseudocode had two consecutive `{` openers, one spurious). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(3784): address review — gate Q2 structurally, define cancel rule, harden tests Addresses gsd-code-reviewer (M1/M2/m1/m2/m3/m4) and codex adversarial (Q2 gating, save-mapping, Claude-only wording, step-of-2 wording). - F1: Replace //comment-only Q2 gating with Conditional visibility block (mirrors code_review_depth / graphify.auto_update structural pattern) - F2: Define model_profile cancel rule in update_config step (leave existing value unchanged when Q1="Standard tier…" but Q2 cancelled) - F3: Fix Adaptive description — remove "Claude only" tail; describe heavy/light role tiers across all supported runtimes - F4: Remove "step 1 of 2 for standard profiles" from Q1 question text (2-step nature now structurally documented by Conditional visibility) - F5: Fix vacuously-true test disjunct (|| content.includes('Adaptive') always true — 6+ occurrences); assertion now requires role-based cost optimization + heavy roles wording - F6: Add 4-option cap enforcement test (ASK_USER_QUESTION_OPTION_CAP=4 named constant, counts per question object not per AskUserQuestion call) and brace-balance regression test (guards against bd53925f recurrence) * docs(3784): list adaptive in model_profile reference docs --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -759,26 +759,26 @@ Invalid flag tokens are sanitized and logged as warnings. Only recognized GSD fl
|
||||
|
||||
### Profile Definitions
|
||||
|
||||
| Agent | `quality` | `balanced` | `budget` | `inherit` |
|
||||
|-------|-----------|------------|----------|-----------|
|
||||
| gsd-planner | Opus | Opus | Sonnet | Inherit |
|
||||
| gsd-roadmapper | Opus | Sonnet | Sonnet | Inherit |
|
||||
| gsd-executor | Opus | Sonnet | Sonnet | Inherit |
|
||||
| gsd-phase-researcher | Opus | Sonnet | Haiku | Inherit |
|
||||
| gsd-project-researcher | Opus | Sonnet | Haiku | Inherit |
|
||||
| gsd-research-synthesizer | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| gsd-debugger | Opus | Sonnet | Sonnet | Inherit |
|
||||
| gsd-codebase-mapper | Sonnet | Haiku | Haiku | Inherit |
|
||||
| gsd-verifier | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| gsd-plan-checker | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| gsd-integration-checker | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| gsd-nyquist-auditor | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| gsd-pattern-mapper | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| gsd-ui-researcher | Opus | Sonnet | Haiku | Inherit |
|
||||
| gsd-ui-checker | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| gsd-ui-auditor | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| gsd-doc-writer | Opus | Sonnet | Haiku | Inherit |
|
||||
| gsd-doc-verifier | Sonnet | Sonnet | Haiku | Inherit |
|
||||
| Agent | `quality` | `balanced` | `budget` | `adaptive` | `inherit` |
|
||||
|-------|-----------|------------|----------|------------|-----------|
|
||||
| gsd-planner | Opus | Opus | Sonnet | Opus | Inherit |
|
||||
| gsd-roadmapper | Opus | Sonnet | Sonnet | Opus | Inherit |
|
||||
| gsd-executor | Opus | Sonnet | Sonnet | Sonnet | Inherit |
|
||||
| gsd-phase-researcher | Opus | Sonnet | Haiku | Sonnet | Inherit |
|
||||
| gsd-project-researcher | Opus | Sonnet | Haiku | Sonnet | Inherit |
|
||||
| gsd-research-synthesizer | Sonnet | Sonnet | Haiku | Haiku | Inherit |
|
||||
| gsd-debugger | Opus | Sonnet | Sonnet | Opus | Inherit |
|
||||
| gsd-codebase-mapper | Sonnet | Haiku | Haiku | Haiku | Inherit |
|
||||
| gsd-verifier | Sonnet | Sonnet | Haiku | Sonnet | Inherit |
|
||||
| gsd-plan-checker | Sonnet | Sonnet | Haiku | Haiku | Inherit |
|
||||
| gsd-integration-checker | Sonnet | Sonnet | Haiku | Haiku | Inherit |
|
||||
| gsd-nyquist-auditor | Sonnet | Sonnet | Haiku | Haiku | Inherit |
|
||||
| gsd-pattern-mapper | Sonnet | Sonnet | Haiku | Haiku | Inherit |
|
||||
| gsd-ui-researcher | Opus | Sonnet | Haiku | Sonnet | Inherit |
|
||||
| gsd-ui-checker | Sonnet | Sonnet | Haiku | Haiku | Inherit |
|
||||
| gsd-ui-auditor | Sonnet | Sonnet | Haiku | Haiku | Inherit |
|
||||
| gsd-doc-writer | Opus | Sonnet | Haiku | Sonnet | Inherit |
|
||||
| gsd-doc-verifier | Sonnet | Sonnet | Haiku | Haiku | Inherit |
|
||||
|
||||
> **All 33 shipped agents have explicit per-profile tier assignments** in the catalog (`sdk/shared/model-catalog.json`). The table above shows a representative subset of the most-used agents. For agents not listed here, `model_overrides` accepts any shipped agent name. The authoritative profile data is derived from `sdk/shared/model-catalog.json` via `get-shit-done/bin/lib/model-catalog.cjs` and `sdk/src/model-catalog.ts`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user