Milestone 8 of 8
Reload and audit the artifacts
Recompute selected facts from disk and trace one plotted point and one rejection back to the source.
The final step asks whether the saved evidence agrees with itself. Do not trust a manifest merely because it opens. Reload the outputs, recompute a few facts, and trace visible evidence back to the source.
Milestone goal
Audit the saved CSV files, summary, figure trace, manifest, and findings in a fresh process. Report disagreements without rewriting the original artifacts.
Audit interface
Implement an interface such as:
Return an audit result with these checks, and record the result in report.md:
source_rows_conserved
status_counts_agree
reason_counts_agree
summary_agrees
manifest_agrees
plot_point_traceable
rejection_traceable
Each value is a boolean. Add an evidence mapping containing the selected
source line, record ID, expected fact, and observed fact for any check that is
false. The audit result must distinguish a missing file or malformed artifact
from a clean pass; do not turn an exception into true.
Recompute the boundary facts
Reload the three CSV files and quality_summary.json. Recompute:
- total source-row conservation;
- status and reason counts;
- one per-sensor valid-reading count and mean;
- manifest filenames, schema revision, and counts.
Do not import an in-memory object from the earlier run. The point of this milestone is to test the saved boundary.
Trace two pieces of evidence
Select one valid plotted point from the saved plot-data trace and record:
plot point -> record_id -> source_line -> observation and reading
Select one rejected row and record:
rejection -> record_id -> source_line -> reason and raw fields
The source line, ID, status, and values must agree across the raw file, classified output, and trace. A PNG cannot supply this mapping by itself, so the mapping must come from the saved plot data or an equivalent report record.
Deliverables
Save in report.md:
- the two source traces;
- the clean audit result for the original artifacts;
- a short note identifying each deliberately introduced mismatch.
The audit function should return structured evidence so the checks can inspect it. A seventh output artifact is not required.
Deliberate failure checks
Use temporary copies to make one controlled change at a time:
- alter a summary count;
- remove one output row;
- change one manifest filename;
- alter a rejection reason.
The audit should report the first or named disagreement and leave the original artifacts unchanged. Restore or discard the temporary copies after each test.
Completion review
The project is complete when:
- all source rows have one visible status;
- valid, missing, and rejected files preserve source evidence;
- summary, figure, manifest, and audit agree;
- one plotted point and one rejection can be traced to the source;
- the final findings stay within the evidence from this fixture;
- you can explain which artifacts a later Project may reuse.
Passing automated checks does not prove that the report is clear or that the classification policy is suitable for every dataset. Keep those limits in the final report.
Next boundary
The next data Project may consume valid_records.csv and
dataset_manifest.json. It must restate its own split and preprocessing rules;
this project does not establish train/validation/test meaning, leakage policy,
or a general data-quality standard.
HintAudit from disk
HintA disagreement is evidence
How to check your work
The supplied fixture contains a version-matched audit fixture and expected failure records. Compare the disagreement locations and evidence fields, not only the final boolean summary.