Repository navigation
feat(proof): add proof state, one read for counts, contests and blockers - #289
Draft
tonyketcham wants to merge 1 commit into
Conversation
…ckers `proof find` answers questions about what records say. It misses counts, open and closed sets, status history, blockers and live records that rest on dead evidence, because no single record states those. `proof state <effortId>` prints them for one Effort, built only from frontmatter and links: - exact counts by kind and standing; - open Issues and blockers, with what each gates; - Risks, and the Constraints in force; - contested topics: every question with more than one Decision, and every replacement chain, with what rejected or replaced each version and when; - Issues closed without a fix; - dead evidence: live records resting on replaced, disproved, rejected or retracted ones; - dated changes, and retractions. Settled records cost only their counts. The Markdown aims for 15,000 characters; longer lists shrink in a fixed order, and every cut prints "N more" and sets `capped`. `--as-of` is refused with a pointer to `proof find --as-of`. The read server serves it. The benchmark gains `state-recall.mjs`, a free offline check of whether the answer is in the state output, and a `findstate` strategy. On the 10x graph's held-out half the check finds the answer for 55% of count, status-history, blocker and dead-evidence questions, against a 60% bar, so `state` alone fails it. `find` alone covers 15 of those 31 and `find` or `state` 24. The README records both rules and how the strict one came about. `grade.mjs` and `compare.mjs` take `--split`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DVVnhYL1Bz7mCfEKDoyLMW
4 of 8 tasks
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.
Summary of changes
This is layer 9 of a stack. It sits on #288.
proof findraised accuracy on the 10x graph (#286). But it still misses most questions about counts, open and closed sets, status history, blockers, and live records that rest on dead evidence, because no single record states those.proof state <effortId>prints them for one Effort. It is built only from frontmatter and links, never from body text.What it shows:
Size:
cappedwithcap_reasons: state_limit.Other details:
--as-ofis refused, with a pointer toproof find --as-of.bin/flatbread.jsforwards it.stateand when to usefind.Benchmark:
state-recall.mjsis a free offline check of whether the answer appears in the state output.findstatestrategy addsstateto thefindtask text.grade.mjsandcompare.mjstake--split tune|holdout.Offline result, reported plainly. On the 10x graph's held-out half,
stateholds the answer for 55% of count, status-history, blocker and dead-evidence questions under the strict scoring rule. That is below its own 60% bar, sostatealone fails it. On those 31 held-out questions,findalone covers 15 and one of the two covers 24, sostateadds tofind. The paid Run D tests that:findstateagainstfind, twice, on the 97 questions in those categories. Its results will come in a follow-up PR. The README records both scoring rules and how the strict one came about.Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
state.test.tscovers each section on a small graph, andserve.test.tschecks that servedstateoutput matches local output. 253 AVA tests pass, along with typecheck, lint andcheck.mjs.Does this introduce any non-backwards compatible changes?
Does this include any user config changes?
Generated by Claude Code