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
weichen
merged commit 9793a778be into main2026-10-15 02:33:10 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
第二起坏 PPTX 实测穿透已合入的登记门禁:部件齐全但引用断裂(presentation/母版漏声明 xmlns:r、sldIdLst 12 页只配 1 条关系、[Content_Types] 只 Override slide1)——原「部件存在性」检查对此三缺陷全盲。生成侧实证为后台任务溢出后 Agent 回退手拼,且生成实例未部署第一版门禁。
What
ooxmlgate.go升级为五维校验:容器合法、必备部件、引用链完整(原有)、全包严格命名空间(声明集合法,兼容 urn: 等 scheme 与任意位置声明)、sldIdLst/sldMasterIdLst/sldLayoutIdLst 与关系表双向一致(断链/多余/缺失/重复都点名)、[Content_Types] 对全部结构部件的 Override 覆盖与类型精确匹配。Evidence
Impact
Refs