- publish.py: _published.json now MERGE (read existing → union → sorted write), never replace — fixes the R5 --only clobber (27→1). Proven: a real no-op re-publish kept it at 27. Added --verify + post-publish drift-check vs the live depot (/api/list procity_*). - validate_manifest.py: new provenance-drift gate — every manifest procity_* GLB must be in _published.json or QA fails. Proven: simulated clobber (→1) exits 1 w/ per-file errors. - Record verified: 27-entry _published.json is byte-exact vs the live depot. - qa.sh --strict GREEN (5 gates incl. F1 harness). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
29 lines
1000 B
JSON
29 lines
1000 B
JSON
[
|
|
"procity_fit_arcade_cabinet_01.glb",
|
|
"procity_fit_bookshelf_01.glb",
|
|
"procity_fit_box_crate_01.glb",
|
|
"procity_fit_clothes_rack_01.glb",
|
|
"procity_fit_coffee_table_01.glb",
|
|
"procity_fit_counter_01.glb",
|
|
"procity_fit_counter_till_01.glb",
|
|
"procity_fit_crate_stack_01.glb",
|
|
"procity_fit_cube_shelf_wide_01.glb",
|
|
"procity_fit_drinks_fridge_01.glb",
|
|
"procity_fit_glass_case_01.glb",
|
|
"procity_fit_listening_booth_01.glb",
|
|
"procity_fit_magazine_rack_01.glb",
|
|
"procity_fit_milkshake_mixer_01.glb",
|
|
"procity_fit_record_crate_01.glb",
|
|
"procity_fit_wire_shelf_01.glb",
|
|
"procity_fit_work_table_01.glb",
|
|
"procity_street_bench_01.glb",
|
|
"procity_street_bench_modern_01.glb",
|
|
"procity_street_bench_wood_01.glb",
|
|
"procity_street_bin_01.glb",
|
|
"procity_street_bus_shelter_01.glb",
|
|
"procity_street_food_cart_01.glb",
|
|
"procity_street_longbench_01.glb",
|
|
"procity_street_novelty_record_01.glb",
|
|
"procity_street_park_bench_01.glb",
|
|
"procity_street_streetlight_01.glb"
|
|
] |