Skip to content

v0.8.9: close v0.8.0 drift family (4 doc + 1 runtime fix)#3

Merged
BaseInfinity merged 6 commits into
mainfrom
v0.8.9-cross-model-review-aliases
May 11, 2026
Merged

v0.8.9: close v0.8.0 drift family (4 doc + 1 runtime fix)#3
BaseInfinity merged 6 commits into
mainfrom
v0.8.9-cross-model-review-aliases

Conversation

@BaseInfinity
Copy link
Copy Markdown
Owner

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.

Commit What
v0.8.4 (9b6dcd6) install.sh next-steps hint refreshed for v0.8.x picker (mlx / cerebras / deepseek / nvidia_nim / google_aistudio + --free-tier-first + cost-ladder ref)
v0.8.5 (704b90b) Validator emits DOMAIN HINT when artifact has ≥3 missing required fields + ≥1 foreign-domain marker — prevents schema-misapplication confusion
v0.8.6 (1b648ce) Sibling-wizard coexistence detection in install.sh (.claude/ + .codex/) + setup-wizard SKILL.md provider drift fix
v0.8.7 (18692b5) cross-model-review SKILL.md provider drift + stale DeepSeek price ($0.27/M$0.14/M)
v0.8.8 (21fd853) AGENTS.md + PRIVACY.md tier-table + walkthrough drift (last doc surface)
v0.8.9 (2d86264) cross-model-review.sh wrapper alias parity (nvidia_nim → nvidia, google_aistudio → google) — only runtime bug in the family, caught by codex round-1

Net: 13 files, +696 / -32. 305/305 tests across 11 suites (was 285/11 in v0.8.0).

Test plan

  • Per-commit TDD (RED → GREEN) on the v0.8.5 validator + v0.8.9 wrapper aliases
  • Drift-gate regression tests added for each of the 4 doc surfaces (tests/test-doc-templates.sh, tests/test-install.sh, tests/test-cross-model-review.sh)
  • npm test full suite — 305/305 passing
  • Codex round-1 pre-ship review caught the v0.8.9 alias bug → fixed
  • Codex round-2 verdict pass — no additional findings before turn-limit

Drift family postmortem

The v0.8.0 release added 5 providers (Cerebras, DeepSeek direct, NVIDIA NIM, Google AI Studio, MLX) + --free-tier-first flag, but didn't propagate to:

  • install.sh next-steps (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)
  • cross-model-review.sh wrapper alias case (v0.8.9 — the only one with real user-visible breakage)

Each fix has a regression gate. The pattern (centralized provider list with per-surface drift checks) is now in place.

Merge → tag v0.8.9release.yml runs tests + npm publish --provenance --access public + creates GH release.

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.
@BaseInfinity BaseInfinity merged commit d9a8ec0 into main May 11, 2026
@BaseInfinity BaseInfinity deleted the v0.8.9-cross-model-review-aliases branch May 11, 2026 19:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant