Repository navigation
Fix the query-side defects the review found; one home for the rank constants - #143
Merged
Merged
Conversation
…nstants `history` overwrote its `years` argument with the span it measured, so the block's parameters reported a span nobody asked for and the blockId moved with the data; the parameters now carry the argument as given and the heading keeps the span found. `statements` took any `kind`, so a `specimen` with a source named fell through to the classification gap sentence; the kinds it selects by are `STATEMENT_KINDS` in the store, which refuses any other, as `gap` now refuses a kind outside `COVERAGE_WORDS` in place of the MCP wrapper's hand check; the spec carries both enums, the CLI their choices, and the dead `claims.KINDS` and the dead `ranges` keys of the coverage map go. The planner prompt offered a `diagnosis` kind and a `diagnoses` gap that never existed. Plan validation now enforces `enum`, `minItems` and `maxItems`, so a one-element `years` or a bogus `trees` or gap `kind` is a plan error rather than an unpack message from inside a tool, and `tools.call` checks the span's shape for the MCP surface, which bypasses validation; `execute` catches only `ValueError`, so a `KeyError` or `TypeError` is the bug it is. The CLI `plan` command reports an unreadable file or bad YAML with exit 2 instead of a traceback. `descendants` sorted by a sixteen-rank tuple that lacked variety, Parvclass, Subkingdom and every informal rank, so those rows sorted below species. `phylohist/ranks.py` holds the schema's `rank` enum in its order (a test keeps them equal), the species and genus groups, and the fold every comparison reads a rank through; it replaces the nine spellings of those tuples across both sides, the loader's numeric rank table (the genus-group order check gives the same verdict for every pair) and twenty-one hand-written lower-casings. Nothing about the rank semantics is decided here. `Closure.name` and `rank` delegate to the store, so the JSON schemes name a designated record as the words do, and the owner-path helper moves to `Closure` for the nine sites that spelled it inline. No rendered string or row order that the tests or the eval questions pin changes; the derived files are untouched. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
historyoverwrote itsyearsargument with the span it measured, so the block's parameters reported a span nobody asked for and the blockId moved with the data; the parameters now carry the argument as given and the heading keeps the span found.statementstook anykind, so aspecimenwith a source named fell through to the classification gap sentence; the kinds it selects by areSTATEMENT_KINDSin the store, which refuses any other, asgapnow refuses a kind outsideCOVERAGE_WORDSin place of the MCP wrapper's hand check; the spec carries both enums, the CLI their choices, and the deadclaims.KINDSand the deadrangeskeys of the coverage map go. The planner prompt offered adiagnosiskind and adiagnosesgap that never existed.Plan validation now enforces
enum,minItemsandmaxItems, so a one-elementyearsor a bogustreesor gapkindis a plan error rather than an unpack message from inside a tool, andtools.callchecks the span's shape for the MCP surface, which bypasses validation;executecatches onlyValueError, so aKeyErrororTypeErroris the bug it is. The CLIplancommand reports an unreadable file or bad YAML with exit 2 instead of a traceback.descendantssorted by a sixteen-rank tuple that lacked variety, Parvclass, Subkingdom and every informal rank, so those rows sorted below species.phylohist/ranks.pyholds the schema'srankenum in its order (a test keeps them equal), the species and genus groups, and the fold every comparison reads a rank through; it replaces the nine spellings of those tuples across both sides, the loader's numeric rank table (the genus-group order check gives the same verdict for every pair) and twenty-one hand-written lower-casings. Nothing about the rank semantics is decided here.Closure.nameandrankdelegate to the store, so the JSON schemes name a designated record as the words do, and the owner-path helper moves toClosurefor the nine sites that spelled it inline.No rendered string or row order that the tests or the eval questions pin changes; the derived files are untouched.