One fact should not answer two questions - #44
Merged
Merged
Conversation
Rule RET-06 fired forty-two times across the stress corpus: two cards whose answer is the same sentence of the source, so the listener is asked two questions and given one fact, and retrieval practice is spent without being had. The section-closing cards already avoided it, through _unshared_support, and the reasoning written there is the right reasoning. The segment prompts drew through SupportPool.take instead, whose ledger is keyed per *concept* -- which is correct for exposition, where one sentence can reasonably serve two ideas, and wrong for a question. A sentence already answering one was free to answer another. Compared by span rather than by text, because the answers themselves differ by construction: each opens on a lead carrying its own subject's name, which is why comparing whole answers reports nothing and looks like a rule that passes. A prompt with nothing unshared left is dropped rather than asked. Unlike a section's closing question, which rule STR-06 requires, a segment prompt is already optional and capped. This also emptied KNOWN_FINDINGS in test_script_lint.py, which is that mechanism working as designed: the entry recorded that RET-06 fires on the clean fixture plan and why, the test fails when an entry stops firing, and the stated reason was about the section-closing cards -- it said nothing about where the sharing actually came from. Corpus: RET-06 falls from forty-two to none. Co-Authored-By: Claude Opus 5 <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.
RET-06fired 42 times across the stress corpus: two cards whose answer is the same sentence of the source. The listener is asked two questions and given one fact, and retrieval practice is spent without being had.Where it came from
The section-closing cards already avoided this, through
_unshared_support, and the reasoning written there is the right reasoning. The segment prompts drew throughSupportPool.takeinstead, whose ledger is keyed per concept — correct for exposition, where one sentence can reasonably serve two ideas, and wrong for a question. A sentence already answering one was free to answer another.Compared by span, not by text: the answers differ by construction, each opening on a lead that carries its own subject's name, which is exactly why comparing whole answers reports nothing and looks like a rule that passes.
A prompt with nothing unshared left is dropped rather than asked. Unlike a section's closing question, which
STR-06requires, a segment prompt is already optional and capped.This emptied KNOWN_FINDINGS, which is that mechanism working
tests/unit/test_script_lint.pyrecords rules that fire on the clean fixture plan together with the reason, and fails when an entry stops firing. The entry said:True of the section-closing cards — and it said nothing about the segment prompts, where the sharing actually came from. The reason is kept in the file as a note beside
STR-09, which left the same way.Corpus
🤖 Generated with Claude Code