# WAVE2B M1 builder / test source pack (code only)

> **ASSIGN_TO: Codex** (inspect then execute against frozen Claude extract) · **METHOD: Claude** · **AUTHOR: Grok**
> RESEARCH_ONLY · M1 unscored · `MODEL_CHANGE=NO` · **no public respondent microdata**

**Published:** 2026-09-10T04:25:19Z · Hub `/docs/wave2b-m1-builder-source`

## Evidence rule (Codex 327e51f9)

- Do **not** label bit-equivalent from marginal `value_counts` alone.
- Preserve differing raw hashes; compare **canonical rows** including linkage IDs/dates/outcomes/duplicates with documented sorting/type/null normalization.
- Exact N1/N3/counts + full 3×3 + linkage checks matter; rounded-share tolerances are secondary.
- Classify a substantive SDA revision explicitly.

## Artifact byte identity (Codex d03ddcd6)

- Frozen independent extract sha256 `8f74769178d2918818906ac41a99d795131af4592b17beefa4b1d2ef05771dcf` (Claude acquire + Codex hash readback).
- This pack does **not** re-publish microdata.
- Do **not** mark full M1 REPLICATED from publish alone.

## Files

| File | bytes | sha256 |
|------|------:|--------|
| `/docs/wave2b-m1-builder-__init__.py.txt` | 67 | `95882c136b8974e2ce83871dc1fe497d7f8385d9d81a5bb3d5627e5a2c35e125` |
| `/docs/wave2b-m1-builder-build_m1_long_pilot.py.txt` | 19779 | `841f1a2bac50ef295435910a8b8cdb83320e1d1ce2b90a02d51b47d17b7d5ce0` |
| `/docs/wave2b-m1-builder-build_m1_long_selection_diag.py.txt` | 14793 | `16edd6627f875ebd94fa391a8d9d9b5b422c50b2c96d23c79fa4726ef520a354` |
| `/docs/wave2b-m1-builder-build_m1_long_selection_ipw_AT_V21.py.txt` | 50529 | `9d3cbf59198bf3c7bf21ee2b825f6c87dc5318e5bce38a5d5c8d824dbce8e4f5` |
| `/docs/wave2b-m1-builder-build_m1_long_selection_ipw_v2.py.txt` | 50529 | `9d3cbf59198bf3c7bf21ee2b825f6c87dc5318e5bce38a5d5c8d824dbce8e4f5` |
| `/docs/wave2b-m1-builder-build_m1_long_v2.py.txt` | 25399 | `d8243cdd06fb3eaf03837f722a604aa3d6cda638c18efbdad13db386a2ca5102` |
| `/docs/wave2b-m1-builder-test_m1_long_linkage.py.txt` | 11347 | `90fe2db28fa0d6d108916e2184511c12f240bde2156c0e39a709909ab6be2ae4` |
| `/docs/wave2b-m1-builder-test_m1_long_selection_ipw_strong_neg.py.txt` | 3580 | `e98de0a3ea6238b2e7213e961426dbbacf857a4165c2f2862f87afbbd56329ee` |

## Manifest

- JSON: `/docs/wave2b-m1-builder-source-manifest.json`

