feat(reviewer-eval): port CI notebook-prose extraction into ci_prompt#649
feat(reviewer-eval): port CI notebook-prose extraction into ci_prompt#649igerber wants to merge 3 commits into
Conversation
|
Overall Assessment Executive Summary
Methodology No findings. Affected methods: none. This PR changes the reviewer-eval harness, docs, TODO, changelog, and tests only. Code Quality
Performance No findings. The added extraction path is bounded by the same per-output, per-notebook, and aggregate caps as CI. Maintainability
Tech Debt No findings. The removed TODO row matches the implemented feature and no new untracked deferred work is introduced. Security No direct security finding. The default extractor is resolved from the harness repo, not the case worktree. The adversarial filename prompt-omission issue is covered as the P1 Code Quality finding. Documentation/Tests
Path to Approval
|
46403ac to
6c6c500
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment ✅ Looks good. No unmitigated P0/P1 findings remain. Executive Summary
Methodology No findings. Affected methods: none. This PR changes reviewer-eval prompt assembly, corpus validation, tests, TODO, README, and changelog only; no Methodology Registry cross-check is required beyond confirming no estimator surface changed. Code Quality No P0/P1 findings. The prior quoted-path gate issue is addressed by unconditional Performance No findings. Notebook extraction remains bounded by per-output, per-notebook, and aggregate caps ( Maintainability
Tech Debt
Security No findings. The default extractor path is resolved from Documentation/Tests
|
6c6c500 to
d994759
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment ✅ Looks good. No unmitigated P0/P1 findings. Executive Summary
Methodology No findings. Affected methods: none. This PR changes reviewer-eval prompt assembly, corpus validation, tests, README/TODO/CHANGELOG only; no Methodology Registry or cited-paper mismatch is implicated. Code Quality No P0/P1 findings. The changed prompt path handles empty notebook extraction, aggregate truncation, byte-count parity, and quoted Git filenames in the new tests. Performance No findings. Notebook prose remains bounded by per-output, per-notebook, and aggregate caps in Maintainability
Tech Debt No findings. Removing the completed local-review TODO row is consistent with the implemented support. Security No findings. The default extractor path is resolved from Documentation/Tests
|
d994759 to
25f9a08
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment ✅ Looks good. No unmitigated P0/P1 findings. Executive Summary
Methodology No findings. Affected methods: none. This PR changes reviewer-eval prompt assembly, corpus validation, docs, TODO, and adapter tests only; Code Quality No P0/P1 findings. The new prompt path handles zero extracted notebooks, close-tag sanitization, byte-count aggregate caps, quoted Git filenames, and trusted extractor sourcing. Performance No findings. Notebook prose remains bounded by per-output, per-notebook, and aggregate caps in Maintainability
Tech Debt No findings. Removing the completed TODO row is consistent with the implemented support. Security No findings. The default extractor uses the trusted harness-root path and the regression test covers a malicious worktree extractor at Documentation/Tests
|
Tutorial-notebook cases (docs/tutorials/*.ipynb) were guarded out of verify-corpus/run because ci_prompt reproduced only the CI diff exclusion, not the <notebook-prose> block. Ports the extraction with full workflow fidelity: notebook_md_extract.py with the same caps (20k/output, 200k/notebook, 800k aggregate via pre-extract test-then-append + omitted-notebooks truncation marker), fail-soft per-notebook extraction, the zero-extracted fallback, close-tag sanitization, the untrusted wrapper + out-of-wrapper warning, and the append-after-diff position. Guards lifted in corpus_loader; README limitation note replaced with the supported-behavior description. Documented divergence mirrors pr_review.md sourcing: the extractor runs from the current repo, not each case's base SHA. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… name-status (CI codex P1) touches_notebook() parses non-z name-status text where git's default core.quotePath C-quotes non-ASCII/special paths — the tab-split predicate silently missed them, excluding the notebook from the diff body while never building its prose block. The prose builder's robust null-delimited --name-only -z discovery is now authoritative (it returns '' when no tutorial changed). Regression test: a C-quoted non-ASCII tutorial filename still gets its prose block. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… (review P3s) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
25f9a08 to
3482244
Compare
Summary
docs/tutorials/*.ipynb) were guarded out ofverify-corpus/runbecauseci_promptreproduced only the CI diff exclusion, not the<notebook-prose>block — so such cases would have been reviewed with less context than CI. This ports the extraction with full workflow fidelity:tools/notebook_md_extract.pywith the same caps (20k/output, 200k/notebook, 800k aggregate measured in bytes like CI'swc -c, enforced pre-extract-then-append with an omitted-notebooks truncation marker), fail-soft per-notebook extraction, the zero-extracted fallback, close-tag sanitization, the untrusted wrapper + out-of-wrapper warning, and the append-after-diff position. Guards lifted incorpus_loader; README limitation note replaced. Closes the local-review TODO row.notebook_md_extract.pyis never invoked while prose still extracts via the trusted copy. Documented divergence mirrorspr_review.mdsourcing (CI stages the extractor from BASE_SHA for the same reason).verify-corpuspasses (2/2), full eval suites green (76).Methodology references (required if estimator / math changes)
pr_review.mddivergence).Validation
tests/test_evals_adapters.py(6 new; file 16 pass),tests/test_evals_runtime.pyunchanged (60 pass);run_eval.py verify-corpus2/2.Security / privacy
Generated with Claude Code