# Collection Preflight Report

FAIL Score: 10

Collection ID | 47
Generated at | 2026-06-12T15:10:19+00:00
Pass | 65
Warning | 0
Fail | 9

## Failures

- master_print_path_exists: Master print missing
- latest_zip_exists: Latest ZIP missing
- zip_size_gt_zero: ZIP size is zero or unavailable
- manifest_exists: Export manifest missing
- zip_contains_manifest_json: ZIP missing manifest.json
- zip_contains_readme: ZIP missing README.txt
- zip_contains_production_spec_html: ZIP missing production_spec.html
- zip_contains_production_spec_csv: ZIP missing production_spec.csv
- zip_contains_production_manifest_json: ZIP missing production_manifest.json

## Suggestions

- If panel prints are missing, regenerate panel files.
- If spec files are missing, rebuild the production spec sheet.
- If ZIP files are missing, rebuild ZIP export.
- If print size is too small, regenerate high-resolution print files.

## Checks

Code | Level | Message | Path | Details
--- | --- | --- | --- | ---
collection_exists | PASS | Collection exists |  | {"collection_id":47}
collection_has_title | PASS | Collection title exists |  | []
master_artwork_path_exists | PASS | Master artwork exists | /assets/pod/acceptance/product-set-source.png | {"public_path":"/assets/pod/acceptance/product-set-source.png","local_path":"/var/www/html/assets/pod/acceptance/product-set-source.png","exists":true,"size_bytes":4884,"width":360,"height":240,"mime":"image/png"}
master_print_path_exists | FAIL | Master print missing |  | {"public_path":"","local_path":"","exists":false,"size_bytes":0,"width":null,"height":null,"mime":""}
collection_has_items | PASS | Collection has items |  | {"item_count":6}
item_has_template_id | PASS | Item 184 template_id check |  | {"item_id":184,"template_id":34}
item_has_apply_mode | PASS | Item 184 apply_mode check |  | {"item_id":184,"apply_mode":"schema_multi_region"}
item_mockup_exists | PASS | Item mockup exists | /assets/pod/output/2/mockup/294_schema_mockup.png | {"item_id":184,"public_path":"/assets/pod/output/2/mockup/294_schema_mockup.png","local_path":"/var/www/html/assets/pod/output/2/mockup/294_schema_mockup.png","exists":true,"size_bytes":86826,"width":1000,"height":720,"mime":"image/png"}
item_print_exists | PASS | Item print exists | /assets/pod/output/2/print/294_schema_print.png | {"item_id":184,"public_path":"/assets/pod/output/2/print/294_schema_print.png","local_path":"/var/www/html/assets/pod/output/2/print/294_schema_print.png","exists":true,"size_bytes":106270,"width":3000,"height":2200,"mime":"image/png"}
mockup_and_print_are_not_same_role | PASS | Mockup and print paths are distinct |  | {"item_id":184}
print_file_is_png_or_supported | PASS | Print file extension is supported | /assets/pod/output/2/print/294_schema_print.png | {"item_id":184,"mime":"image/png"}
image_dimensions_readable | PASS | Image dimensions readable | /assets/pod/output/2/print/294_schema_print.png | {"item_id":184,"width":3000,"height":2200}
image_min_size | PASS | Print image size is acceptable | /assets/pod/output/2/print/294_schema_print.png | {"item_id":184,"width":3000,"height":2200}
public_url_resolvable | PASS | Public path resolves to local file | /assets/pod/output/2/print/294_schema_print.png | {"item_id":184}
item_has_template_id | PASS | Item 185 template_id check |  | {"item_id":185,"template_id":35}
item_has_apply_mode | PASS | Item 185 apply_mode check |  | {"item_id":185,"apply_mode":"schema_multi_region"}
item_mockup_exists | PASS | Item mockup exists | /assets/pod/output/2/mockup/295_schema_mockup.png | {"item_id":185,"public_path":"/assets/pod/output/2/mockup/295_schema_mockup.png","local_path":"/var/www/html/assets/pod/output/2/mockup/295_schema_mockup.png","exists":true,"size_bytes":88894,"width":1000,"height":760,"mime":"image/png"}
item_print_exists | PASS | Item print exists | /assets/pod/output/2/print/295_schema_print.png | {"item_id":185,"public_path":"/assets/pod/output/2/print/295_schema_print.png","local_path":"/var/www/html/assets/pod/output/2/print/295_schema_print.png","exists":true,"size_bytes":106264,"width":3000,"height":2200,"mime":"image/png"}
mockup_and_print_are_not_same_role | PASS | Mockup and print paths are distinct |  | {"item_id":185}
print_file_is_png_or_supported | PASS | Print file extension is supported | /assets/pod/output/2/print/295_schema_print.png | {"item_id":185,"mime":"image/png"}
image_dimensions_readable | PASS | Image dimensions readable | /assets/pod/output/2/print/295_schema_print.png | {"item_id":185,"width":3000,"height":2200}
image_min_size | PASS | Print image size is acceptable | /assets/pod/output/2/print/295_schema_print.png | {"item_id":185,"width":3000,"height":2200}
public_url_resolvable | PASS | Public path resolves to local file | /assets/pod/output/2/print/295_schema_print.png | {"item_id":185}
item_has_template_id | PASS | Item 186 template_id check |  | {"item_id":186,"template_id":36}
item_has_apply_mode | PASS | Item 186 apply_mode check |  | {"item_id":186,"apply_mode":"schema_multi_region"}
item_mockup_exists | PASS | Item mockup exists | /assets/pod/output/2/mockup/296_schema_mockup.png | {"item_id":186,"public_path":"/assets/pod/output/2/mockup/296_schema_mockup.png","local_path":"/var/www/html/assets/pod/output/2/mockup/296_schema_mockup.png","exists":true,"size_bytes":84285,"width":1000,"height":860,"mime":"image/png"}
item_print_exists | PASS | Item print exists | /assets/pod/output/2/print/296_schema_print.png | {"item_id":186,"public_path":"/assets/pod/output/2/print/296_schema_print.png","local_path":"/var/www/html/assets/pod/output/2/print/296_schema_print.png","exists":true,"size_bytes":211829,"width":3000,"height":2200,"mime":"image/png"}
mockup_and_print_are_not_same_role | PASS | Mockup and print paths are distinct |  | {"item_id":186}
print_file_is_png_or_supported | PASS | Print file extension is supported | /assets/pod/output/2/print/296_schema_print.png | {"item_id":186,"mime":"image/png"}
image_dimensions_readable | PASS | Image dimensions readable | /assets/pod/output/2/print/296_schema_print.png | {"item_id":186,"width":3000,"height":2200}
image_min_size | PASS | Print image size is acceptable | /assets/pod/output/2/print/296_schema_print.png | {"item_id":186,"width":3000,"height":2200}
public_url_resolvable | PASS | Public path resolves to local file | /assets/pod/output/2/print/296_schema_print.png | {"item_id":186}
item_has_template_id | PASS | Item 187 template_id check |  | {"item_id":187,"template_id":37}
item_has_apply_mode | PASS | Item 187 apply_mode check |  | {"item_id":187,"apply_mode":"schema_multi_region"}
item_mockup_exists | PASS | Item mockup exists | /assets/pod/output/2/mockup/297_schema_mockup.png | {"item_id":187,"public_path":"/assets/pod/output/2/mockup/297_schema_mockup.png","local_path":"/var/www/html/assets/pod/output/2/mockup/297_schema_mockup.png","exists":true,"size_bytes":88218,"width":1000,"height":850,"mime":"image/png"}
item_print_exists | PASS | Item print exists | /assets/pod/output/2/print/297_schema_print.png | {"item_id":187,"public_path":"/assets/pod/output/2/print/297_schema_print.png","local_path":"/var/www/html/assets/pod/output/2/print/297_schema_print.png","exists":true,"size_bytes":211933,"width":3000,"height":2200,"mime":"image/png"}
mockup_and_print_are_not_same_role | PASS | Mockup and print paths are distinct |  | {"item_id":187}
print_file_is_png_or_supported | PASS | Print file extension is supported | /assets/pod/output/2/print/297_schema_print.png | {"item_id":187,"mime":"image/png"}
image_dimensions_readable | PASS | Image dimensions readable | /assets/pod/output/2/print/297_schema_print.png | {"item_id":187,"width":3000,"height":2200}
image_min_size | PASS | Print image size is acceptable | /assets/pod/output/2/print/297_schema_print.png | {"item_id":187,"width":3000,"height":2200}
public_url_resolvable | PASS | Public path resolves to local file | /assets/pod/output/2/print/297_schema_print.png | {"item_id":187}
item_has_template_id | PASS | Item 188 template_id check |  | {"item_id":188,"template_id":38}
item_has_apply_mode | PASS | Item 188 apply_mode check |  | {"item_id":188,"apply_mode":"schema_multi_region"}
item_mockup_exists | PASS | Item mockup exists | /assets/pod/output/2/mockup/298_schema_mockup.png | {"item_id":188,"public_path":"/assets/pod/output/2/mockup/298_schema_mockup.png","local_path":"/var/www/html/assets/pod/output/2/mockup/298_schema_mockup.png","exists":true,"size_bytes":32415,"width":900,"height":900,"mime":"image/png"}
item_print_exists | PASS | Item print exists | /assets/pod/output/2/print/298_schema_print.png | {"item_id":188,"public_path":"/assets/pod/output/2/print/298_schema_print.png","local_path":"/var/www/html/assets/pod/output/2/print/298_schema_print.png","exists":true,"size_bytes":106264,"width":3000,"height":2200,"mime":"image/png"}
mockup_and_print_are_not_same_role | PASS | Mockup and print paths are distinct |  | {"item_id":188}
print_file_is_png_or_supported | PASS | Print file extension is supported | /assets/pod/output/2/print/298_schema_print.png | {"item_id":188,"mime":"image/png"}
image_dimensions_readable | PASS | Image dimensions readable | /assets/pod/output/2/print/298_schema_print.png | {"item_id":188,"width":3000,"height":2200}
image_min_size | PASS | Print image size is acceptable | /assets/pod/output/2/print/298_schema_print.png | {"item_id":188,"width":3000,"height":2200}
public_url_resolvable | PASS | Public path resolves to local file | /assets/pod/output/2/print/298_schema_print.png | {"item_id":188}
item_has_template_id | PASS | Item 189 template_id check |  | {"item_id":189,"template_id":39}
item_has_apply_mode | PASS | Item 189 apply_mode check |  | {"item_id":189,"apply_mode":"schema_multi_region"}
item_mockup_exists | PASS | Item mockup exists | /assets/pod/output/2/mockup/299_schema_mockup.png | {"item_id":189,"public_path":"/assets/pod/output/2/mockup/299_schema_mockup.png","local_path":"/var/www/html/assets/pod/output/2/mockup/299_schema_mockup.png","exists":true,"size_bytes":37035,"width":1100,"height":620,"mime":"image/png"}
item_print_exists | PASS | Item print exists | /assets/pod/output/2/print/299_schema_print.png | {"item_id":189,"public_path":"/assets/pod/output/2/print/299_schema_print.png","local_path":"/var/www/html/assets/pod/output/2/print/299_schema_print.png","exists":true,"size_bytes":120229,"width":3000,"height":2200,"mime":"image/png"}
mockup_and_print_are_not_same_role | PASS | Mockup and print paths are distinct |  | {"item_id":189}
print_file_is_png_or_supported | PASS | Print file extension is supported | /assets/pod/output/2/print/299_schema_print.png | {"item_id":189,"mime":"image/png"}
image_dimensions_readable | PASS | Image dimensions readable | /assets/pod/output/2/print/299_schema_print.png | {"item_id":189,"width":3000,"height":2200}
image_min_size | PASS | Print image size is acceptable | /assets/pod/output/2/print/299_schema_print.png | {"item_id":189,"width":3000,"height":2200}
public_url_resolvable | PASS | Public path resolves to local file | /assets/pod/output/2/print/299_schema_print.png | {"item_id":189}
collection_items_completed | PASS | All collection items completed |  | []
latest_zip_exists | FAIL | Latest ZIP missing |  | []
zip_size_gt_zero | FAIL | ZIP size is zero or unavailable |  | {"size_bytes":0}
manifest_exists | FAIL | Export manifest missing |  | {"public_path":"","local_path":"","exists":false,"size_bytes":0,"width":null,"height":null,"mime":""}
zip_contains_manifest_json | FAIL | ZIP missing manifest.json |  | {"entry":"manifest.json"}
zip_contains_readme | FAIL | ZIP missing README.txt |  | {"entry":"README.txt"}
zip_contains_production_spec_html | FAIL | ZIP missing production_spec.html |  | {"entry":"production_spec.html"}
zip_contains_production_spec_csv | FAIL | ZIP missing production_spec.csv |  | {"entry":"production_spec.csv"}
zip_contains_production_manifest_json | FAIL | ZIP missing production_manifest.json |  | {"entry":"production_manifest.json"}
zip_contains_panel_prints_if_multi_panel | PASS | No multi-panel item requires panel ZIP entries |  | []
production_spec_html_exists | PASS | Production spec HTML exists | /assets/pod/collections/47/specs/production_spec.html | {"public_path":"/assets/pod/collections/47/specs/production_spec.html","local_path":"/var/www/html/assets/pod/collections/47/specs/production_spec.html","exists":true,"size_bytes":4749,"width":null,"height":null,"mime":"text/html"}
production_spec_csv_exists | PASS | Production spec CSV exists | /assets/pod/collections/47/specs/production_spec.csv | {"public_path":"/assets/pod/collections/47/specs/production_spec.csv","local_path":"/var/www/html/assets/pod/collections/47/specs/production_spec.csv","exists":true,"size_bytes":3079,"width":null,"height":null,"mime":"text/csv"}
production_manifest_json_exists | PASS | Production manifest JSON exists | /assets/pod/collections/47/specs/production_manifest.json | {"public_path":"/assets/pod/collections/47/specs/production_manifest.json","local_path":"/var/www/html/assets/pod/collections/47/specs/production_manifest.json","exists":true,"size_bytes":10102,"width":null,"height":null,"mime":"application/json"}
production_manifest_json_parseable | PASS | Production manifest JSON parseable | /assets/pod/collections/47/specs/production_manifest.json | []
csv_has_rows | PASS | CSV has rows | /assets/pod/collections/47/specs/production_spec.csv | {"rows":14}