Files
digital-drosophila/tools/normal-conditioning-audit

Phase 4AR read-only progress and post-run audit

These tools are separate from the 16 registered scientific source files. They never launch a brain, change plastic delta, resample inputs, resume a partial epoch or authorize another assay. Tests use synthetic temporary data only.

While the experiment runs

progress_normal.py reads the small committed ledger records. It distinguishes completed CPU-verified epochs, completed probes, pending processes and mere result files. It is not a whole-tree integrity check or a learning gate.

normal_finalize.py check makes a real Linux process query and examines the actual terminal receipts. It intentionally refuses a live or incomplete run, even when a completion-looking file exists. An absent PID alone proves nothing. No final-audit directory or result is created by this check.

After all registered work has ended

An operator must first provision this exact, empty, separately owned directory:

/data/digital-drosophila/experiments/phase4ar-normal-conditioning-final-audit/

Then run the committed normal_finalize.py audit with the existing science environment and -B. The driver refuses uncommitted audit code, a nonempty destination, missing/failed exit evidence, a live runtime or a stopped phase. There is no automatic retry after a partial finalization.

The terminal ledger's authentic original PASS was written before audit/execution-complete.json existed. A fresh unmodified ledger audit will therefore report that exact one extra file. terminal_ledger.py retains both original reports unchanged. It accepts this boundary only if every other field, the full order, head, payload and compiler-cache identity agree, and both byte totals differ by exactly that completion file's actual length. It never deletes the file or changes a failure flag to PASS. Any other difference is rejected.

The terminal inventory includes all experiment payload, registered external inputs and all six administrative supervisor files. Startup identities were independently bound while the run was live. The driver additionally checks real process quiescence before and after analysis; file existence is not a lock or an atomic filesystem snapshot.

The frozen normal_metrics.analyze then runs in a fresh CPU process against all 33,920 task records and 3,920 probes. Its real exit and file bytes are recorded. The old frozen data are reverified in a separate integrity process. Full terminal inventory is read again after analysis. All new reports and their manifest/checksums live outside the original experiment.

normal_outcome.py checks the internally consistent fixed terminal report: all eight cells, the same-replicate conjunction, all controls and both H control source mappings. Incomplete/invalid evidence is not a scientific negative result. It cannot authenticate a caller's evidence flags itself; the driver must supply the actual verified files and process evidence.

Even NORMAL-ACQUISITION-PASS is not usable learning or a model candidate. Delayed reward, reversal and retention remain unrun and are not automatically authorized. No parameter, seed or endpoint is chosen using intermediate results.

Historical integrity checks do not rerun the five old reference trials and are never labeled as new numerical regression. Git stores code and selected small evidence, not a second copy of the bulk experiment dataset.