Repository navigation
Readiness fixes: fail-closed gaps, claims true-up, repo hygiene (audit 2026-08-24) - #2
Merged
Merged
Conversation
…view) + ignore .env P1-1: .gitignore now excludes .env/.env.* (keeping .env.example), .venv/, *.pem, *.key, .coverage — the quickstart creates .env at the repo root and nothing guarded it (folds in PR #1's .venv/.coverage lines). P1-2: agent_loop treats stop_reason="tool_use" on the final message (the SDK runner exhausted max_iterations with the model still requesting tools) as LLMFailure, and run_compliance_review raises LLMFailure when the agent never called report_findings — a compliance audit can no longer render as a clean pass with zero findings. P1-3: structured() wraps json.loads so malformed JSON raises LLMFailure (the documented contract) instead of escaping as a raw JSONDecodeError / HTTP 500. Tests: fake tool-runner coverage for agent_loop (success, iteration cap, no messages), invalid-JSON structured(), and both compliance fail-closed paths. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL
…et NOTICE P1-4: README metrics line now states the run explicitly (single run, 2026-07-18, on 12 of the current 13 goldset cases; rerun pending) and the test count matches the collected suite (297). The goldset rerun itself is deferred to the owner: python -m halo.mci.demo, then commit evals/goldset_<date>.json. P1-5: docs/ECOSYSTEM.md no longer says "MD-signed" — the CME cards are hand-built with physician sign-off pending (all four carry review.status="draft"). P1-6: synthetic-ambient-fhir-25/NOTICE states the dataset was provided by Abridge for hackathon use and that redistribution terms are unconfirmed (not covered by the repo's Apache-2.0). Confirming terms with Abridge is deferred to the owner. Also: scenario count consistency (6 scripted scenarios, README + demo.py). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL
…mypy strict clean - SECURITY.md (disclosure contact, scope, supported versions) and a short CONTRIBUTING.md. - CI actions pinned to commit SHAs (checkout v4.4.0, setup-python v5.6.0). - anthropic bounded to >=1.0,<2 (code depends on 1.x beta surfaces). - Fix the 5 mypy-strict errors in src/halo/mci (env-default Path handling in panel/census, typed _invert helper in triage, extract values dict) — mypy strict now clean on all 36 source files, matching the log's claim. - STATUS.md archived to docs/HACKATHON_LOG.md (hackathon is over); README and CLAUDE.md references updated. - HandoffRequest.incident_date defaults to today (UTC) instead of the hard-coded hackathon date. - edu/drill.py and edu/lookup.py log at warning level before failing closed, so an auth/config outage is distinguishable from a model decline. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the P1 findings and P2 polish from the 2026-08-24 public-repo readiness audit.
P1
.gitignorenow excludes.env,.env.*(keeping.env.example),.venv/,*.pem,*.key,.coverage— the quickstart creates.envat the repo root and nothing guarded it. Folds in the.gitignorelines PR Test coverage analysis + gitignore .venv/.coverage #1 proposed.agent_looptreatsstop_reason="tool_use"on the final message (SDK runner exhaustedmax_iterationswith the model still requesting tools) asLLMFailure;run_compliance_reviewraisesLLMFailure("...agent never called report_findings")when the summary holder is empty. A compliance audit can no longer render as a clean pass with zero findings.structured()wrapsjson.loadsso malformed JSON raisesLLMFailure(the documented contract) instead of escaping as a rawJSONDecodeError→ HTTP 500.python -m halo.mci.demoon the 13-case goldset and commitevals/goldset_<date>.json(needs a live key; not run here).docs/ECOSYSTEM.mdCME box no longer says "MD-signed": hand-built; physician sign-off pending (all four cardsreview.status="draft").synthetic-ambient-fhir-25/NOTICEstates the dataset was provided by Abridge for hackathon use and that redistribution terms are unconfirmed. Deferred to owner: confirm terms with Abridge; the data itself is untouched.P2
SECURITY.md(disclosure contact b@thegoatnote.com) + shortCONTRIBUTING.md.anthropic>=1.0,<2(code depends on 1.x beta surfaces).src/halo/mcifixed —mypystrict now clean on all 36 source files.demo.py).STATUS.mdarchived todocs/HACKATHON_LOG.md; README/CLAUDE.md references updated.HandoffRequest.incident_datedefaults to today (UTC), not the hard-coded hackathon date.edu/drill.py/edu/lookup.pylog at warning level before failing closed.Verification
ruff check+ruff format --checkcleanmypystrict: no issues in 36 source files.gitignoreverified withgit check-ignore(.env.examplestill tracked)🤖 Generated with Claude Code
https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL