v0.8.9: close v0.8.0 drift family (4 doc + 1 runtime fix)#3
Merged
Conversation
The post-install banner still printed the v0.2.0 tier list, missing every provider added since v0.8.0. Caught during the states-project-research consumption test — fresh installs were sending users to a stale provider menu while the real picker offered five more. - private_local: + mlx - hosted_oss: + cerebras / deepseek / nvidia_nim - proprietary: + google_aistudio - new --free-tier-first example so users discover the bias flag - cost-ladder.md link (the doc shipped in v0.8.0 but nothing pointed to it from the install path) - escaped $0 / $20 / $200 literals in the unquoted heredoc — would have tripped set -u as positional parameters Tests - T9 in test-install.sh asserts every picker provider + flag + cost-ladder ref appear in the next-steps text. Regression gate so the banner can't drift again. - 14/14 install behavior tests green (was 13/13). - Full suite: 290/11 (was 289/11).
states-project-research consumption test (2026-05-06) caught the validator giving 5 generic 'required field missing' errors when the pre-existing handoff was a research-review artifact, not a code-review one. No signal that the schema mismatch was the likely root cause. Heuristic in scripts/validate-review-artifact.js: - Count missing top-level required fields after validation fails - Count foreign-domain markers present (topic, audience, stakes, research_question, claim, argument, manuscript, paper, theme, narrative) - If >=3 missing required AND >=1 foreign marker → prepend a single DOMAIN HINT line to stderr before the per-field errors Tests: T31 (hint emitted on foreign-domain handoff), T32 (no false positive on partially-filled code-review), T33 (valid handoff with forward-compat extras validates clean). 33/33 review-schema tests green (was 30/30). Full suite: 293/11.
…drift Two issues, same root cause: drift between v0.8.0's expanded picker and the surfaces that describe it. Sibling-wizard awareness in install.sh - Caught during the states-project-research consumption test where the repo already had claude-sdlc-wizard installed - New detection block: looks for .claude/skills/sdlc/ or CLAUDE_CODE_SDLC_WIZARD.md (claude-sdlc-wizard) and .codex/ (codex-sdlc-wizard) - Prints non-blocking 'Note: detected sibling SDLC wizard installation(s)' before install proceeds Setup-wizard SKILL.md provider drift - Same drift v0.8.4 fixed in install.sh — SKILL.md still listed the v0.2.0 tier providers - private_local: + MLX - hosted_oss: + Cerebras / DeepSeek direct / NVIDIA NIM - proprietary: + Google AI Studio (Gemini) - Step 2 now shows --free-tier-first flag inline Tests - test-install.sh +T10/T11/T12: claude detected, codex detected, no false-positive on empty target - test-doc-templates.sh adds provider-drift gate against SKILL.md - 17/17 install green (was 14), 25/25 doc-templates (was 24) - Full suite: 297/11 (was 293)
…Seek price Third (and last known) surface in the v0.8.0 provider drift family. Step 2 reviewer table still recommended togetherai/DeepSeek-V3 at ~$0.27/M as the default — both id and price had moved. skills/cross-model-review/SKILL.md - Step 2 reviewer table gains 4 v0.8.0 rows: mlx (private_local), cerebras (free + fast), deepseek direct (cheapest paid), nvidia_nim (free credits) - Together row kept but model bumped V3 → V3.1, stale price dropped - Default suggestion no longer pins togetherai/V3 — points at docs/cost-ladder.md and names cerebras/deepseek/ollama defaults - Step 3 examples show free-tier path (cerebras) and cheapest-paid path (deepseek-direct) Tests - test-doc-templates.sh adds 2 gates: provider rows OR flag mentions for cerebras/deepseek/nvidia_nim, and stale-price absence guard - Pattern-matching on table-cell or --reviewer-provider syntax avoids coincidental matches on legacy model names - 27/27 doc-templates green (was 25), full suite 299/11 (was 297)
Last surface in the v0.8.0 provider drift family. AGENTS.md (which OpenCode auto-loads at session start) and PRIVACY.md (the deeper tier walkthrough) both still listed only v0.2.0 providers. AGENTS.md tier table updated - private_local + MLX - hosted_oss + Cerebras / DeepSeek direct / NVIDIA NIM - proprietary + Google AI Studio (google_aistudio) - New --free-tier-first example + cross-link to docs/cost-ladder.md PRIVACY.md walkthroughs updated - private_local runtime table + MLX row - hosted_oss table + 3 new rows with Notes column (free tier / pricing) - hosted_oss examples cover free (Cerebras) / cheapest paid (DeepSeek direct) / stable paid (Together) - proprietary section + Google AI Studio configure example Tests - test-doc-templates.sh adds AGENTS.md and PRIVACY.md tier-coverage gates — catches the next drift of this kind - 29/29 doc-templates green (was 27), full suite 301/11 (was 299) Closes the v0.8.0 drift family. Five surfaces total had the drift: install.sh (v0.8.4), setup-wizard SKILL.md (v0.8.6), cross-model-review SKILL.md (v0.8.7), AGENTS.md + PRIVACY.md (v0.8.8). Each now has a regression gate.
…nd (codex round-2 finding) Codex pre-ship review of the v0.8.x stack caught a real invocation bug the v0.8.7 SKILL.md drift sweep had advertised but not wired. The skill listed nvidia_nim and google_aistudio as reviewer providers, but configure-backend.sh aliases those to nvidia/google when writing the opencode.json provider blocks. The wrapper passed them through verbatim, producing model pins (nvidia_nim/<model>, google_aistudio/<model>) that no provider block matched -> silent provider-not-found at run time. Wrapper case block now mirrors configure-backend.sh: nvidia_nim|nvidia-nim|nvidia -> nvidia google_aistudio|google|gemini -> google Plus cerebras/deepseek/mlx promoted from wildcard fallthrough into the explicit canonical pass-through list (no behavior change, just stops a future maintainer from thinking they need an alias). Tests: T11-T14 in test-cross-model-review.sh assert each new alias resolves correctly and canonical IDs pass through unchanged. 305 total tests across 11 suites (was 301). Closes the v0.8.0 drift family across both documentation (v0.8.4-v0.8.8) and runtime invocation surfaces. Only the runtime fix had real user-visible breakage; the rest were doc drift caught by regression gates.
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.
Summary
Six-commit stack closing the v0.8.0 picker drift family across every surface where it leaked. Caught by real consumption attempt + codex pre-ship review.
9b6dcd6)install.shnext-steps hint refreshed for v0.8.x picker (mlx / cerebras / deepseek / nvidia_nim / google_aistudio +--free-tier-first+ cost-ladder ref)704b90b)DOMAIN HINTwhen artifact has ≥3 missing required fields + ≥1 foreign-domain marker — prevents schema-misapplication confusion1b648ce)install.sh(.claude/+.codex/) + setup-wizard SKILL.md provider drift fix18692b5)$0.27/M→$0.14/M)21fd853)2d86264)cross-model-review.shwrapper alias parity (nvidia_nim → nvidia,google_aistudio → google) — only runtime bug in the family, caught by codex round-1Net: 13 files, +696 / -32. 305/305 tests across 11 suites (was 285/11 in v0.8.0).
Test plan
tests/test-doc-templates.sh,tests/test-install.sh,tests/test-cross-model-review.sh)npm testfull suite — 305/305 passingDrift family postmortem
The v0.8.0 release added 5 providers (Cerebras, DeepSeek direct, NVIDIA NIM, Google AI Studio, MLX) +
--free-tier-firstflag, but didn't propagate to:install.shnext-steps (v0.8.4)Each fix has a regression gate. The pattern (centralized provider list with per-surface drift checks) is now in place.
Merge → tag
v0.8.9→release.ymlruns tests +npm publish --provenance --access public+ creates GH release.