Fills reviewer_1_decision, reviewer_2_decision and conflict_reason for all 84
rows (252 cells) so adjudicators can work from one sheet. Every adjudicator
field stays blank: identity, date, final_*, notes and attestation are human
attestation and the script neither writes them nor overwrites existing values.
conflict_reason follows the validator's actual rule (decisions differ, or
reviewer_1 is not a plain approve) and states only the mechanical reason plus
both decisions - no interpretation. 63 rows differ, 21 agree but are not plain
approve, so all 84 require adjudication.
Adds a purpose-built script rather than fixing at the usual build source:
build_human_review_packets.py overwrites both signed reviewer CSVs with blank
templates at lines 39-40, so running it would destroy 84 rows of signed human
review. It was not run. The new script re-hashes both signed packets before and
after and exits FATAL if either changed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Implements only what reviewer 1 and reviewer 2 independently and concordantly
required, at the build sources rather than in generated files:
- NSDUH 2022/2023/2024 YUSUITHK: strip the codebook editorial note about the
2022 section move from question_text. It was never shown to respondents.
The removed text is kept verbatim in notes.
- NSDUH 2021 YUSUITHK: drop the stray space before the final question mark.
- Solomon Islands items: review_status provisional -> needs_source. No country
questionnaire, codebook or fact sheet ships under Dataset/; the only citation
is the generic GSHS data dictionary. Keyed off the missing instrument, not
hardcoded per country.
Also downgrades two design claims that A-20260920-067 verified as unsupported:
Jamaica and Wallis and Futuna report a census with a 100% school response rate
but carried the same Taylor-linearization plan as the two-stage cluster
samples. design_status becomes census_variance_treatment_unresolved and two
conflict records are added. variance_method itself is untouched - that is a
Stage 4 statistical decision needing its own evidence.
Deliberately not done: the instruction sentence missing from the 2021 stem is
left absent rather than written in, since that would be composing official
question text; and the 84 adjudications remain human work. Only 21 of 84 rows
are concordant, so 63 need adjudication.
84 item_version_id unchanged, response_dictionary byte-identical, both signed
reviewer CSVs unchanged. Gate 1 audit passes all seven machine deliverables and
stays blocked solely on two_actual_human_reviewers.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Runs the four Stage 1 build scripts under .venv-research (python 3.12.14,
pandas 3.0.6, numpy 2.5.3, pyarrow 25.0.1, duckdb 1.5.5 - all matching
python-requirements.lock.txt), clearing the environment mismatch that halted
A-20260920-068. Brings generated artifacts back in line with the sources
corrected in 0c9645e.
Diff verified item by item: all 84 item_version_id unchanged, response
dictionary keys identical, and the only changes are the four authorized
corrections - YRBS 1995/1997 Louisiana exclusion, NSDUH attempt source
attribution and verification status, the five unattested inherited codes
marked needs_source, and the Morocco / Wallis and Futuna questionnaire
references switched to the stored text language.
Both signed reviewer CSVs are byte-identical before and after. Gate 1
acceptance audit still passes all seven machine deliverables and remains
blocked solely on two_actual_human_reviewers; Gate 1 stays in_progress.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Applies the three source-attested corrections from the signed reviews.
All are made in the generators, not the generated CSVs, which would be
overwritten on the next build.
YRBS population: the 1995 and 1997 National User Guides state the frame
covers "the fifty states and the District of Columbia, excluding a
majority of Louisiana". 1993 and 1999 carry no such restriction, so the
string is now year-conditional in both the item audit and the design
record instead of claiming plain national coverage for every year.
NSDUH attempt: source_file was None because the codebook render was
pending. The local MRB specification PDFs carry YSUI03 verbatim for all
four years, including the [IF CURNTAGE = 12 - 17] condition, so each
year now cites its local instrument and the status moves to
local_instrument_pdf_verified.
NSDUH attempt codes: YUSUICTRY appears in no local dictionary or schema,
yet carried nine codes identical to the ideation variable YUSUITHK. The
instrument offers only 1-4 plus DK/REF, so 85/94/97/98/99 are now marked
unattested and inherited, and those dictionary rows become needs_source.
GSHS citation: the questionnaire selector took the first document whose
role contained "questionnaire", which cited a French instrument for
English question_text in the Morocco and Wallis and Futuna components.
It now prefers the version matching the stored wording. Verified against
all six components; the other four are unchanged.
Generated artefacts are deliberately NOT rebuilt here: that regenerates
the item bank and the human review queue and is gate-relevant.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yuKikAXbByLvsUnh55SRd
Both reviewer packets are signed on all 84 rows: reviewer 1 Jino Gu,
reviewer 2 Jinghao Guo, each row carrying the independence attestation.
Reviewer 1: 52 needs_source, 32 approve_with_correction.
Reviewer 2: 45 approve, 32 approve_with_correction, 7 needs_source.
validate_human_reviews.py returns status=failed on two counts, both
recorded rather than worked around: review_date is written 2026/9/20
where ISO YYYY-MM-DD is required (168 rows), and all 84 items still
await adjudication. Signed rows were not edited. Gate 1 stays
in_progress; no item bank or response layer was rebuilt.
Adds ERR-20260920-043 and the reviewer summaries, including reviewer
2's findings on NSDUH source attestation, the GSHS French
mis-citation, census vs cluster design treatment, and the YRBS
1995/1997 Louisiana population caveat.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yuKikAXbByLvsUnh55SRd