Steering AI legal review

Data and code

Fixtures, prompts, harness, analysis code and raw records, so that every number on this site can be recomputed by someone else.

Where it lives

Repository
github.com/jaecho890-svg/legal-injection-paper
Archived copy
DOI pending
Paper licence
CC BY 4.0
Code licence
MIT
Data licence
CC BY 4.0

Raw records

Raw records by study
StudyRaw recordsFolder in the repositoryAnalysis summary
Contract review5,510 reviews, 5,509 judgedkestrel-injection-study/contract-review-summary.md
Interpretive drift4,258 conversations parsed, 82 unparseableinterpretive-drift-study/interpretive-drift-summary.md
IP assignment1,078 conversations parsed, 2 unparseable, and 150 pipeline runsip-assignment-study/ip-assignment-summary.md
Due-diligence pipeline1,050 judged itemsdd-pipeline-study/due-diligence-summary.md

Counts are from the recomputation of 10 November 2026. Raw records are never edited; the public copy removes email addresses and home-folder paths and replaces one account name with the author's.

Downloads

Files to download
FileContentsSizeSHA-256, first 16
paper.pdfThe working paper129 kB584766b38e014cc4
figure1-values.txtEvery value plotted in Figure 15 kBa6180c1d53aaf51a
results.mdResults across the four studies, with the tables behind the paper22 kB8e810349d00f39f9
fixtures.mdWhat each fictional case file contains and how it was built6 kB70bff589e77c5541
validation-2026-11-10.mdThe two recomputation passes and the corrections8 kBc14cdbc6459df74a
contract-review-summary.mdContract review: every cell, with intervals and p-values183 kB3513f2f420ff4498
contract-review-cells.jsonContract review: the same cells, machine-readable140 kB76ea69d4cfe3194f
contract-review-judge-agreement.mdContract review: agreement between the two automated judges1 kB61b6a86dfc0c342b
contract-review-human-agreement.mdContract review: agreement between the judge and the human coder1 kB2ea24b15b38c71fc
interpretive-drift-summary.mdInterpretive drift: every arm, model and case38 kB0a36c96acc1467d0
interpretive-drift-trajectories.csvInterpretive drift: mean P after each evidence item155 kB6602998afb35be25
ip-assignment-summary.mdIP assignment: every arm, model and anchor18 kB8a1c0f304030f21f
due-diligence-summary.mdDue-diligence pipeline: every configuration7 kB9def54d9f817ee24
due-diligence-judge-agreement.mdDue-diligence pipeline: agreement between the two automated judges1 kB11825696d5deb546

Checksums for every file: SHA256SUMS. Check with shasum -a 256 -c SHA256SUMS.

Reproduce

From a checkout of the repository. A dry run calls no model and costs nothing.

Run the unit tests

python3 -m unittest discover -s tests

Check the fixtures against their specifications

python3 tools/validate_fixtures.py

Confirm each model route answers in isolation

python3 -m common.probe --models opus-5.5,haiku-5.5 --mark-verified

Dry-run the contract-review experiment

python3 kestrel-injection-study/harness/experiment.py run --models opus-5.5,haiku-5.5 --reps 5 --dry-run

Report an error

If a number here does not match the raw records, or a claim goes further than the data, write to the author or open an issue. Confirmed errors are fixed in the manuscript and added to the corrections.

To cite the paper or the data, use the entries on the paper page.