Use this runbook to audit or copy legacy data/ files into the target data
layout.
The migration script is conservative. It does not delete files. It reports:
uv run python -m ops.scripts.data.migrate_data_layout --limit 40
Write a full JSON report:
uv run python -m ops.scripts.data.migrate_data_layout \
--report /tmp/victus-data-layout-migration-report.json
Only run this after reviewing the dry-run output:
uv run python -m ops.scripts.data.migrate_data_layout --apply
The command refuses to apply if conflicts exist.
data/runtime/02-pdfs/active/*.pdf -> data/artifacts/pdfs/*.pdfdata/runtime/03-pdf_processing/{paper_id}/paper.md ->data/artifacts/markdown/{paper_id}.mdlegacy_paper_bundle_needs_manual_classification: old data/papers/ bundleneeds_debug_raw_batches_jsonl_conversion: old batch JSON files that needdebug/runs/{run_id}/{paper_id}/raw_batches.jsonl.needs_debug_failed_batches_jsonl_conversion: old failed batch files thatdebug/runs/{run_id}/{paper_id}/failed_batches.jsonl.needs_lake_evidence_jsonl_promotion: old evidence JSON files that needneeds_structured_blocks_jsonl_promotion: old paper.processed.json outputstructured_blocks.jsonl.compatibility_output_not_in_new_layout: old paper.final.jsonlegacy_testing_layout: old data/testing/{paper_id} or root testing files.no_target_in_current_contract: data that has no destination in the currentuv run pytest tests/test_cli_smoke.py -q
uv run contracts validate