Skip to content

chore(models): refresh stale model defaults (FeatureClipStudio) - #26

Merged
HomenShum merged 1 commit into
mainfrom
claude/model-refresh-featureclipstudio
Oct 14, 2026
Merged

HomenShum merged 1 commit into
mainfrom
claude/model-refresh-featureclipstudio

Conversation

@HomenShum

Copy link
Copy Markdown
Owner

Disposition of every runtime site (SPEC §A.2.4)

Site Role Today Disposition Reason
analyze-reference.mjs:94 default gemini-3.6-flash (literal in URL, env ignored) migrate id unchanged; now JUDGE_MODEL from lib/judge-model.mjs, so GEMINI_JUDGE_MODEL applies to the observer too
judge-video.mjs:183 default gemini-3.6-flash freeze (id) calibrated judge (calibration/calibration.json, RUBRIC_VERSION); active; now imports the one constant
judge-rubric.mjs:113 default gemini-3.6-flash freeze (id) same; imports the constant
find-references.mjs:61 default gemini-3.6-flash freeze (id) same; imports the constant
voice.mjs:28 default en_US-lessac-medium freeze local Piper TTS voice, not an LLM

Defer: generationConfig.temperature 0.2 (4 sites; deprecated on 3.6+, ignored today) is removed at the next recalibration with the RUBRIC_VERSION bump, because it changes judge behaviour; API key in URL query (judge-video.mjs) noted for the same PR. Also NODE-LOOPS.md:61 default corrected gemini-3.5-flash -> gemini-3.6-flash. Override precedence unchanged (GEMINI_JUDGE_MODEL || default).

Breaking-parameter fixes

None required now (spec). The new test asserts no thinking_budget / candidate_count keys are sent.

Test proof (fails before, passes after)

test/judge-model-request.test.mjs runs each real script as a subprocess with a fake fetch (test/support/fake-gemini-fetch.mjs, no network, no key) and asserts the model in the request URL.

  • Before (new tests against old code): # tests 9 / pass 7 / fail 2 — analyze-reference.mjs: GEMINI_JUDGE_MODEL is honoured (actual URL model gemini-3.6-flash when gemini-3.5-flash was set) and lib/judge-model.mjs exports the one constant (module not found).
  • After: # tests 9 / pass 9 / fail 0.

Check

npm run check (now also runs test:judge-model): exit 0 — parsed 48/48+ JS files, evidence tests 20/20, judge-model tests 9/9, featureclip.evidence-proof/v1 passed: true. The new imports in judge-video.mjs/judge-rubric.mjs sit at end of file so .tours/docs/START_HERE.md line anchors are unchanged.

No paid provider calls made; no model eval required (judge id frozen, no id change).

Spec: model-defaults SPEC Part A §A.2 (FeatureClipStudio)

🤖 Generated with Claude Code

…EMINI_JUDGE_MODEL

lib/judge-model.mjs exports JUDGE_MODEL (GEMINI_JUDGE_MODEL || "gemini-3.6-flash", id unchanged).
judge-video, judge-rubric, find-references and analyze-reference import it; analyze-reference
previously embedded the literal in its URL and ignored the env var, so observer and judge could
run on different models. Adds a request-shape test (fake fetch through the real scripts) and
wires it into npm run check. NODE-LOOPS.md default corrected to gemini-3.6-flash.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@HomenShum
HomenShum merged commit 57ce86e into main Oct 14, 2026
2 checks passed
@HomenShum
HomenShum deleted the claude/model-refresh-featureclipstudio branch October 14, 2026 09:25
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