Model availability probes (2026-08-22)

One trivial read-only codex exec per candidate identifier on this host's ChatGPT-account login. gpt-5.3-codex-spark is the only supported small-model identifier; it responded correctly and accepted model_reasoning_effort=medium without warning. Rejected with 400 "not supported when using Codex with a ChatGPT account": gpt-5.3-spark, gpt-5.3-codex, codex-spark, gpt-5.6-codex-spark.

§5.1 — spec-level recording (guided tier, reduced effort)

Run r-20260822T091215143976-spec-level-recording, dispatched with --set backends.codex.effort=medium — the ledger's first non-default configuration after 820 uniform runs. Worker commit dbb81e0, merged as 4d3f3d2. Gate passed: focused suites 173/173 green, ruff clean; 8 tests added; scope exactly the five fenced paths. Worker time 266 s (vs the 12.8-min median of high-effort implement runs); 8,562 output tokens. Delivered: TaskNode.spec_level with fail-fast vocabulary refusal, --spec-level on dispatch, the SPEC ownership line in worker prompts, and a top-level spec_level field on every committed ledger record, forwarded at completion.

§5.2 — capability observation slice (exact tier, spark lane pilot)

Run r-20260822T092102204792-capability-spec-slice, dispatched to codex-spark (gpt-5.3-codex-spark) with --spec-level exact — the first spark-lane run and the first record carrying a declared level. Worker commit 2a10c38, merged as 1406b50. Gate passed: 14/14 capability tests green including the prescribed regression test; full-diff pilot audit found the change exactly as prescribed (the one observation key verbatim, one clean optional test-helper kwarg). Worker time 63 s; 8,597 output tokens. Verification after merge: crew + ledger + capabilities suites 187/187, full suite 1961 passed.

§5.3 — config and policy surfaces

Landed in 6767cd5: project flight layer docs/state/reckon/flight.yaml defining the codex-spark backend (defined, not defaulted — no role selects it), the advisory policy reference skills/reckon-ship/references/effort-routing.md, and the dispatch-section pointer in the ship skill. Dry-run demonstration from merged main: --set roles.implement.backend=codex-spark --spec-level exact --dry-run exits 0 resolving backend codex-spark, launch cli, node.spec_level=exact. A first attempt with a prose done-when was refused on the demonstrable property — the seven-property contract catching exactly the measure class the spark gate disqualifies. Note: the resolved time budget was 8m — the implement role's overlay wins over the spark backend's 15 m default, so a spark dispatch wanting longer states --time-budget explicitly.

Calibration state after landing

The rebuilt capability cache tracks 4 agent configurations (previously effectively 1): gpt-5.6-sol/high (499 usable runs, 16 h horizon), gpt-5.6-sol/medium (1 run), and gpt-5.3-codex-spark (1 run). Single-run horizons are binning artifacts, not competence evidence — the manual ≤ 0.5 h spark bound of the plan's §4 gate stays in force until slices reach the ≥ 10-run threshold of the plan's §6 decision rule. Observations now carry spec_level, so the §6 read-out can slice pass rate, worker minutes, tokens, and redispatch lineage per (configuration × declared level × size bucket).

§7 — config-mapped routing (one dial)

Run r-20260822T095148757302-spec-level-config-routing, dispatched at guided tier / sol medium per the table it was implementing. Worker commit b625b88, merged and pushed. Gate passed: 204/204 focused tests (8 new), ruff clean, regenerated schema artifacts byte-identical across a second generator run (hash logs in the run directory). Worker output 11,035 tokens. Delivered: by_spec_level routing overlays in the flight schema (fixed exact/guided/open slots carrying backend/model/effort/time_budget), resolution precedence level-backend > role-backend > default with level overlay applied last, whole-config validation of overlay backends, and budget pre-flight fan-out across every backend a role can reach.

Mapping made live in docs/state/reckon/flight.yaml (roles.implement.by_spec_level) and verified end-to-end by dry-run with no --set: exactcodex-spark/gpt-5.3-codex-spark at 15 m (the level overlay correctly outranks the implement role's 8 m budget), guidedsol/medium, opensol/high, undeclared → sol/high unchanged. Decision routing-mode locked to config-mapped by the lead the same day.

Side repair — ship skill returned to its read-set budget

The full-suite verification surfaced a pre-existing failure: test_engine_generated_dispatch_keeps_fixed_read_set_bounded (reckon-ship SKILL.md at 13,344 estimated tokens before this session's edits, against a 12,000 bound — broken by an earlier commit). Repaired in e016572 by relocating worked examples to references/sprint-orchestration.md §10 and compressing rationale while preserving every contract-anchored phrase: 11,904 estimated tokens after; skill-contract tests 38/38; full suite 1961 passed.