Skip to content

Honest README, strict-by-default preflight, scrubbed internals, full Apache-2.0 - #3

Merged
bGOATnote merged 1 commit into
mainfrom
fix/honest-readme-strict-preflight
Aug 31, 2026
Merged

bGOATnote merged 1 commit into
mainfrom
fix/honest-readme-strict-preflight

Conversation

@bGOATnote

Copy link
Copy Markdown
Member

Fixes from the 2026-08-24 public-repo readiness audit (P1-1, P1-2, P1-3, P1-5, P2-1; P1-4 tag follows after merge).

P1-1 — README tells the truth

Rewritten into Implemented (v0.1) vs Planned (not yet built). The four subsystems that exist only as one-line package stubs (shift gauntlet/CSGG, physician adjudication, calibration ECE, receipts attestation) are labelled planned; "hardened", "audit-grade", and "the moat" are gone from README, CLAUDE.md, docs/ARCHITECTURE.md, the pyproject description, and module docstrings. The README now states plainly that no end-to-end eval of a real model has been run and that the judge adapters have never been exercised against a live judge from this repo.

P1-2 — preflight fails closed by default

python -m medimage_eval.judges.preflight (and make preflight) is now strict by default: missing keys exit 3, zero canaries attempted exits 3, auth failure exits 2. --allow-missing replaces the old opt-in --strict for keyless local dev. Writing the test for the zero-canary path exposed a latent bug — canaries or {...} treated an injected empty dict as "use live SDK canaries" — fixed with an explicit is None check.

P1-3 — internal references scrubbed

The ~/lostbench/.env hint in preflight.py, the /Users/kiteboard/... path in CLAUDE.md, and the healthcraft-V9 / scribegoat2 memory references in dual_judge.py and openai_judge.py are rewritten as generic, self-contained rationale.

P1-5 — real license file

LICENSE now carries the full Apache-2.0 text (the previous 17-line stub made GitHub report NOASSERTION); NOTICE added.

P2-1 — SDK floors match the API shapes used

anthropic>=1.0 (the adapter uses output_config.format), openai>=2.

Verification

  • 54 tests pass hermetically in 0.02s (3 new preflight tests)
  • ruff check, ruff format --check, bandit clean
  • Coverage 76.6% (CI gate 70)

After merge: tag v0.1.0.dev0 and push it (P1-4); the consumer repos pin to that tag in their own PRs.

🤖 Generated with Claude Code

https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL

…Apache-2.0

P1-1: README rewritten into Implemented (v0.1) vs Planned; the four
subsystems that exist only as package stubs (shift gauntlet, adjudication,
calibration, receipts) are labelled planned; "hardened", "audit-grade", and
"the moat" removed from README, CLAUDE.md, ARCHITECTURE.md, pyproject
description, module docstrings. States plainly that no end-to-end eval of a
real model has been run yet.

P1-2: judge preflight is strict by default — missing keys or zero canaries
attempted exit non-zero; --allow-missing added for keyless local dev; the
old --strict flag is now the default behaviour. Also fixes a latent bug the
new test exposed: an empty canaries dict fell through to live SDK calls
(`canaries or {...}`); now `if canaries is None`.

P1-3: owner-environment references scrubbed: dotenv path hints in
preflight.py and CLAUDE.md generalised; healthcraft/scribegoat memory
references in dual_judge.py and openai_judge.py rewritten as self-contained
rationale.

P1-5: LICENSE now carries the full Apache-2.0 text (was a 17-line stub that
GitHub reported as NOASSERTION); NOTICE added.

P2-1: SDK floors raised to anthropic>=1.0, openai>=2 to match the API
shapes the adapters use.

Tests: 54 passed (3 new: strict-default main, --allow-missing, zero-canary
strict failure); ruff check/format, bandit clean; coverage 76.6% (gate 70).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL
@bGOATnote
bGOATnote merged commit bec81e0 into main Aug 31, 2026
4 checks passed
@bGOATnote
bGOATnote deleted the fix/honest-readme-strict-preflight branch August 31, 2026 19:28
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