Propose OOXML paragraph index semantics#98
Conversation
Verify Report — PR #98Engine6-AI ensemble: 5 general-purpose Agents (Claude reviewers) + Codex (gpt-5.5 xhigh). All 5/5 findings present + non-empty on first attempt. No Process Gaps. AggregateNEEDS WORK (critical strategic finding) — Spectra structure formally valid ( Scope coverage
Cross-repo ooxml-swift#10 — paragraph index semanticsPath selection: PR picks "staged Option A" — new explicit-label API (body-child index) + deprecated legacy at:Int. Both Codex and Logic confirm this is documented; DA argues Option C (functional naming) or Option E (InsertLocation enum) should have been considered. Findings (merged + deduplicated)
Scope CheckSpec scope = body+SDT+table interactions across 3 APIs. The PR also touches che-word-mcp downstream (per Affected Code), which contradicts its own Non-Goal. Scope clarification needed. SecurityHIGH severity at finding #7 (silent data corruption window during partial migration) and #8 (OOB clamping vs throwing unspecified). Both are spec-level — implementation could ship with wrong choice and corrupt user documents silently. Process GapsNone — all 5/5 reviewers produced findings on first attempt. RecommendationDo NOT merge. PR #98 has the most severe strategic finding of the 5-PR batch: it may be the wrong solution because: (a) Three paths: Path A (recommended): Close PR #98 and close issue ooxml-swift#10 as duplicate of word-aligned-state-sync Phase 5 (ID-based operations replacement). Document the deferral chain. Path B: Revise PR #98 to (1) acknowledge word-aligned-state-sync coordination, (2) align with getParagraphs() SDT-descent semantics OR explicitly change getParagraphs() (removing Non-Goal), (3) fix factual Scenario error, (4) add 6 missing addressables (#4-#9), (5) add Option E analysis. ~70% rewrite. Path C: Merge as Phase 0 minimum (lock direction only), then file 8 follow-up issues. NOT recommended — the strategic finding #1 makes Phase 0 spec lock questionable since the lock will be removed in v1.0.0. Recommended: Path A. Close as duplicate, redirect engineering effort to word-aligned-state-sync. |
|
Blocked. 2 CRITICAL strategic findings: (1) conflicts with active word-aligned-state-sync Decision 3 (v1.0.0 removes all positional indices — these new APIs would be obsoleted within months); (2) spec accidentally creates a 4th index space instead of consolidating the 3 existing ones (Requirement 2 excludes SDT, but Document.swift descends SDT, AND Non-Goals forbid changing getParagraphs). Recommend Path A: close PR + close ooxml-swift#10 as duplicate of word-aligned Phase 5. Full report at #98 (comment). |
Closing — Superseded by word-aligned-state-sync + ooxml-edit-isomorphism-foundationPer verify report (#98 (comment)) recommendation Path A: close as duplicate of word-aligned-state-sync v1.0.0 cleanup work. The two strategic conflicts identified by verify:
The Edit-type contract pinned in #99 (ooxml-edit-isomorphism-foundation) provides the proper consolidation surface (positional addressing at OOXMLEdit lower-layer, stable IDs at WordEdit upper-layer). Phase 2 implementation tracking issue #105 will handle the runtime when ready. Issue ooxml-swift#10 (original) should be reframed to cite #99's ADR-003 + ADR-009. |
Summary
Validation
Refs PsychQuant/ooxml-swift#10