Commit Graph
17 Commits
Author SHA1 Message Date
JinotechandClaude Opus 5 ab175ce253 build(stage1): populate the derived columns of the adjudication table
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>
2026-09-21 00:15:47 +12:00
JinotechandClaude Opus 5 21c7e211d0 fix(stage1): apply corrections both reviewers agreed on, downgrade unsourced status
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>
2026-09-20 22:03:41 +12:00
JinotechandClaude Opus 5 4c7f42bfe4 build(stage1): rebuild primary outcome package in the locked environment
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>
2026-09-20 21:49:17 +12:00
JinotechandClaude Opus 5 0c9645e120 fix(stage1): correct source attribution at the build sources
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
2026-09-20 08:24:25 +00:00
JinotechandClaude Opus 5 413b679904 review(stage1): record signed primary outcome reviews
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
2026-09-20 08:04:23 +00:00
Jinotech 8f5cbc9415 build(stage1): prepare independent human review 2026-09-20 09:29:44 +12:00
Jinotech 31ca2cf0da chore(stage1): sync design audit limitations 2026-09-20 09:24:53 +12:00
Jinotech 22d58f0d46 fix(stage1): verify survey design fields 2026-09-20 09:24:14 +12:00
Jinotech 89c20f32c7 build(stage1): create primary outcome response layer 2026-09-20 09:11:16 +12:00
Jinotech a6df01da7e import(stage1): validate YRBS 2021 and 2023 layouts 2026-09-20 09:04:42 +12:00
Jinotech f7e0dbbc22 build(stage1): create primary outcome review package 2026-09-20 08:58:52 +12:00
Jinotech e5e301ef54 docs(stage1): source Solomon GSHS outcomes 2026-09-20 08:49:27 +12:00
Jinotech a7ac525c2c fix(stage1): correct YRBS outcome mappings 2026-09-20 08:45:46 +12:00
Jinotech f0a4538242 feat(stage1): audit GSHS outcome components 2026-09-20 08:35:13 +12:00
Jinotech 7d50ae61ca feat(stage1): verify NSDUH youth attempt availability 2026-09-20 08:16:33 +12:00
Jinotech fb30b60985 feat(stage1): register primary outcome candidates 2026-09-20 08:05:50 +12:00
Jinotech 5c31417935 feat(stage1): audit survey input structures 2026-09-20 07:18:51 +12:00