Repository navigation
PRD-002 and PRD-002a: a rederivation eval, its dev baseline, and a check that it catches a missing block - #2
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
…s on Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
… artifact runs it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
…gh the home folder Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
…grader reply that does not fit is asked again, and its raw marks are kept Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
…d length stated exactly Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
…iples-cut Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
…ort the verdict Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
Five of six cuts pass; bloom-filter is dropped (its block stayed recoverable in all three attempts). cuts/review.md names what each cut left behind. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
The cut block was caught in 4 of 5 subjects (4 needed), with no clean-set losses and no leaks. Float-sum is the miss. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
…ter a controls run; the write-up says what the verdict rests on Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui
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 PRD-002 (plan): can a reader work out a result that an explanation never states? Also PRD-002a (plan): does that test notice when a building block is missing?
What's in it
evals/artifact/questions.yaml. Each has a question the explanation was never asked to answer, 3–6 expected steps (building blocks plus derived steps), and a result.explainer eval targets, results inevals/artifact/rederive-checks.json).explainer_kit/rederive.py).explainer eval rederive --builds <run>, andeval artifactnow runs it too.explainer eval humanplusevals/artifact/human-check.md.evals/artifact/results/2026-10-20-dev-rederive/. The v0.8 record is unchanged.What it found (docs/evals.md)
Review
A final whole-branch review led to these fixes, each with a test that failed first:
PRD-002a: does the test catch a missing block? (docs/evals.md)
The baseline's near-ceiling score could mean good builds or a blind test. To tell them apart, one building block was cut from saved v0.8
principlesexplanations and the unchanged stage was run on the cut copies.explainer eval cuts,explainer_kit/controls.py).explainer eval controls). The cut copies were read fresh, and the baseline's reads were reused for the other conditions. All four were graded fresh, blind, over 3 passes. A leak check covers uncaught cuts.What it found:
A final whole-branch review led to these fixes, each with a test that failed first:
eval cutsrefuses a folder thateval controlshas run on.Test plan
uv run pytest -q: 310 passed, offline.uv run explainer checkpasses.git diff main -- plugin/skills explainers evals/artifact/results/2026-10-04-dev*is empty.🤖 Generated with Claude Code
https://claude.ai/code/session_01DuVfjP13T9TDZwFJdP5uui