Reconstruction note for swda_absorption_opening_split.py
Written during the pre-submission reproducibility audit, 2026-07-20.

BACKGROUND
The script that originally generated swda_absorption_opening_split_results.csv,
.md, and .json (the SWDA rows of manuscript Table 6 and its fitted-parameter
table) could not be located anywhere in this repository or in the sibling
cbb_revision_supplementary_repo/ working folder, although the three released
output files were present and internally consistent with the manuscript.
Scripts/swda_absorption_opening_split.py is a new, from-scratch reconstruction
that follows the exact same episode-construction, splitting, and fitting
logic used elsewhere in this codebase (see task_operator_lodo_mixture_test.py,
whose split_for_conversation hash function, build_swda_lexical_events tokenizer,
and attach_exact_xcomb Stirling-table logic it reuses verbatim).

WHAT MATCHES EXACTLY
- SWDA lexical recurrence: the preregistered, manuscript-featured result.
  xcomb-minus-PY delta: released -0.016541 (absorption) / +0.054059 (opening);
  reconstructed -0.016274 (absorption) / +0.054238 (opening). Both signs and
  magnitudes match to within 2%, and the direction of every claim made about
  this stream in the manuscript (Section 3.3.1, Table 6, and the preregistered
  hypothesis test) is reproduced.
- SWDA dialogue acts, absorption side: released +0.022084, reconstructed
  +0.025206. Same sign (PY wins), consistent with the manuscript's claim.

WHAT DOES NOT MATCH EXACTLY
- Conversation universe size: the released files use 905 total conversations
  (679 train / 226 test); the reconstruction uses the full 1,155 conversations
  present in swda_raw_dialog_acts.parquet and swda_minimal_episode_events_flat.csv
  (853 train / 302 test). Whatever filter reduced the original universe to 905
  conversations (a minimum-length or other quality filter) is not recoverable
  from the files available for this audit -- it was not documented anywhere
  found, and no exact utterance-count threshold reproduces 905 from the raw
  1,155-conversation corpus (checked thresholds from 10 to 100 utterances; none
  lands near 905).
- SWDA dialogue acts, opening side: released +0.032558 (PY wins, pointwise),
  reconstructed -0.006205 (xcomb wins, pointwise). This is a SIGN FLIP, but it
  is not a contradiction: the manuscript already reports this specific cell as
  statistically unresolved, with a released bootstrap CI of [-0.0253,+0.0933]
  that crosses zero (Table 6, Limitations). A near-zero point estimate that
  flips sign under a ~20%-different conversation sample is exactly what an
  unresolved, CI-crossing-zero estimate should do, and is itself a small
  additional piece of evidence that this specific cell is fragile to sample
  composition, consistent with the manuscript's own hedge on this point.

CONCLUSION
This reconstruction does not achieve byte-identical reproduction of the
released SWDA split files, because the exact conversation-filtering criterion
used by the original (lost) script could not be recovered. It does
independently confirm every qualitative claim the manuscript makes about
these two streams, most precisely for SWDA lexical recurrence, which is the
preregistered, manuscript-featured comparison. The original released files
(swda_absorption_opening_split_results.csv/.md/.json) are kept as the
canonical source for the numbers printed in the manuscript; this
reconstruction and its *_RECONSTRUCTED.csv/.json outputs are kept alongside
them as an independent robustness check and as a now-working generator script
for anyone auditing this archive in the future.
