Measure the Greek grant list's coverage; it is complete for the harvest - #232
Merged
Merged
Conversation
The fixed-date grant list was left carrying a warning that it was incomplete by construction -- a date only surfaces when it lands on a Wednesday or Friday, so some grants must still be hidden. That was an expected-value argument rather than a measurement. Measuring it shows the list is complete with respect to the ten years harvested, so the follow-up harvest it implied is not needed. The measurement has to be made against the season, not the app's output. Asking "where does the app say strict?" is circular: a granted date no longer says strict, so every grant looks like a gap. Tried that way first, it reported 113 blind dates, most of which were the grants themselves. A grant leaves a trace only where the season's own floor is strict and its cap would let a claim reach wine and oil. Of 366 calendar dates, 329 are probed two or more times, 12 once, and 25 never. The 25 are two structural blind spots and neither is a real gap. Dec 25 to Jan 4 and Jan 6 are fast-free, so no grant can exist there. Aug 1-14, the Dormition fast, caps claims below rank 7 to strict, so a grant would be invisible -- and rather than leave that an unknown it was checked against goarch.org directly: across ten years its Dormition weekdays are strict 93 times and fish 7, and all seven are Aug 6, the Transfiguration, which the shared data already grants. Of the 12 thinly-probed dates, two showed wine and oil on their single probe, Feb 17 and Jun 3, and both are already right -- Feb 17 through its override and Jun 3 from the Paschal season's own allowance rather than from any grant. Adds tools/fasting/grant_coverage.py so the question can be re-asked after any future harvest, and corrects the claim in docs/fasting-refactor-scope.md. Documentation and a tool; no application code or data changed. 197 tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX
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.
Closes the loose thread left by #230: the Greek fixed-date grant list carried a warning that it was "incomplete by construction", implying a follow-up harvest was needed.
That warning was an expected-value argument, not a measurement. Measuring it shows the list is already complete with respect to the ten years harvested, so no further harvest is needed.
Coverage
The measurement has a trap, which I hit first
Asking "where does the app say strict?" is circular — a granted date no longer says strict, so every grant looks like a gap. Done that way it reported 113 blind dates, most of which were the grants themselves.
The right test asks the season, not the output: a grant leaves a trace only where the season's own floor is strict and its cap would let a claim reach wine and oil. That's what
grant_coverage.pydoes, and the docstring says why.Both structural blind spots checked, neither is a gap
Of the 12 thinly-probed dates, two showed wine and oil on their single probe — Feb 17 and Jun 3 — and both are already right: Feb 17 through its override, Jun 3 from the Paschal season's own allowance rather than from any grant at all.
What's in the PR
tools/fasting/grant_coverage.py— so the question can be re-asked after any future harvest instead of re-deriving the argumentdocs/fasting-refactor-scope.md— the corrected claim, with the measurementMore years would only buy probes for those 12 thin dates; the harvest route stays documented in
tools/fasting/goarch_audit.py.Documentation and one tool. No application code or data changed. 197 tests pass.
🤖 Generated with Claude Code
https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX