ci / vet-and-test (pull_request) Successful in 58s
Why: A second broken pptx passed the shipped gate despite being unopenable in Office: parts were all present but presentation.xml and the master used an undeclared xmlns:r prefix, sldIdLst listed 12 slides while the rels file wired only one, and [Content_Types].xml overrode only slide1. The prior part-existence checks cannot see any of these; the generating instance also predated the first gate deployment. Evidence: The upgraded gate rejects the real broken file (undeclared xmlns:r) and 16 synthetic break cases spanning both incident classes, while passing the manually repaired package and kit output; python round-trip on the repaired deck extracts all 12 slides. Full-suite receipt follows on the task card. Impact: register_artifact now enforces strict namespace declarations across every XML part, bidirectional consistency between id-lists and relationships (presentation and masters), and per-part content-type overrides. Error messages name the broken reference. run_python prompt v3 adds that failed kit attempts must retry through the kit, never fall back to hand assembly. Refs: Dev task feature/pptx-gate-reference-integrity