chain: feat(architecture): radical translation OOXML library — Word↔Swift edit-isomorphism - #106
Merged
kiki830621 merged 4 commits intoMay 25, 2026
Conversation
Pins the Word↔Swift edit-isomorphism contract as the macdoc OOXML toolchain's core architectural contract via: - New capability spec 'ooxml-edit-algebra' (8 Requirements) - design.md with 9 ADRs (canonical-identity, Edit-as-first-class, two-layer algebra, module split, naming, Word UI ground truth, conformance suite, lens migration path deferred, downstream rerouting) - tasks.md with hybrid scope: Edit type elevation + property-based functor tests on 3-5 representative OOXMLEdit cases only; downstream migrations explicitly deferred to follow-up Spectra changes Cross-references active 'word-aligned-state-sync' change in design.md Relationship section. Coordinates downstream PRs #94/#95/#96/#97/#98 that 6-AI verify identified as blocked on spec ambiguity — they will be reframed as front-ends to this foundation per ADR-009. Refs #99
…-§10) Shipped (apply phase, 11/35 tasks): - §8.1 Cross-reference to ooxml-edit-isomorphism-foundation in word-aligned-state-sync/design.md Relationship section - §8.2 Follow-up issue #101 (word-builder-swift lens migration) - §8.3 Follow-up issue PsychQuant/che-word-mcp#162 (MCP boundary refactor) - §8.4 Follow-up issue #102 (PR #94 dxedit re-frame) - §8.5 Follow-up issue #103 (PR #96 R-wordbuilder re-frame) - §8.6 Follow-up issue #104 (PR #95 pptx-mcp re-frame) - §9.1 .github/PULL_REQUEST_TEMPLATE.md with CD-diagram requirement - §9.2 EditAlgebra/README.md documenting CD discipline + worked examples - §10.1 spectra validate green - §10.3 docs/structural-editing-paradigm.md cross-reference - §10.4 docs/lossless-conversion.md cross-reference Deferred to Phase 2 Spectra change (§1-§7 + §10.2 Swift implementation, 23/35 tasks): Edit protocol code, OOXMLEdit/WordEdit enums, Document.apply API, property-based functor tests. Deferral rationale documented in tasks.md ASSUMPTION block; new follow-up Spectra change 'ooxml-edit-algebra-implementation' opens after this foundation archives. Decision-pinning (this change) + runtime implementation (Phase 2) serve different review modes and benefit from being separate changes. Refs #99
The Phase 2 implementation Spectra change can copy this README into packages/ooxml-swift/Sources/OOXMLSwift/EditAlgebra/ when the actual Swift code lands. Keeping it in docs/ for this change since the package directory is not tracked in the monorepo. Refs #99
…proposal Hybrid scope, tasks §9.2 path Addresses verify-cycle findings (#99 verify report): P1.1 — design.md ADR-002: add #### Worked Examples subsection with 4 canonical CD diagrams (insertParagraph body-level, setBold run-level, insertHyperlink dual-part atomic, applyBold range-crossing). Resolves 4 dangling cross-references from PR template / EditAlgebra README / tasks.md §3.1/§3.2/§4.2/§9.2. P1.2 — design.md ADR-005 through ADR-009: add Alternatives Considered sections so all 9 ADRs uniformly carry decision/alternatives/rationale. P1.3 — proposal.md: reflect Hybrid scope explicitly. Apply scope is decision-pinning + mechanical artifacts ONLY; Swift implementation (Edit type + OOXMLEdit + WordEdit + property tests) deferred to Phase 2 Spectra change ooxml-edit-algebra-implementation (#105). Impact list marks Swift files as Deferred. P1.4 — tasks.md §9.2: correct README location (shipped at docs/edit-algebra-cd-discipline.md, NOT packages/...EditAlgebra/README.md; packages/ is gitignored). Phase 2 change relocates when actual Swift code lands. P1.5 — Open Phase 2 implementation tracking issue #105 ('Spectra: ooxml-edit-algebra-implementation') so deferred Swift work has visible tracker (was previously only mentioned in ASSUMPTION block). Not fixing (DA flagged as out-of-scope for this change): - word-aligned-state-sync Decision 3 reframe: design.md Relationship section documents the reframe intent for v1.0.0 archival window; unilaterally rewriting their normative Decision 3 here would violate cross-change author consent (per DA Angle 4) Refs #99
This was referenced May 25, 2026
kiki830621
added a commit
that referenced
this pull request
Aug 20, 2026
Shell 4.0.4 → 4.0.5, binary_version 4.0.2 → 4.0.3. The shell has to move even though nothing in it changed functionally: `plugin update` keys off the shell version, so a binary_version bump alone leaves every installed copy on 4.0.2. What 4.0.3 carries, stated so the version number is not read as a promise: it picks up ooxml-swift 3.3.0 (issue #106's partial fix) and changes no behaviour on any tool this plugin exposes. The upstream defect was in the typed view, not the bytes; the only path here that reaches the fixed code is `execute_script`, and that returns `written` / `verified` / `broken_parts` without ever reading `body.children`. Shipping it now is about not bundling an untested dependency jump with the next real fix. Two documentation defects found by the plugin-update freshness pass: - The README's version section had two adjacent stale lines — shell pinned at v3.20.2 (actually 4.0.4) and binary at v3.20.0 with "242 tools" (actually 4.0.2 and 245). The second also contradicted line 3 of the same file, which says 245. Fixed by removing the hardcoded versions rather than refreshing them: same reasoning as b89790c, where a pinned upstream version had gone stale three times and updating it again would only have scheduled a fourth. - The plugin CHANGELOG stopped at 3.20.2 (2026-07-02), missing the entire 4.0.x line. Backfilled 4.0.0 through 4.0.5 from the bump commits, which were detailed enough that what is reconstructed is the prose, not the facts — labelled as reconstructed at the top of the section. 3.21.0, 3.21.1, 3.22.0 and 3.23.0 are deliberately left blank with a note. Those bumps left only a one-line subject each, and expanding a subject into a paragraph produces something that reads like a record while being my guess. Also records a gap in the freshness check itself: its six signals caught the binary line (via tool-count comparison) but not the shell-version line, because no signal compares that string. Refs PsychQuant/ooxml-swift#106
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #99
Summary
Cluster of 1 root issue solved as one chain (root #99) via
/idd-all-chain(v2.55+).Architectural foundation: pins Word↔Swift edit-isomorphism (fully faithful functor) as the macdoc OOXML toolchain's core architectural contract via:
ooxml-edit-algebra(8 normative Requirements with Scenarios + SBE Examples)word-aligned-state-syncSpectra change.github/PULL_REQUEST_TEMPLATE.mdrequiring CD diagram forEditAlgebra/PRsdocs/edit-algebra-cd-discipline.mddocs/lossless-conversion.md,docs/structural-editing-paradigm.md)Apply scope is Hybrid: decision-pinning + 11 mechanical apply tasks (§8 follow-up issue creation, §9 PR template + README, §10 docs cross-refs + spectra validate). Swift implementation (23 tasks: Edit protocol, OOXMLEdit/WordEdit enums, Document.apply, property tests, CD diagrams per Edit case) is DEFERRED to Phase 2 Spectra change
ooxml-edit-algebra-implementation(tracking issue #105) for proper TDD + audit discipline + human review at API surface decisions.Cluster overview
Per-issue details
#99 — feat(architecture): radical translation OOXML library — Word↔Swift edit-isomorphism (fully faithful functor) as core contract
See issue #99 for diagnose / verify / commit history.
Diagnosis: #99 (comment)
Verify report: #99 (comment) (6-AI ensemble PASS after P1 inline fixes)
Follow-up issues opened during apply (§8 of tasks.md):
Commits (4):
Review status
🤖 Generated by
/idd-all-chain. Do NOT add GitHub close trailers (Closes/Fixes/Resolves) — IDD discipline requires manual/idd-close #99after merge to enforce checklist gate + per-issue closing summary.