CORRECTED LEGACY COMPATIBILITY WORKBOOK AND REPORT — 6 OCTOBER 2026

This folder reruns the original compatibility analysis on the original dataset
with only the four authorized audit repairs. It is separate from the diffusion
and PCA calculations. In particular, the workbook's Distances sheet contains
fixed-word-variant disagreement distances, not diffusion distances.

DELIVERABLES
outputs/qiraat_compatibility_20261006/Qiraat_Compatibility_Corrected_20261006.xlsx
report/Qiraat_Study_Report.html (self-contained HTML with embedded figures)
report/report_summary.json
results/ (recomputed analysis, bootstrap, sensitivity and ancestral-state exports)
data/coded_matrix.csv (corrected exported component matrix)

CHANGES TO THE INPUT
Three final-waw connecting-two-sukun components moved from their individual
farsh blocks to usul:connecting_two_sukuns:
  nq_t2_s004_f00707_c1; nq_t2_s017_f00695_c1; nq_t2_s073_f00002_c1.
One conditional-target component was removed:
  nq_t2_s036_f00147_c1 (36:35, generic pronoun-ha sila).
Its coding conflated an absent pronoun with a present short pronoun for seven
transmissions. No remaining cell states were changed. No recovered September-30
components, alternate mode-split coding or new weighting scheme were added.

The corrected full matrix has 33,305 components, 625 blocks, 1,093 farsh
components in 583 farsh blocks, and 15,214 fixed components. Of 33,602 source
records, 29,349 contribute retained components and 4,253 do not. These are
source-record/component counts, not counts of complete Quran words or fully
phonetic twenty-text alignments.

CANONICAL INPUT
data/matrix.json is the decompressed corrected matrix also supplied as
../calculations/matrix_corrected.json.gz in the encompassing revision bundle.
Uncompressed matrix SHA256:
01e3fbc5d477d5be45160570d81fa46eeef016bd85ddde2304da9eaa3bce78d1

REQUIRED INPUTS AND CODE (ALL INCLUDED IN THIS FOLDER)
Numerical analysis: data/matrix.json; analysis/methods.py; analysis/run_study.py.
Ancestral exports: analysis/export_ancestral_states.py and recomputed results.
Report: analysis/make_report.py; data/coverage.json;
  sources/nquran/extraction_audit.json; audit/independent_review_checks.json;
  audit/benchmark_comparison.json; recomputed results.
Spreadsheet: analysis/build_workbook.mjs; report/workbook_payload.json;
  data/original_workbook_structure.json; data/Qiraat_Compatibility_original.xlsx.
Verification: audit/final_result_review.py; verification/verify_workbook.py;
  the inputs and outputs above.

The original XLSX is deliberately retained as a BASELINE FORMATTING TEMPLATE,
not a corrected result. The builder replaces its data with the newly computed
payload while preserving the original five-sheet presentation. Its SHA256 is
d3eca536a7b618b32a784f9ce959d05c74b07a0bbb61e4573b8662c8561ecc4f.
data/coverage_original.json is a labelled baseline for the four-repair count
update. The unchanged benchmark and method-check JSONs document prior source
and algorithm checks; they are not presented as a new full source crawl.
The separate original-source.zip preserves the complete original extraction and
its code for source provenance, with only public-release metadata cleanup.
Extract it into source_archive/ beside calculations/, figures/ and compatibility/.

REPRODUCTION
From this compatibility directory, use Python 3 with numpy and matplotlib:

python3 analysis/run_study.py data/matrix.json --output-dir results --bootstrap 200 --loo-bootstrap 100 --permutations 99 --seed 20260920
python3 analysis/export_ancestral_states.py
python3 analysis/make_report.py
python3 audit/final_result_review.py

The run completed in 309.393 seconds in the supplied runtime. Timing and
input filenames in the run manifest describe the supplied input.
The analysis problem, seed, resampling settings and original algorithms are
unchanged. All seven scenarios completed; the anchor remains farsh_fixed_block.
The report script derives counts, intervals and captions from corrected outputs.
Public-release attribution is the approved marker mhmdn.

Spreadsheet generation uses Node and @oai/artifact-tool, provided by the Codex
primary runtime. It does not use openpyxl to author the workbook. When that
runtime is available, copy analysis/build_workbook.mjs into a temporary directory
with a node_modules link to $CODEX_PRIMARY_RUNTIME_NODE_MODULES, then run:

"$CODEX_PRIMARY_RUNTIME_NODE" /path/to/temp/build_workbook.mjs /absolute/path/to/compatibility

The builder imports the original workbook, writes the corrected payload,
recalculates formulas, tests a formula dependency, restores the tested cell,
exports the final XLSX and renders five review previews. Outside that runtime,
the same builder requires a compatible installation of @oai/artifact-tool.
The corrected payload and scientific calculations are independently available
without this rendering dependency.

Finally, with openpyxl installed for READ-ONLY verification:
python3 verification/verify_workbook.py

Tested versions: numpy 2.3.5, matplotlib 3.10.8, openpyxl 3.1.5. Python scripts
also use standard-library modules. No network or live source retrieval is
needed to reproduce the included corrected results from this matrix.

VERIFICATION AND INTERPRETATION
verification/workbook_verification.json records all checks passing: 260 main
summary cells, 5,450 sensitivity cells, 27,325 word-variant cells, 420 distance
cells, 456 coverage input cells, and 114 formulas with their cached values.
All five sheet names/order, table styles, frozen panes and distance conditional
formatting were retained. No spreadsheet formula errors were found. The saved
workbook was read back after export; all five before/after previews were viewed.
audit/final_result_review.json independently checks the numerical results,
including 400 distance entries, rootwise arithmetic, exhaustive tree examples,
200 bootstrap replicates, 100 leave-one-out refits, 99 controls and the exports.

The corrected Hafs anchor compatibility interval is
0.5441395082904518 to 0.8419382504288164 (54.41% to 84.19%). These are conditional
compatibility bounds under the specified tree/root and coding assumptions;
they are not a probability of originality or a historical confidence interval.

RELEASE PACKAGING
Keep the original XLSX template if full spreadsheet reproduction is promised.
Exclude __pycache__, *.partial, *.inspect.ndjson and optional verification PNG
previews from a compact release. The previews and logs are inspection aids,
not computational inputs. All files under results/ and the delivered corrected
workbook/report are newly computed; labelled baseline inputs are the exceptions.
