Found by the #614 cold-start walkthrough on a clean container, following only the README. Priority P0.31 — severity critical, category release. Blocks #614 and the beta launch.
Problem
The published PyPI package codeframe-ai==0.9.1 — the artifact the README tells every new user to install — pins five Anthropic model IDs that no longer exist. Every LLM-backed command fails on a fresh install, for every new user, with a valid API key.
Reproduced on a clean python:3.11-slim container with a known-good ANTHROPIC_API_KEY (the request authenticates — note the request_id — and is then rejected on the model):
$ uv tool install codeframe-ai
$ cf init . --detect # works
$ cf prd generate
Using template: Standard PRD
Error: Error code: 404 - {'type': 'error', 'error': {'type': 'not_found_error',
'message': 'model: claude-3-5-haiku-20241022'}, 'request_id':
'req_011CdriPN8FW32UUNgw1FSFM'}
cf prd generate is the first AI-backed command in the README quickstart, so a new user hits this within a minute of installing. cf tasks generate then fails with No PRD found, and cf work batch run --all-ready is a no-op, so the entire Think → Build → Prove pipeline is dead on arrival from the published package.
Root cause
Installed 0.9.1, codeframe/adapters/llm/base.py:
DEFAULT_PLANNING_MODEL = "claude-sonnet-4-20250514"
DEFAULT_EXECUTION_MODEL = "claude-sonnet-4-20250514"
DEFAULT_GENERATION_MODEL = "claude-3-5-haiku-20241022" # <- confirmed 404
DEFAULT_CORRECTION_MODEL = "claude-opus-4-20250514"
DEFAULT_SUPERVISION_MODEL = "claude-opus-4-20250514"
All five are dated, now-retired IDs. Only GENERATION is proven 404 here because discovery fails there first, but the other four are the same vintage.
This is already fixed on main — and unreleased
main carries the corrected aliases:
DEFAULT_PLANNING_MODEL = "claude-sonnet-4-5"
DEFAULT_EXECUTION_MODEL = "claude-sonnet-4-5"
DEFAULT_GENERATION_MODEL = "claude-haiku-4-5"
DEFAULT_CORRECTION_MODEL = "claude-sonnet-4-5"
DEFAULT_SUPERVISION_MODEL = "claude-sonnet-4-5"
Re-running the identical walkthrough against a source install of main gets past the 404 and into the Socratic discovery loop. So the code is fine; the published artifact is not. The fix is a release, not a patch.
Acceptance criteria
Evidence
Problem
The published PyPI package
codeframe-ai==0.9.1— the artifact the README tells every new user to install — pins five Anthropic model IDs that no longer exist. Every LLM-backed command fails on a fresh install, for every new user, with a valid API key.Reproduced on a clean
python:3.11-slimcontainer with a known-goodANTHROPIC_API_KEY(the request authenticates — note therequest_id— and is then rejected on the model):cf prd generateis the first AI-backed command in the README quickstart, so a new user hits this within a minute of installing.cf tasks generatethen fails withNo PRD found, andcf work batch run --all-readyis a no-op, so the entire Think → Build → Prove pipeline is dead on arrival from the published package.Root cause
Installed 0.9.1,
codeframe/adapters/llm/base.py:All five are dated, now-retired IDs. Only
GENERATIONis proven 404 here because discovery fails there first, but the other four are the same vintage.This is already fixed on
main— and unreleasedmaincarries the corrected aliases:Re-running the identical walkthrough against a source install of
maingets past the 404 and into the Socratic discovery loop. So the code is fine; the published artifact is not. The fix is a release, not a patch.Acceptance criteria
0.9.2(or later) frommainsouv tool install codeframe-aigets working model defaultsscripts/quickstart-cleanroom/run.sh(no--source) reachescf prd generatewithout a model error against the published packageDEFAULT_*_MODELis not resolvable — a dated model ID silently rotting out from under a published artifact must not be able to recurEvidence
scripts/quickstart-cleanroom/artifacts-pypi-0.9.1/transcript.txtcodeframe/adapters/llm/base.py:47-51onmainvs. the same file in the installed 0.9.1 wheelscripts/quickstart-cleanroom/(added by Launch: validate the 15-minute quick start from a clean machine + recorded demo #614)