@beyondwork/docx-react-component 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-32W6IVQE.js +7725 -0
- package/dist/chunk-32W6IVQE.js.map +1 -0
- package/dist/index.cjs +23722 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +16011 -0
- package/dist/index.js.map +1 -0
- package/dist/public-types-DqCURAz8.d.cts +1152 -0
- package/dist/public-types-DqCURAz8.d.ts +1152 -0
- package/dist/tailwind.cjs +8295 -0
- package/dist/tailwind.cjs.map +1 -0
- package/dist/tailwind.d.cts +323 -0
- package/dist/tailwind.d.ts +323 -0
- package/dist/tailwind.js +553 -0
- package/dist/tailwind.js.map +1 -0
- package/package.json +52 -31
- package/.codex/config.toml +0 -5
- package/.corepack/v1/pnpm/10.30.3/.corepack +0 -1
- package/.corepack/v1/pnpm/10.30.3/LICENSE +0 -22
- package/.corepack/v1/pnpm/10.30.3/README.md +0 -240
- package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +0 -6
- package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +0 -5
- package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +0 -195400
- package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +0 -2
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +0 -31
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +0 -22
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +0 -193
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +0 -27
- package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/worker.js +0 -10119
- package/.corepack/v1/pnpm/10.30.3/package.json +0 -192
- package/.cursor/mcp.json +0 -7
- package/.github/workflows/ci.yml +0 -35
- package/.mcp.json +0 -7
- package/.openclaw/workspace-state.json +0 -4
- package/.pnpmrc.json +0 -1
- package/.wave-launch.sh +0 -7
- package/.workspace-marker +0 -1
- package/AGENTS.md +0 -78
- package/CHANGELOG.md +0 -177
- package/DESIGN.md +0 -929
- package/HEARTBEAT.md +0 -7
- package/IDENTITY.md +0 -23
- package/SOUL.md +0 -36
- package/TOOLS.md +0 -40
- package/USER.md +0 -17
- package/docs/README.md +0 -107
- package/docs/agents/wave-cont-eval-role.md +0 -36
- package/docs/agents/wave-cont-qa-role.md +0 -52
- package/docs/agents/wave-deploy-verifier-role.md +0 -34
- package/docs/agents/wave-design-role.md +0 -47
- package/docs/agents/wave-documentation-role.md +0 -34
- package/docs/agents/wave-infra-role.md +0 -34
- package/docs/agents/wave-integration-role.md +0 -37
- package/docs/agents/wave-launcher-role.md +0 -41
- package/docs/agents/wave-orchestrator-role.md +0 -52
- package/docs/agents/wave-planner-role.md +0 -39
- package/docs/agents/wave-security-role.md +0 -40
- package/docs/architecture/docx/README.md +0 -10
- package/docs/architecture/future/README.md +0 -8
- package/docs/architecture/ooxml-upgrade-analysis.md +0 -134
- package/docs/architecture/platform/shared-openxml-editor-platform.md +0 -153
- package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +0 -187
- package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +0 -150
- package/docs/comment-redline-overview.md +0 -350
- package/docs/concepts/context7-vs-skills.md +0 -118
- package/docs/concepts/operating-modes.md +0 -91
- package/docs/concepts/runtime-agnostic-orchestration.md +0 -111
- package/docs/concepts/what-is-a-wave.md +0 -217
- package/docs/context7/bundles.json +0 -222
- package/docs/context7/planner-agent/README.md +0 -28
- package/docs/context7/planner-agent/manifest.json +0 -83
- package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +0 -3283
- package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +0 -1699
- package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +0 -2251
- package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +0 -1729
- package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +0 -3747
- package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +0 -1675
- package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +0 -1173
- package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +0 -5211
- package/docs/context7/planner-agent/topics/planning-and-orchestration.md +0 -24
- package/docs/evals/arm-templates/README.md +0 -13
- package/docs/evals/arm-templates/full-wave.json +0 -15
- package/docs/evals/arm-templates/single-agent.json +0 -15
- package/docs/evals/benchmark-catalog.json +0 -670
- package/docs/evals/cases/README.md +0 -47
- package/docs/evals/cases/wave-blackboard-inbox-targeting.json +0 -73
- package/docs/evals/cases/wave-contradiction-conflict.json +0 -104
- package/docs/evals/cases/wave-expert-routing-preservation.json +0 -69
- package/docs/evals/cases/wave-hidden-profile-private-evidence.json +0 -81
- package/docs/evals/cases/wave-premature-closure-guard.json +0 -71
- package/docs/evals/cases/wave-silo-cross-agent-state.json +0 -77
- package/docs/evals/cases/wave-simultaneous-lockstep.json +0 -92
- package/docs/evals/external-benchmarks.json +0 -85
- package/docs/evals/external-command-config.sample.json +0 -9
- package/docs/evals/external-command-config.swe-bench-pro.json +0 -8
- package/docs/evals/pilots/README.md +0 -47
- package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +0 -64
- package/docs/evals/pilots/swe-bench-pro-public-pilot.json +0 -111
- package/docs/evals/wave-benchmark-program.md +0 -302
- package/docs/guides/planner.md +0 -220
- package/docs/guides/recommendations-0.8.9.md +0 -133
- package/docs/guides/signal-wrappers.md +0 -165
- package/docs/guides/terminal-surfaces.md +0 -96
- package/docs/image copy.png +0 -0
- package/docs/image.png +0 -0
- package/docs/images/image.png +0 -0
- package/docs/legal-feedback-architecture.md +0 -498
- package/docs/plans/component-cutover-matrix.json +0 -1072
- package/docs/plans/component-cutover-matrix.md +0 -307
- package/docs/plans/context7-wave-orchestrator.md +0 -155
- package/docs/plans/current-state.md +0 -198
- package/docs/plans/docx/README.md +0 -9
- package/docs/plans/examples/wave-benchmark-improvement.md +0 -108
- package/docs/plans/examples/wave-example-live-proof.md +0 -435
- package/docs/plans/master-plan.md +0 -224
- package/docs/plans/migration.md +0 -538
- package/docs/plans/operations/README.md +0 -7
- package/docs/plans/operations/wave-10-word-certification.md +0 -87
- package/docs/plans/operations/wave-8-railway-staging.md +0 -153
- package/docs/plans/operations/wave-9-manual-certification.md +0 -73
- package/docs/plans/platform/README.md +0 -9
- package/docs/plans/reference/legal-checklist-coverage.md +0 -258
- package/docs/plans/wave-orchestrator.md +0 -423
- package/docs/plans/waves/README.md +0 -75
- package/docs/plans/waves/completed/wave-0.md +0 -195
- package/docs/plans/waves/completed/wave-1.md +0 -379
- package/docs/plans/waves/completed/wave-10.md +0 -670
- package/docs/plans/waves/completed/wave-11.md +0 -335
- package/docs/plans/waves/completed/wave-12.md +0 -417
- package/docs/plans/waves/completed/wave-13.md +0 -316
- package/docs/plans/waves/completed/wave-14.md +0 -319
- package/docs/plans/waves/completed/wave-15.md +0 -321
- package/docs/plans/waves/completed/wave-16.md +0 -316
- package/docs/plans/waves/completed/wave-17.md +0 -331
- package/docs/plans/waves/completed/wave-18.md +0 -328
- package/docs/plans/waves/completed/wave-2.md +0 -438
- package/docs/plans/waves/completed/wave-3.md +0 -435
- package/docs/plans/waves/completed/wave-4.md +0 -430
- package/docs/plans/waves/completed/wave-5.md +0 -430
- package/docs/plans/waves/completed/wave-6.md +0 -430
- package/docs/plans/waves/completed/wave-7.md +0 -526
- package/docs/plans/waves/completed/wave-8.md +0 -596
- package/docs/plans/waves/completed/wave-9.md +0 -552
- package/docs/plans/waves/deferred/README.md +0 -14
- package/docs/plans/waves/deferred/encrypted-intake-contracts.md +0 -282
- package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +0 -308
- package/docs/plans/waves/deferred/wave-encrypted-intake.md +0 -451
- package/docs/plans/waves/design/README.md +0 -5
- package/docs/plans/waves/design/wave-1-a1.md +0 -309
- package/docs/plans/waves/reviews/README.md +0 -5
- package/docs/plans/waves/reviews/wave-0-cont-qa.md +0 -151
- package/docs/plans/waves/reviews/wave-1-cont-qa.md +0 -46
- package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +0 -51
- package/docs/plans/waves/reviews/wave-10-cont-qa.md +0 -24
- package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +0 -46
- package/docs/plans/waves/reviews/wave-10-performance-signoff.md +0 -55
- package/docs/plans/waves/reviews/wave-10-regression-proof.md +0 -23
- package/docs/plans/waves/reviews/wave-10-release-audit.md +0 -31
- package/docs/plans/waves/reviews/wave-10-service-proof.md +0 -83
- package/docs/plans/waves/reviews/wave-10-word-certification.md +0 -31
- package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +0 -277
- package/docs/plans/waves/reviews/wave-18-cont-qa.md +0 -255
- package/docs/plans/waves/reviews/wave-18-parity-proof.md +0 -271
- package/docs/plans/waves/reviews/wave-19-cont-qa.md +0 -59
- package/docs/plans/waves/reviews/wave-2-cont-qa.md +0 -72
- package/docs/plans/waves/reviews/wave-20-cont-qa.md +0 -60
- package/docs/plans/waves/reviews/wave-25-cont-qa.md +0 -48
- package/docs/plans/waves/reviews/wave-28-cont-qa.md +0 -46
- package/docs/plans/waves/reviews/wave-29-cont-qa.md +0 -53
- package/docs/plans/waves/reviews/wave-3-cont-qa.md +0 -53
- package/docs/plans/waves/reviews/wave-3-core-proof.md +0 -77
- package/docs/plans/waves/reviews/wave-3-validator-proof.md +0 -73
- package/docs/plans/waves/reviews/wave-32-cont-qa.md +0 -43
- package/docs/plans/waves/reviews/wave-33-cont-qa.md +0 -526
- package/docs/plans/waves/reviews/wave-34-cont-qa.md +0 -100
- package/docs/plans/waves/reviews/wave-35-cont-qa.md +0 -145
- package/docs/plans/waves/reviews/wave-4-cont-qa.md +0 -47
- package/docs/plans/waves/reviews/wave-4-structure-proof.md +0 -69
- package/docs/plans/waves/reviews/wave-5-comment-proof.md +0 -158
- package/docs/plans/waves/reviews/wave-5-cont-qa.md +0 -68
- package/docs/plans/waves/reviews/wave-6-cont-qa.md +0 -416
- package/docs/plans/waves/reviews/wave-6-redline-proof.md +0 -130
- package/docs/plans/waves/reviews/wave-7-cont-qa.md +0 -82
- package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +0 -85
- package/docs/plans/waves/reviews/wave-7-preservation-proof.md +0 -119
- package/docs/plans/waves/reviews/wave-7-trust-ux.md +0 -87
- package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +0 -128
- package/docs/plans/waves/reviews/wave-8-cont-qa.md +0 -92
- package/docs/plans/waves/reviews/wave-8-live-proof.md +0 -140
- package/docs/plans/waves/reviews/wave-8-security.md +0 -47
- package/docs/plans/waves/reviews/wave-9-editor-embedding.md +0 -39
- package/docs/plans/waves/reviews/wave-9-fixture-runner.md +0 -56
- package/docs/plans/waves/reviews/wave-9-live-proof.md +0 -105
- package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +0 -152
- package/docs/plans/waves/specs/README.md +0 -5
- package/docs/plans/waves/specs/wave-1-component-boundaries.md +0 -322
- package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +0 -323
- package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +0 -339
- package/docs/plans/waves/specs/wave-1-runtime-contracts.md +0 -509
- package/docs/plans/waves/wave-19.md +0 -341
- package/docs/plans/waves/wave-20.md +0 -308
- package/docs/plans/waves/wave-21.md +0 -289
- package/docs/plans/waves/wave-22.md +0 -221
- package/docs/plans/waves/wave-23.md +0 -295
- package/docs/plans/waves/wave-24.md +0 -286
- package/docs/plans/waves/wave-25.md +0 -313
- package/docs/plans/waves/wave-26.md +0 -300
- package/docs/plans/waves/wave-27.md +0 -299
- package/docs/plans/waves/wave-28.md +0 -368
- package/docs/plans/waves/wave-29.md +0 -303
- package/docs/plans/waves/wave-30.md +0 -307
- package/docs/plans/waves/wave-31.md +0 -231
- package/docs/plans/waves/wave-32.md +0 -152
- package/docs/plans/waves/wave-33.md +0 -147
- package/docs/plans/waves/wave-34.md +0 -148
- package/docs/plans/waves/wave-35.md +0 -141
- package/docs/plans/waves/wave-36.md +0 -146
- package/docs/plans/xlsx/README.md +0 -14
- package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +0 -126
- package/docs/reference/cli-reference.md +0 -600
- package/docs/reference/coordination-and-closure.md +0 -487
- package/docs/reference/deep-research-report (15).md +0 -25
- package/docs/reference/docx/README.md +0 -10
- package/docs/reference/legal-checklist.md +0 -445
- package/docs/reference/live-proof-waves.md +0 -199
- package/docs/reference/ooxml-compliance.md +0 -129
- package/docs/reference/ooxml-feature-parity-matrix.md +0 -172
- package/docs/reference/platform/shared-ooxml-platform-guidance.md +0 -77
- package/docs/reference/prototype-agent-prompt-legal-fidelity.md +0 -155
- package/docs/reference/public-api.md +0 -456
- package/docs/reference/repository-guidance.md +0 -58
- package/docs/reference/runtime-config/README.md +0 -182
- package/docs/reference/runtime-config/claude.md +0 -110
- package/docs/reference/runtime-config/codex.md +0 -82
- package/docs/reference/runtime-config/opencode.md +0 -93
- package/docs/reference/sample-waves.md +0 -105
- package/docs/reference/skills.md +0 -237
- package/docs/reference/templates/AGENTS.md +0 -78
- package/docs/reference/templates/HEARTBEAT.md +0 -7
- package/docs/reference/templates/IDENTITY.md +0 -23
- package/docs/reference/templates/SOUL.md +0 -36
- package/docs/reference/templates/TOOLS.md +0 -40
- package/docs/reference/templates/USER.md +0 -17
- package/docs/reference/wave-control.md +0 -184
- package/docs/reference/wave-planning-lessons.md +0 -167
- package/docs/reference/word-review-editor-frontend-architecture.md +0 -479
- package/docs/reference/word-review-editor-ux-guide.md +0 -253
- package/docs/reference/xlsx/xlsx-ooxml-compliance.md +0 -137
- package/docs/research/agent-context-sources.md +0 -178
- package/docs/research/coordination-failure-review.md +0 -290
- package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +0 -2317
- package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +0 -219
- package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +0 -1112
- package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +0 -751
- package/docs/research/xlsx/raw/README.md +0 -13
- package/docs/roadmap.md +0 -174
- package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +0 -677
- package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +0 -274
- package/docs/xlsx-react/README.md +0 -38
- package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +0 -621
- package/docs/xlsx-react/canonical-workbook-model-and-commands.md +0 -948
- package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +0 -228
- package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +0 -809
- package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +0 -537
- package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +0 -520
- package/docs/xlsx-react/xlsx-editor-research-pack.md +0 -871
- package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +0 -436
- package/docs/xlsx-react/xlsx-ooxml-compliance.md +0 -320
- package/examples/README.md +0 -16
- package/memory/MEMORY.md +0 -24
- package/pnpm-workspace.yaml +0 -4
- package/scripts/check-no-authored-js.sh +0 -13
- package/scripts/context7-api-check.sh +0 -65
- package/scripts/context7-export-env.sh +0 -42
- package/scripts/run-context7-mcp.sh +0 -8
- package/scripts/run-workspace-tests.sh +0 -15
- package/scripts/start-wave-10-local.sh +0 -189
- package/scripts/wave-agent-attach.sh +0 -47
- package/scripts/wave-auto-answer.sh +0 -118
- package/scripts/wave-dashboard-attach.sh +0 -13
- package/scripts/wave-launch.sh +0 -273
- package/scripts/wave-overnight-supervisor.sh +0 -145
- package/scripts/wave-status.sh +0 -379
- package/scripts/wave-watch.sh +0 -231
- package/services/README.md +0 -17
- package/services/openxml-validator/Dockerfile +0 -29
- package/services/openxml-validator/OpenXmlValidator.Api.csproj +0 -12
- package/services/openxml-validator/Program.cs +0 -436
- package/services/openxml-validator/README.md +0 -152
- package/services/openxml-validator/railway.json +0 -16
- package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +0 -318
- package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +0 -1302
- package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +0 -546
- package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +0 -146
- package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +0 -2
- package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +0 -818
- package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +0 -229
- package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +0 -121
- package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +0 -21
- package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +0 -1
- package/services/react-word-editor/Dockerfile +0 -26
- package/services/react-word-editor/README.md +0 -254
- package/services/react-word-editor/app/api/certification/route.ts +0 -79
- package/services/react-word-editor/app/api/demo-sessions/route.ts +0 -109
- package/services/react-word-editor/app/api/deploy-health/route.ts +0 -23
- package/services/react-word-editor/app/api/exports/[exportId]/route.ts +0 -34
- package/services/react-word-editor/app/api/exports/route.ts +0 -81
- package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +0 -100
- package/services/react-word-editor/app/api/health/route.ts +0 -70
- package/services/react-word-editor/app/api/runs/[runId]/route.ts +0 -36
- package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +0 -85
- package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +0 -199
- package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +0 -45
- package/services/react-word-editor/app/api/uploads/route.ts +0 -70
- package/services/react-word-editor/app/api/validate/route.ts +0 -310
- package/services/react-word-editor/app/certification/[runId]/page.tsx +0 -14
- package/services/react-word-editor/app/certification/page.tsx +0 -32
- package/services/react-word-editor/app/dashboard/page.tsx +0 -7
- package/services/react-word-editor/app/demo/page.tsx +0 -30
- package/services/react-word-editor/app/demo/prototype-client.tsx +0 -1080
- package/services/react-word-editor/app/editor/[sessionId]/page.tsx +0 -33
- package/services/react-word-editor/app/fixtures/page.tsx +0 -7
- package/services/react-word-editor/app/globals.css +0 -121
- package/services/react-word-editor/app/layout.tsx +0 -32
- package/services/react-word-editor/app/page.tsx +0 -30
- package/services/react-word-editor/app/runs/[runId]/page.tsx +0 -34
- package/services/react-word-editor/app/wave-10-word-review/page.tsx +0 -7
- package/services/react-word-editor/components/harness-control-bar.tsx +0 -289
- package/services/react-word-editor/components/harness-editor-session-client.tsx +0 -1214
- package/services/react-word-editor/components/harness-workspace-page.tsx +0 -715
- package/services/react-word-editor/components/reduced-motion-toggle.tsx +0 -79
- package/services/react-word-editor/components/workspace-certification-panel.tsx +0 -307
- package/services/react-word-editor/lib/certification-bundle.ts +0 -796
- package/services/react-word-editor/lib/certification-store.ts +0 -661
- package/services/react-word-editor/lib/demo-fixtures.test.mjs +0 -195
- package/services/react-word-editor/lib/demo-fixtures.ts +0 -1519
- package/services/react-word-editor/lib/editor-session-summary.test.mjs +0 -68
- package/services/react-word-editor/lib/editor-session-summary.ts +0 -14
- package/services/react-word-editor/lib/editor-session.ts +0 -228
- package/services/react-word-editor/lib/exports-route.test.mjs +0 -32
- package/services/react-word-editor/lib/harness-client.ts +0 -347
- package/services/react-word-editor/lib/harness-config.json +0 -30
- package/services/react-word-editor/lib/harness-config.test.mjs +0 -31
- package/services/react-word-editor/lib/harness-config.ts +0 -21
- package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +0 -220
- package/services/react-word-editor/lib/harness-editor-datastore.ts +0 -161
- package/services/react-word-editor/lib/private-mode.test.mjs +0 -42
- package/services/react-word-editor/lib/private-mode.ts +0 -61
- package/services/react-word-editor/lib/regression-report.test.mjs +0 -352
- package/services/react-word-editor/lib/regression-report.ts +0 -896
- package/services/react-word-editor/lib/run-artifacts.ts +0 -934
- package/services/react-word-editor/lib/run-history.ts +0 -755
- package/services/react-word-editor/lib/scenario-artifacts.test.mjs +0 -41
- package/services/react-word-editor/lib/scenario-artifacts.ts +0 -44
- package/services/react-word-editor/lib/storage.ts +0 -953
- package/services/react-word-editor/lib/validator-client.test.mjs +0 -54
- package/services/react-word-editor/lib/validator-client.ts +0 -95
- package/services/react-word-editor/lib/workspace-navigation.ts +0 -79
- package/services/react-word-editor/middleware.ts +0 -35
- package/services/react-word-editor/next-env.d.ts +0 -6
- package/services/react-word-editor/next.config.mjs +0 -15
- package/services/react-word-editor/package.json +0 -38
- package/services/react-word-editor/postcss.config.mjs +0 -8
- package/services/react-word-editor/railway.json +0 -21
- package/services/react-word-editor/scripts/wave-10-certification.mjs +0 -101
- package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +0 -911
- package/services/react-word-editor/tsconfig.json +0 -39
- package/services/react-word-editor/tsconfig.tsbuildinfo +0 -1
- package/skills/README.md +0 -48
- package/skills/domain-docx-compatibility/SKILL.md +0 -44
- package/skills/domain-docx-compatibility/skill.json +0 -19
- package/skills/domain-editor-architecture/SKILL.md +0 -49
- package/skills/domain-editor-architecture/skill.json +0 -19
- package/skills/domain-legal-review/SKILL.md +0 -39
- package/skills/domain-legal-review/skill.json +0 -19
- package/skills/provider-aws/SKILL.md +0 -117
- package/skills/provider-aws/adapters/claude.md +0 -1
- package/skills/provider-aws/adapters/codex.md +0 -1
- package/skills/provider-aws/references/service-verification.md +0 -39
- package/skills/provider-aws/skill.json +0 -54
- package/skills/provider-custom-deploy/SKILL.md +0 -64
- package/skills/provider-custom-deploy/skill.json +0 -50
- package/skills/provider-docker-compose/SKILL.md +0 -96
- package/skills/provider-docker-compose/adapters/local.md +0 -1
- package/skills/provider-docker-compose/skill.json +0 -53
- package/skills/provider-github-release/SKILL.md +0 -121
- package/skills/provider-github-release/adapters/claude.md +0 -1
- package/skills/provider-github-release/adapters/codex.md +0 -1
- package/skills/provider-github-release/skill.json +0 -55
- package/skills/provider-kubernetes/SKILL.md +0 -143
- package/skills/provider-kubernetes/adapters/claude.md +0 -1
- package/skills/provider-kubernetes/adapters/codex.md +0 -1
- package/skills/provider-kubernetes/references/kubectl-patterns.md +0 -58
- package/skills/provider-kubernetes/skill.json +0 -52
- package/skills/provider-railway/SKILL.md +0 -123
- package/skills/provider-railway/adapters/claude.md +0 -1
- package/skills/provider-railway/adapters/codex.md +0 -1
- package/skills/provider-railway/adapters/local.md +0 -1
- package/skills/provider-railway/adapters/opencode.md +0 -1
- package/skills/provider-railway/references/verification-commands.md +0 -39
- package/skills/provider-railway/skill.json +0 -71
- package/skills/provider-ssh-manual/SKILL.md +0 -97
- package/skills/provider-ssh-manual/skill.json +0 -54
- package/skills/repo-coding-rules/SKILL.md +0 -55
- package/skills/repo-coding-rules/skill.json +0 -34
- package/skills/role-cont-eval/SKILL.md +0 -91
- package/skills/role-cont-eval/adapters/codex.md +0 -1
- package/skills/role-cont-eval/skill.json +0 -36
- package/skills/role-cont-qa/SKILL.md +0 -100
- package/skills/role-cont-qa/adapters/claude.md +0 -1
- package/skills/role-cont-qa/skill.json +0 -36
- package/skills/role-deploy/SKILL.md +0 -97
- package/skills/role-deploy/skill.json +0 -36
- package/skills/role-design/SKILL.md +0 -50
- package/skills/role-design/skill.json +0 -36
- package/skills/role-documentation/SKILL.md +0 -76
- package/skills/role-documentation/skill.json +0 -36
- package/skills/role-implementation/SKILL.md +0 -45
- package/skills/role-implementation/skill.json +0 -36
- package/skills/role-infra/SKILL.md +0 -81
- package/skills/role-infra/skill.json +0 -36
- package/skills/role-integration/SKILL.md +0 -91
- package/skills/role-integration/skill.json +0 -36
- package/skills/role-planner/SKILL.md +0 -39
- package/skills/role-planner/skill.json +0 -21
- package/skills/role-research/SKILL.md +0 -65
- package/skills/role-research/skill.json +0 -36
- package/skills/role-security/SKILL.md +0 -60
- package/skills/role-security/skill.json +0 -36
- package/skills/runtime-claude/SKILL.md +0 -66
- package/skills/runtime-claude/skill.json +0 -36
- package/skills/runtime-codex/SKILL.md +0 -58
- package/skills/runtime-codex/skill.json +0 -36
- package/skills/runtime-local/SKILL.md +0 -46
- package/skills/runtime-local/skill.json +0 -36
- package/skills/runtime-opencode/SKILL.md +0 -58
- package/skills/runtime-opencode/skill.json +0 -36
- package/skills/signal-hygiene/SKILL.md +0 -51
- package/skills/signal-hygiene/skill.json +0 -20
- package/skills/tui-design/SKILL.md +0 -77
- package/skills/tui-design/references/tui-design.md +0 -259
- package/skills/tui-design/skill.json +0 -36
- package/skills/wave-core/SKILL.md +0 -141
- package/skills/wave-core/references/marker-syntax.md +0 -70
- package/skills/wave-core/skill.json +0 -35
- package/src/README.md +0 -85
- package/src/api/README.md +0 -22
- package/src/api/public-types.ts +0 -525
- package/src/component-inventory.md +0 -99
- package/src/core/README.md +0 -10
- package/src/core/commands/README.md +0 -3
- package/src/core/commands/formatting-commands.ts +0 -161
- package/src/core/commands/image-commands.ts +0 -144
- package/src/core/commands/index.ts +0 -1013
- package/src/core/commands/list-commands.ts +0 -370
- package/src/core/commands/review-commands.ts +0 -108
- package/src/core/commands/text-commands.ts +0 -119
- package/src/core/schema/README.md +0 -3
- package/src/core/schema/text-schema.ts +0 -512
- package/src/core/selection/README.md +0 -3
- package/src/core/selection/mapping.ts +0 -238
- package/src/core/selection/review-anchors.ts +0 -94
- package/src/core/state/README.md +0 -3
- package/src/core/state/editor-state.ts +0 -580
- package/src/core/state/text-transaction.ts +0 -276
- package/src/formats/xlsx/io/parse-shared-strings.ts +0 -41
- package/src/formats/xlsx/io/parse-sheet.ts +0 -289
- package/src/formats/xlsx/io/parse-styles.ts +0 -57
- package/src/formats/xlsx/io/parse-workbook.ts +0 -75
- package/src/formats/xlsx/io/xlsx-session.ts +0 -306
- package/src/formats/xlsx/model/cell.ts +0 -189
- package/src/formats/xlsx/model/sheet.ts +0 -244
- package/src/formats/xlsx/model/styles.ts +0 -118
- package/src/formats/xlsx/model/workbook.ts +0 -449
- package/src/io/README.md +0 -10
- package/src/io/docx-session.ts +0 -1763
- package/src/io/export/README.md +0 -3
- package/src/io/export/export-session.ts +0 -165
- package/src/io/export/minimal-docx.ts +0 -115
- package/src/io/export/reattach-preserved-parts.ts +0 -54
- package/src/io/export/serialize-comments.ts +0 -876
- package/src/io/export/serialize-footnotes.ts +0 -217
- package/src/io/export/serialize-headers-footers.ts +0 -200
- package/src/io/export/serialize-main-document.ts +0 -982
- package/src/io/export/serialize-numbering.ts +0 -97
- package/src/io/export/serialize-revisions.ts +0 -389
- package/src/io/export/serialize-runtime-revisions.ts +0 -265
- package/src/io/export/serialize-tables.ts +0 -147
- package/src/io/export/split-review-boundaries.ts +0 -194
- package/src/io/normalize/README.md +0 -3
- package/src/io/normalize/normalize-text.ts +0 -437
- package/src/io/ooxml/README.md +0 -3
- package/src/io/ooxml/parse-comments.ts +0 -779
- package/src/io/ooxml/parse-complex-content.ts +0 -287
- package/src/io/ooxml/parse-fields.ts +0 -438
- package/src/io/ooxml/parse-footnotes.ts +0 -403
- package/src/io/ooxml/parse-headers-footers.ts +0 -483
- package/src/io/ooxml/parse-inline-media.ts +0 -431
- package/src/io/ooxml/parse-main-document.ts +0 -1846
- package/src/io/ooxml/parse-numbering.ts +0 -425
- package/src/io/ooxml/parse-revisions.ts +0 -658
- package/src/io/ooxml/parse-shapes.ts +0 -271
- package/src/io/ooxml/parse-tables.ts +0 -568
- package/src/io/ooxml/parse-theme.ts +0 -314
- package/src/io/ooxml/part-manifest.ts +0 -136
- package/src/io/ooxml/revision-boundaries.ts +0 -351
- package/src/io/opc/README.md +0 -3
- package/src/io/opc/corrupt-package.ts +0 -166
- package/src/io/opc/docx-package.ts +0 -74
- package/src/io/opc/package-reader.ts +0 -320
- package/src/io/opc/package-writer.ts +0 -273
- package/src/model/README.md +0 -3
- package/src/model/canonical-document.ts +0 -1911
- package/src/model/cds-1.0.0.ts +0 -196
- package/src/model/snapshot.ts +0 -393
- package/src/preservation/README.md +0 -3
- package/src/preservation/markup-compatibility.ts +0 -48
- package/src/preservation/opaque-fragment-store.ts +0 -89
- package/src/preservation/opaque-region.ts +0 -233
- package/src/preservation/package-preservation.ts +0 -120
- package/src/preservation/preserved-part-manifest.ts +0 -56
- package/src/preservation/relationship-retention.ts +0 -57
- package/src/preservation/store.ts +0 -185
- package/src/review/README.md +0 -16
- package/src/review/store/README.md +0 -3
- package/src/review/store/comment-anchors.ts +0 -70
- package/src/review/store/comment-remapping.ts +0 -154
- package/src/review/store/comment-store.ts +0 -331
- package/src/review/store/comment-thread.ts +0 -109
- package/src/review/store/revision-actions.ts +0 -394
- package/src/review/store/revision-store.ts +0 -303
- package/src/review/store/revision-types.ts +0 -168
- package/src/review/store/runtime-comment-store.ts +0 -43
- package/src/runtime/README.md +0 -3
- package/src/runtime/ai-action-policy.ts +0 -764
- package/src/runtime/document-runtime.ts +0 -969
- package/src/runtime/read-only-diagnostics-runtime.ts +0 -232
- package/src/runtime/review-runtime.ts +0 -44
- package/src/runtime/revision-runtime.ts +0 -107
- package/src/runtime/session-capabilities.ts +0 -138
- package/src/runtime/surface-projection.ts +0 -570
- package/src/runtime/table-commands.ts +0 -84
- package/src/runtime/table-schema.ts +0 -125
- package/src/ui/README.md +0 -30
- package/src/ui/WordReviewEditor.tsx +0 -1283
- package/src/ui/comments/README.md +0 -3
- package/src/ui/compatibility/README.md +0 -3
- package/src/ui/editor-surface/README.md +0 -3
- package/src/ui/headless/comment-decoration-model.ts +0 -124
- package/src/ui/headless/revision-decoration-model.ts +0 -128
- package/src/ui/headless/selection-helpers.ts +0 -34
- package/src/ui/headless/use-editor-keyboard.ts +0 -98
- package/src/ui/review/README.md +0 -3
- package/src/ui/shared/revision-filters.ts +0 -31
- package/src/ui/status/README.md +0 -3
- package/src/ui/theme/README.md +0 -3
- package/src/ui/toolbar/README.md +0 -3
- package/src/ui-tailwind/chrome/tw-alert-banner.tsx +0 -48
- package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +0 -44
- package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +0 -58
- package/src/ui-tailwind/chrome/use-before-unload.ts +0 -20
- package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +0 -139
- package/src/ui-tailwind/editor-surface/pm-decorations.ts +0 -98
- package/src/ui-tailwind/editor-surface/pm-position-map.ts +0 -123
- package/src/ui-tailwind/editor-surface/pm-schema.ts +0 -452
- package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +0 -327
- package/src/ui-tailwind/editor-surface/search-plugin.ts +0 -157
- package/src/ui-tailwind/editor-surface/tw-caret.tsx +0 -12
- package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +0 -150
- package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +0 -118
- package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +0 -52
- package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +0 -151
- package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +0 -215
- package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +0 -111
- package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +0 -108
- package/src/ui-tailwind/index.ts +0 -61
- package/src/ui-tailwind/review/tw-comment-sidebar.tsx +0 -276
- package/src/ui-tailwind/review/tw-health-panel.tsx +0 -120
- package/src/ui-tailwind/review/tw-review-rail.tsx +0 -120
- package/src/ui-tailwind/review/tw-revision-sidebar.tsx +0 -164
- package/src/ui-tailwind/status/tw-status-bar.tsx +0 -58
- package/src/ui-tailwind/theme/editor-theme.css +0 -190
- package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +0 -48
- package/src/ui-tailwind/toolbar/tw-toolbar.tsx +0 -231
- package/src/ui-tailwind/tw-review-workspace.tsx +0 -140
- package/src/validation/README.md +0 -3
- package/src/validation/compatibility-engine.ts +0 -317
- package/src/validation/compatibility-report.ts +0 -160
- package/src/validation/diagnostics.ts +0 -203
- package/src/validation/import-diagnostics.ts +0 -128
- package/src/validation/low-priority-word-surfaces.ts +0 -373
- package/test/README.md +0 -16
- package/test/core/formatting-commands.test.ts +0 -285
- package/test/core/image-commands.test.ts +0 -298
- package/test/core/mapping.test.ts +0 -186
- package/test/core/text-commands.test.ts +0 -176
- package/test/fixtures/docx/F01-basic-contract.docx +0 -0
- package/test/fixtures/docx/F01-basic-contract.md +0 -33
- package/test/fixtures/docx/F02-headings-styles.docx +0 -0
- package/test/fixtures/docx/F02-headings-styles.md +0 -33
- package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
- package/test/fixtures/docx/F03-legal-outline-numbering.md +0 -34
- package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
- package/test/fixtures/docx/F04-restart-numbering-schedules.md +0 -33
- package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
- package/test/fixtures/docx/F05-table-heavy-agreement.md +0 -34
- package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
- package/test/fixtures/docx/F06-merged-cells-signature-table.md +0 -34
- package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
- package/test/fixtures/docx/F07-inline-images-exhibit.md +0 -34
- package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
- package/test/fixtures/docx/F08-hyperlinks.md +0 -33
- package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
- package/test/fixtures/docx/F09-comments-single-paragraph.md +0 -33
- package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
- package/test/fixtures/docx/F10-threaded-comments-resolve.md +0 -33
- package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
- package/test/fixtures/docx/F11-redlines-basic.md +0 -33
- package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
- package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +0 -33
- package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
- package/test/fixtures/docx/F13-comments-on-deleted-text.md +0 -33
- package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
- package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +0 -33
- package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
- package/test/fixtures/docx/F15-sections-headers-footers.md +0 -33
- package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
- package/test/fixtures/docx/F16-footnotes-endnotes.md +0 -33
- package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
- package/test/fixtures/docx/F17-fields-and-toc.md +0 -33
- package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
- package/test/fixtures/docx/F18-content-controls-template.md +0 -33
- package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
- package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +0 -35
- package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
- package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +0 -33
- package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
- package/test/fixtures/docx/F21-malformed-broken-docx.md +0 -33
- package/test/fixtures/docx/README.md +0 -74
- package/test/fixtures/docx/certification-manifest.json +0 -104
- package/test/fixtures/docx/fixtures.manifest.json +0 -196
- package/test/fixtures/encrypted-docx/README.md +0 -27
- package/test/fixtures/encrypted-docx/certification-manifest.json +0 -9
- package/test/fixtures/encrypted-docx/fixtures.manifest.json +0 -47
- package/test/fixtures/scenarios/docx/README.md +0 -25
- package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
- package/test/fixtures/scenarios/docx/S01-sow-template.md +0 -30
- package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
- package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +0 -32
- package/test/fixtures/scenarios/docx/scenario-manifest.json +0 -53
- package/test/formats/xlsx/io/xlsx-import.test.ts +0 -766
- package/test/formats/xlsx/model/workbook.test.ts +0 -669
- package/test/helpers/dom-setup.ts +0 -124
- package/test/io/comment-roundtrip.test.ts +0 -272
- package/test/io/complex-content-roundtrip.test.ts +0 -632
- package/test/io/docx-compatibility-regression.test.ts +0 -199
- package/test/io/docx-session.test.ts +0 -1495
- package/test/io/footnotes-roundtrip.test.ts +0 -318
- package/test/io/headers-footers-roundtrip.test.ts +0 -547
- package/test/io/numbering-roundtrip.test.ts +0 -234
- package/test/io/package-reader.test.ts +0 -199
- package/test/io/paragraph-properties-roundtrip.test.ts +0 -129
- package/test/io/preserved-package-roundtrip.test.ts +0 -365
- package/test/io/property-completeness.test.ts +0 -292
- package/test/io/revision-roundtrip.test.ts +0 -347
- package/test/io/structural-blocks.test.ts +0 -202
- package/test/io/table-media-roundtrip.test.ts +0 -448
- package/test/io/table-properties-roundtrip.test.ts +0 -569
- package/test/io/table-roundtrip.test.ts +0 -302
- package/test/io/text-roundtrip.test.ts +0 -344
- package/test/model/canonical-document.test.ts +0 -285
- package/test/preservation/opaque-fragment-store.test.ts +0 -121
- package/test/preservation/package-preservation.test.ts +0 -395
- package/test/preservation/store.test.ts +0 -84
- package/test/review/comment-remapping.test.ts +0 -220
- package/test/review/comment-store.test.ts +0 -180
- package/test/review/move-revisions.test.ts +0 -143
- package/test/review/property-change-revisions.test.ts +0 -225
- package/test/review/revision-actions.test.ts +0 -330
- package/test/review/revision-store.test.ts +0 -193
- package/test/runtime/session-capabilities.test.ts +0 -260
- package/test/runtime/table-commands.test.ts +0 -356
- package/test/runtime/table-schema.test.ts +0 -221
- package/test/runtime/tracked-changes-toggle.test.ts +0 -107
- package/test/ui/comment-review-surface.test.tsx +0 -114
- package/test/ui/reduced-motion-toggle.test.tsx +0 -137
- package/test/ui/word-review-editor.imported-scenarios.test.tsx +0 -169
- package/test/ui/word-review-editor.interaction.test.tsx +0 -1198
- package/test/ui/word-review-editor.test.js +0 -188
- package/test/ui/word-review-editor.test.tsx +0 -280
- package/test/ui-tailwind/search-plugin.test.ts +0 -286
- package/test/validation/compatibility-engine.test.ts +0 -336
- package/test/validation/compatibility-report.test.ts +0 -189
- package/test/validation/low-priority-word-surfaces.test.ts +0 -282
- package/test/validation/malformed-doc.test.ts +0 -113
- package/test-results/.last-run.json +0 -4
- package/wave.config.json +0 -406
|
@@ -1,751 +0,0 @@
|
|
|
1
|
-
# Document Compatibility and Testing Specification
|
|
2
|
-
|
|
3
|
-
## 1. Purpose
|
|
4
|
-
|
|
5
|
-
This specification defines the compatibility contract, validation rules, and testing program for a React-based Word-compatible document component that imports `.docx`, edits supported content, exports `.docx`, and must reopen in recent Microsoft Word versions without damage.
|
|
6
|
-
|
|
7
|
-
This document is intentionally limited to **document compatibility and compatibility testing**. It does not define broader product UX, editor architecture, theming, or feature-roadmap concerns except where they directly affect compatibility.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## 2. Goal
|
|
12
|
-
|
|
13
|
-
The system must be able to:
|
|
14
|
-
|
|
15
|
-
- open `.docx` documents produced by recent Microsoft Word versions
|
|
16
|
-
- preserve supported content semantics during import
|
|
17
|
-
- edit supported content safely
|
|
18
|
-
- export valid `.docx` packages
|
|
19
|
-
- reopen exported files in recent Microsoft Word environments without repair prompts, corruption, or silent loss of supported data
|
|
20
|
-
- preserve unsupported but preservable content wherever possible
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 3. Scope
|
|
25
|
-
|
|
26
|
-
### 3.1 In scope
|
|
27
|
-
|
|
28
|
-
- `.docx` import compatibility
|
|
29
|
-
- `.docx` export compatibility
|
|
30
|
-
- round-trip safety
|
|
31
|
-
- OOXML package correctness
|
|
32
|
-
- supported feature preservation
|
|
33
|
-
- unsupported feature preservation policy
|
|
34
|
-
- validation layers
|
|
35
|
-
- compatibility fixture corpus
|
|
36
|
-
- automated and manual compatibility testing
|
|
37
|
-
- release gates for compatibility
|
|
38
|
-
|
|
39
|
-
### 3.2 Out of scope
|
|
40
|
-
|
|
41
|
-
- general editor UX
|
|
42
|
-
- toolbar behavior except where needed for compatibility testing
|
|
43
|
-
- collaboration features
|
|
44
|
-
- offline sync
|
|
45
|
-
- business workflows unrelated to document fidelity
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## 4. Normative alignment target
|
|
50
|
-
|
|
51
|
-
The compatibility layer must align with:
|
|
52
|
-
|
|
53
|
-
- **Office Open XML WordprocessingML**
|
|
54
|
-
- **Open Packaging Conventions (OPC)**
|
|
55
|
-
- **ECMA-376**
|
|
56
|
-
- **ISO/IEC 29500**
|
|
57
|
-
|
|
58
|
-
The target file format is `.docx`.
|
|
59
|
-
|
|
60
|
-
The system must behave as an OOXML **consumer and producer**.
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## 5. Compatibility philosophy
|
|
65
|
-
|
|
66
|
-
Compatibility must be evaluated at two levels:
|
|
67
|
-
|
|
68
|
-
### 5.1 Spec-level correctness
|
|
69
|
-
|
|
70
|
-
The exported file is structurally valid and internally consistent as an OOXML/OPC package.
|
|
71
|
-
|
|
72
|
-
### 5.2 Application-level correctness
|
|
73
|
-
|
|
74
|
-
The exported file opens and behaves correctly in recent Microsoft Word environments.
|
|
75
|
-
|
|
76
|
-
Application-level correctness is the final standard. Spec-level validation is necessary but not sufficient.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## 6. Compatibility contract
|
|
81
|
-
|
|
82
|
-
A document export is considered **compatible** only when all of the following are true:
|
|
83
|
-
|
|
84
|
-
1. The exported file is a valid `.docx` ZIP package.
|
|
85
|
-
2. Required OOXML parts and relationships are present and internally consistent.
|
|
86
|
-
3. The file opens in recent Word desktop without a repair prompt.
|
|
87
|
-
4. The file opens in recent Word on the web without fatal failure.
|
|
88
|
-
5. Supported content remains semantically correct after import, edit, export, and reopen.
|
|
89
|
-
6. Comments remain present and correctly anchored when supported.
|
|
90
|
-
7. Tracked insertions and deletions remain reviewable and behave correctly when supported.
|
|
91
|
-
8. Lists, numbering, tables, images, hyperlinks, and styles remain structurally coherent when supported.
|
|
92
|
-
9. Unsupported but preservable content is not silently dropped.
|
|
93
|
-
10. Re-save from Word does not produce catastrophic structural drift.
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## 7. Compatibility classes
|
|
98
|
-
|
|
99
|
-
Every feature must be classified into one of these categories:
|
|
100
|
-
|
|
101
|
-
- `supported-roundtrip`
|
|
102
|
-
- `supported-import-only`
|
|
103
|
-
- `supported-export-only`
|
|
104
|
-
- `preserve-only`
|
|
105
|
-
- `unsupported-fatal`
|
|
106
|
-
|
|
107
|
-
The classification must exist at minimum for:
|
|
108
|
-
|
|
109
|
-
- paragraphs
|
|
110
|
-
- headings
|
|
111
|
-
- inline formatting
|
|
112
|
-
- lists
|
|
113
|
-
- numbering
|
|
114
|
-
- tables
|
|
115
|
-
- images
|
|
116
|
-
- hyperlinks
|
|
117
|
-
- comments
|
|
118
|
-
- tracked insertions
|
|
119
|
-
- tracked deletions
|
|
120
|
-
- formatting revisions
|
|
121
|
-
- section breaks
|
|
122
|
-
- headers/footers
|
|
123
|
-
- footnotes/endnotes
|
|
124
|
-
- fields
|
|
125
|
-
- content controls
|
|
126
|
-
- embedded objects
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## 8. Supported compatibility behaviors
|
|
131
|
-
|
|
132
|
-
## 8.1 Supported-roundtrip
|
|
133
|
-
|
|
134
|
-
For features in this class, the system must:
|
|
135
|
-
|
|
136
|
-
- import them semantically
|
|
137
|
-
- preserve them during edits
|
|
138
|
-
- export them correctly
|
|
139
|
-
- reopen in Word with the same effective meaning
|
|
140
|
-
|
|
141
|
-
## 8.2 Preserve-only
|
|
142
|
-
|
|
143
|
-
For features in this class, the system may not fully understand or expose editing UI for them, but must:
|
|
144
|
-
|
|
145
|
-
- retain them during import
|
|
146
|
-
- avoid destructive rewriting
|
|
147
|
-
- reattach or preserve them on export where possible
|
|
148
|
-
- warn when edits may endanger preservation
|
|
149
|
-
|
|
150
|
-
## 8.3 Unsupported-fatal
|
|
151
|
-
|
|
152
|
-
For features in this class, the system must:
|
|
153
|
-
|
|
154
|
-
- fail safely or block the destructive workflow
|
|
155
|
-
- emit a clear warning or error
|
|
156
|
-
- avoid silently producing a damaged document
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## 9. Required package integrity rules
|
|
161
|
-
|
|
162
|
-
Every exported file must satisfy the following:
|
|
163
|
-
|
|
164
|
-
### 9.1 ZIP/package integrity
|
|
165
|
-
|
|
166
|
-
- valid ZIP structure
|
|
167
|
-
- readable package entries
|
|
168
|
-
- no duplicate conflicting entries
|
|
169
|
-
|
|
170
|
-
### 9.2 Required OOXML package parts
|
|
171
|
-
|
|
172
|
-
At minimum where applicable:
|
|
173
|
-
|
|
174
|
-
- `[Content_Types].xml`
|
|
175
|
-
- `_rels/.rels`
|
|
176
|
-
- `word/document.xml`
|
|
177
|
-
- `word/_rels/document.xml.rels`
|
|
178
|
-
- styles part if referenced
|
|
179
|
-
- numbering part if referenced
|
|
180
|
-
- comments part if referenced
|
|
181
|
-
- media parts if referenced
|
|
182
|
-
|
|
183
|
-
### 9.3 Relationship integrity
|
|
184
|
-
|
|
185
|
-
- every relationship target resolves correctly
|
|
186
|
-
- no dangling relationship ids
|
|
187
|
-
- no broken internal part links
|
|
188
|
-
- no orphaned referenced media in supported flows
|
|
189
|
-
|
|
190
|
-
### 9.4 Identifier integrity
|
|
191
|
-
|
|
192
|
-
No invalid collisions in required id domains, including where applicable:
|
|
193
|
-
|
|
194
|
-
- comment ids
|
|
195
|
-
- relationship ids
|
|
196
|
-
- numbering ids
|
|
197
|
-
- media rel ids
|
|
198
|
-
- revision ids if internally materialized into export structures
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## 10. Required semantic integrity rules
|
|
203
|
-
|
|
204
|
-
For all supported-roundtrip features:
|
|
205
|
-
|
|
206
|
-
### 10.1 Text and structure
|
|
207
|
-
|
|
208
|
-
- paragraph order preserved
|
|
209
|
-
- run content preserved
|
|
210
|
-
- supported inline formatting preserved
|
|
211
|
-
- heading levels preserved
|
|
212
|
-
|
|
213
|
-
### 10.2 Lists and numbering
|
|
214
|
-
|
|
215
|
-
- nesting preserved
|
|
216
|
-
- numbering hierarchy preserved
|
|
217
|
-
- bullet/ordered semantics preserved
|
|
218
|
-
- restart behavior preserved where supported
|
|
219
|
-
|
|
220
|
-
### 10.3 Tables
|
|
221
|
-
|
|
222
|
-
- row/column structure preserved
|
|
223
|
-
- supported merged-cell semantics preserved
|
|
224
|
-
- table content preserved
|
|
225
|
-
|
|
226
|
-
### 10.4 Images and links
|
|
227
|
-
|
|
228
|
-
- images remain addressable and visible
|
|
229
|
-
- dimensions/placement preserved within declared support boundaries
|
|
230
|
-
- hyperlink targets preserved
|
|
231
|
-
|
|
232
|
-
### 10.5 Comments
|
|
233
|
-
|
|
234
|
-
- comment text preserved
|
|
235
|
-
- anchor range preserved or explicitly degraded
|
|
236
|
-
- comment ordering/thread coherence preserved where supported
|
|
237
|
-
|
|
238
|
-
### 10.6 Revisions
|
|
239
|
-
|
|
240
|
-
- insertion/deletion semantics preserved
|
|
241
|
-
- accept/reject remains possible in Word when supported
|
|
242
|
-
- revision boundaries remain valid
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
## 11. Unsupported content preservation policy
|
|
247
|
-
|
|
248
|
-
When the system encounters content outside supported-roundtrip coverage, it must apply the following priority order:
|
|
249
|
-
|
|
250
|
-
1. preserve unchanged
|
|
251
|
-
2. preserve with edit restrictions
|
|
252
|
-
3. preserve with warning
|
|
253
|
-
4. block destructive editing
|
|
254
|
-
5. fail safely
|
|
255
|
-
|
|
256
|
-
The system must never silently discard unsupported content that is technically preservable.
|
|
257
|
-
|
|
258
|
-
Examples of likely preserve-only features include:
|
|
259
|
-
|
|
260
|
-
- complex fields
|
|
261
|
-
- content controls
|
|
262
|
-
- advanced section metadata
|
|
263
|
-
- embedded objects
|
|
264
|
-
- custom XML data bindings
|
|
265
|
-
- unsupported revision classes
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## 12. Compatibility environments
|
|
270
|
-
|
|
271
|
-
## 12.1 Required environments
|
|
272
|
-
|
|
273
|
-
Every compatibility release must be tested against:
|
|
274
|
-
|
|
275
|
-
1. recent Microsoft Word desktop on Windows
|
|
276
|
-
2. recent Microsoft Word on the web
|
|
277
|
-
|
|
278
|
-
## 12.2 Recommended environments
|
|
279
|
-
|
|
280
|
-
- recent Microsoft Word on macOS
|
|
281
|
-
|
|
282
|
-
## 12.3 Host variance handling
|
|
283
|
-
|
|
284
|
-
If behavior differs across hosts, the issue must be categorized as one of:
|
|
285
|
-
|
|
286
|
-
- import variance
|
|
287
|
-
- export variance
|
|
288
|
-
- rendering variance
|
|
289
|
-
- review-behavior variance
|
|
290
|
-
- unsupported host-specific behavior
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## 13. Validation model
|
|
295
|
-
|
|
296
|
-
Compatibility validation must occur at four layers.
|
|
297
|
-
|
|
298
|
-
## 13.1 Layer 1 — Package validation
|
|
299
|
-
|
|
300
|
-
Validate:
|
|
301
|
-
|
|
302
|
-
- ZIP integrity
|
|
303
|
-
- package entry inventory
|
|
304
|
-
- required part presence
|
|
305
|
-
- content type declarations
|
|
306
|
-
- relationship graph integrity
|
|
307
|
-
|
|
308
|
-
## 13.2 Layer 2 — XML structural validation
|
|
309
|
-
|
|
310
|
-
Validate:
|
|
311
|
-
|
|
312
|
-
- generated XML is parseable
|
|
313
|
-
- namespaces are correct
|
|
314
|
-
- required attributes/elements exist for supported structures
|
|
315
|
-
- references are internally consistent
|
|
316
|
-
- comments, numbering, and style references resolve correctly
|
|
317
|
-
|
|
318
|
-
## 13.3 Layer 3 — Semantic validation
|
|
319
|
-
|
|
320
|
-
Validate:
|
|
321
|
-
|
|
322
|
-
- no impossible supported document structures
|
|
323
|
-
- no invalid comment anchors
|
|
324
|
-
- no invalid revision boundaries
|
|
325
|
-
- no stale preserve-only bindings
|
|
326
|
-
- no unsupported destructive rewrites were introduced
|
|
327
|
-
|
|
328
|
-
## 13.4 Layer 4 — Real-Word validation
|
|
329
|
-
|
|
330
|
-
Validate by opening in real Word environments and checking:
|
|
331
|
-
|
|
332
|
-
- open success
|
|
333
|
-
- absence of repair prompt
|
|
334
|
-
- comments still function
|
|
335
|
-
- revisions still function
|
|
336
|
-
- continued editing is possible
|
|
337
|
-
- re-save remains stable
|
|
338
|
-
|
|
339
|
-
---
|
|
340
|
-
|
|
341
|
-
## 14. End-to-end compatibility scenarios
|
|
342
|
-
|
|
343
|
-
These scenarios are mandatory.
|
|
344
|
-
|
|
345
|
-
## 14.1 Open-save-unchanged
|
|
346
|
-
|
|
347
|
-
Flow:
|
|
348
|
-
1. import `.docx`
|
|
349
|
-
2. make no content edits
|
|
350
|
-
3. export `.docx`
|
|
351
|
-
4. open in Word
|
|
352
|
-
|
|
353
|
-
Pass criteria:
|
|
354
|
-
- no repair prompt
|
|
355
|
-
- no content loss
|
|
356
|
-
- no broken comments or revisions
|
|
357
|
-
- no package integrity failure
|
|
358
|
-
|
|
359
|
-
## 14.2 Open-edit-save-reopen
|
|
360
|
-
|
|
361
|
-
Flow:
|
|
362
|
-
1. import `.docx`
|
|
363
|
-
2. edit supported content
|
|
364
|
-
3. export `.docx`
|
|
365
|
-
4. reopen in Word
|
|
366
|
-
|
|
367
|
-
Pass criteria:
|
|
368
|
-
- edits are present
|
|
369
|
-
- surrounding content remains intact
|
|
370
|
-
- supported semantics remain valid
|
|
371
|
-
|
|
372
|
-
## 14.3 Comment round trip
|
|
373
|
-
|
|
374
|
-
Flow:
|
|
375
|
-
1. import `.docx` with comments or add comments in component
|
|
376
|
-
2. export `.docx`
|
|
377
|
-
3. reopen in Word
|
|
378
|
-
|
|
379
|
-
Pass criteria:
|
|
380
|
-
- comments remain present
|
|
381
|
-
- anchors are correct
|
|
382
|
-
- comment text remains intact
|
|
383
|
-
- thread structure remains coherent where supported
|
|
384
|
-
|
|
385
|
-
## 14.4 Track-changes round trip
|
|
386
|
-
|
|
387
|
-
Flow:
|
|
388
|
-
1. import or create tracked insertions/deletions
|
|
389
|
-
2. export `.docx`
|
|
390
|
-
3. reopen in Word
|
|
391
|
-
4. accept or reject changes in Word
|
|
392
|
-
|
|
393
|
-
Pass criteria:
|
|
394
|
-
- revisions remain recognized as revisions
|
|
395
|
-
- final accepted/rejected content is correct
|
|
396
|
-
- no corruption occurs during review actions
|
|
397
|
-
|
|
398
|
-
## 14.5 Word re-save stability
|
|
399
|
-
|
|
400
|
-
Flow:
|
|
401
|
-
1. export `.docx` from component
|
|
402
|
-
2. open in Word
|
|
403
|
-
3. save from Word
|
|
404
|
-
4. compare semantic structure
|
|
405
|
-
|
|
406
|
-
Pass criteria:
|
|
407
|
-
- no catastrophic drift
|
|
408
|
-
- no repair prompt
|
|
409
|
-
- no unexpected loss of supported content
|
|
410
|
-
|
|
411
|
-
## 14.6 Unsupported-content survival
|
|
412
|
-
|
|
413
|
-
Flow:
|
|
414
|
-
1. import fixture containing preserve-only content
|
|
415
|
-
2. edit unrelated supported content
|
|
416
|
-
3. export `.docx`
|
|
417
|
-
4. reopen in Word
|
|
418
|
-
|
|
419
|
-
Pass criteria:
|
|
420
|
-
- preserve-only content still exists
|
|
421
|
-
- unrelated edits are applied correctly
|
|
422
|
-
- no repair prompt appears
|
|
423
|
-
|
|
424
|
-
---
|
|
425
|
-
|
|
426
|
-
## 15. Feature-specific compatibility tests
|
|
427
|
-
|
|
428
|
-
## 15.1 Paragraphs and runs
|
|
429
|
-
|
|
430
|
-
Required tests:
|
|
431
|
-
- plain paragraphs
|
|
432
|
-
- mixed formatting within runs
|
|
433
|
-
- multiple adjacent marks
|
|
434
|
-
- long-form prose documents
|
|
435
|
-
|
|
436
|
-
Pass criteria:
|
|
437
|
-
- text preserved
|
|
438
|
-
- formatting preserved within declared support
|
|
439
|
-
- paragraph segmentation unchanged except by intended edit
|
|
440
|
-
|
|
441
|
-
## 15.2 Lists and numbering
|
|
442
|
-
|
|
443
|
-
Required tests:
|
|
444
|
-
- ordered lists
|
|
445
|
-
- bullet lists
|
|
446
|
-
- nested lists
|
|
447
|
-
- restart cases where supported
|
|
448
|
-
- list edits adjacent to comments/revisions
|
|
449
|
-
|
|
450
|
-
Pass criteria:
|
|
451
|
-
- numbering remains coherent
|
|
452
|
-
- nesting remains correct
|
|
453
|
-
- no accidental flattening or renumbering beyond accepted normalization
|
|
454
|
-
|
|
455
|
-
## 15.3 Tables
|
|
456
|
-
|
|
457
|
-
Required tests:
|
|
458
|
-
- simple tables
|
|
459
|
-
- merged cells
|
|
460
|
-
- content edits inside cells
|
|
461
|
-
- comments/revisions in tables where supported
|
|
462
|
-
|
|
463
|
-
Pass criteria:
|
|
464
|
-
- no structural corruption
|
|
465
|
-
- cell content preserved
|
|
466
|
-
- supported merges preserved
|
|
467
|
-
|
|
468
|
-
## 15.4 Images and hyperlinks
|
|
469
|
-
|
|
470
|
-
Required tests:
|
|
471
|
-
- inline and block images where supported
|
|
472
|
-
- linked text
|
|
473
|
-
- image-heavy fixtures
|
|
474
|
-
|
|
475
|
-
Pass criteria:
|
|
476
|
-
- media relationships remain valid
|
|
477
|
-
- images display after reopen
|
|
478
|
-
- links still resolve correctly
|
|
479
|
-
|
|
480
|
-
## 15.5 Comments
|
|
481
|
-
|
|
482
|
-
Required tests:
|
|
483
|
-
- import existing comments
|
|
484
|
-
- add new comment
|
|
485
|
-
- edit comment text
|
|
486
|
-
- reply/thread cases where supported
|
|
487
|
-
- resolve/unresolve where represented
|
|
488
|
-
- delete anchor edge cases
|
|
489
|
-
|
|
490
|
-
Pass criteria:
|
|
491
|
-
- no orphaned references without explicit degraded-state handling
|
|
492
|
-
- anchors remain stable
|
|
493
|
-
- authorship/order remain coherent where supported
|
|
494
|
-
|
|
495
|
-
## 15.6 Tracked insertions/deletions
|
|
496
|
-
|
|
497
|
-
Required tests:
|
|
498
|
-
- insert text with track changes on
|
|
499
|
-
- delete text with track changes on
|
|
500
|
-
- mixed editing around existing revisions
|
|
501
|
-
- accept/reject in Word
|
|
502
|
-
- accept/reject in component and reopen in Word
|
|
503
|
-
|
|
504
|
-
Pass criteria:
|
|
505
|
-
- no invalid overlapping boundaries
|
|
506
|
-
- revisions remain reviewable in Word
|
|
507
|
-
- final content after accept/reject is correct
|
|
508
|
-
|
|
509
|
-
## 15.7 Preserve-only features
|
|
510
|
-
|
|
511
|
-
Required tests for each preserve-only class:
|
|
512
|
-
- import original fixture
|
|
513
|
-
- edit unrelated supported content
|
|
514
|
-
- export
|
|
515
|
-
- reopen in Word
|
|
516
|
-
|
|
517
|
-
Pass criteria:
|
|
518
|
-
- preserve-only feature survives within declared tolerance
|
|
519
|
-
- no destructive rewrite is introduced
|
|
520
|
-
|
|
521
|
-
---
|
|
522
|
-
|
|
523
|
-
## 16. Golden compatibility corpus
|
|
524
|
-
|
|
525
|
-
A permanent fixture corpus is required.
|
|
526
|
-
|
|
527
|
-
## 16.1 Minimum corpus categories
|
|
528
|
-
|
|
529
|
-
The corpus must include:
|
|
530
|
-
|
|
531
|
-
1. simple prose docs
|
|
532
|
-
2. heading-rich docs
|
|
533
|
-
3. deeply nested lists
|
|
534
|
-
4. merged and complex tables
|
|
535
|
-
5. image-heavy docs
|
|
536
|
-
6. hyperlink-rich docs
|
|
537
|
-
7. comment-heavy docs
|
|
538
|
-
8. heavy redline legal/contract docs
|
|
539
|
-
9. section-break docs
|
|
540
|
-
10. header/footer docs
|
|
541
|
-
11. footnote/endnote docs
|
|
542
|
-
12. Word-web-authored docs
|
|
543
|
-
13. Google Docs exported to Word then edited in Word
|
|
544
|
-
14. LibreOffice exported to Word then edited in Word
|
|
545
|
-
15. preserve-only unsupported-content docs
|
|
546
|
-
16. very large docs for compatibility-under-load testing
|
|
547
|
-
|
|
548
|
-
## 16.2 Fixture metadata
|
|
549
|
-
|
|
550
|
-
Every fixture must have metadata recording:
|
|
551
|
-
|
|
552
|
-
- fixture id
|
|
553
|
-
- origin
|
|
554
|
-
- feature tags
|
|
555
|
-
- expected support class
|
|
556
|
-
- expected preserve-only behavior
|
|
557
|
-
- known limitations
|
|
558
|
-
- baseline pass/fail status
|
|
559
|
-
|
|
560
|
-
## 16.3 Regression policy
|
|
561
|
-
|
|
562
|
-
Any reproducible compatibility bug from production must add a regression fixture whenever legally and operationally possible.
|
|
563
|
-
|
|
564
|
-
---
|
|
565
|
-
|
|
566
|
-
## 17. Comparison and diff strategy
|
|
567
|
-
|
|
568
|
-
Document compatibility must be checked using multiple comparison layers.
|
|
569
|
-
|
|
570
|
-
## 17.1 Package diff
|
|
571
|
-
|
|
572
|
-
Compare:
|
|
573
|
-
- part inventory
|
|
574
|
-
- relationships
|
|
575
|
-
- content types
|
|
576
|
-
- media inventory
|
|
577
|
-
|
|
578
|
-
## 17.2 Normalized XML diff
|
|
579
|
-
|
|
580
|
-
Compare XML after normalization that ignores benign noise such as:
|
|
581
|
-
- attribute order
|
|
582
|
-
- insignificant whitespace
|
|
583
|
-
- equivalent producer-specific normalization
|
|
584
|
-
|
|
585
|
-
## 17.3 Semantic diff
|
|
586
|
-
|
|
587
|
-
Compare effective meaning for:
|
|
588
|
-
- text flow
|
|
589
|
-
- paragraph structure
|
|
590
|
-
- list structure
|
|
591
|
-
- table structure
|
|
592
|
-
- comments and anchors
|
|
593
|
-
- revisions
|
|
594
|
-
- styles references where supported
|
|
595
|
-
|
|
596
|
-
## 17.4 Behavioral diff
|
|
597
|
-
|
|
598
|
-
Check behavior in Word:
|
|
599
|
-
- opens cleanly
|
|
600
|
-
- comments function
|
|
601
|
-
- revisions function
|
|
602
|
-
- continued editing works
|
|
603
|
-
- re-save remains stable
|
|
604
|
-
|
|
605
|
-
---
|
|
606
|
-
|
|
607
|
-
## 18. Acceptable and unacceptable drift
|
|
608
|
-
|
|
609
|
-
## 18.1 Acceptable drift
|
|
610
|
-
|
|
611
|
-
Examples:
|
|
612
|
-
- benign XML normalization by Word
|
|
613
|
-
- reordered non-semantic package internals
|
|
614
|
-
- equivalent serialization differences with no semantic effect
|
|
615
|
-
|
|
616
|
-
## 18.2 Unacceptable drift
|
|
617
|
-
|
|
618
|
-
Examples:
|
|
619
|
-
- Word repair prompt
|
|
620
|
-
- silent supported-content loss
|
|
621
|
-
- broken comment anchors
|
|
622
|
-
- revisions flattened unexpectedly
|
|
623
|
-
- numbering corruption
|
|
624
|
-
- table corruption
|
|
625
|
-
- preserve-only content dropped
|
|
626
|
-
- broken relationships
|
|
627
|
-
- inability to continue editing in Word
|
|
628
|
-
|
|
629
|
-
---
|
|
630
|
-
|
|
631
|
-
## 19. Automated compatibility testing requirements
|
|
632
|
-
|
|
633
|
-
The automated test suite must include:
|
|
634
|
-
|
|
635
|
-
1. package integrity tests
|
|
636
|
-
2. XML parse/structure tests
|
|
637
|
-
3. feature-matrix coverage tests
|
|
638
|
-
4. comment anchor tests
|
|
639
|
-
5. revision-boundary tests
|
|
640
|
-
6. list/numbering round-trip tests
|
|
641
|
-
7. table round-trip tests
|
|
642
|
-
8. preserve-only survival tests
|
|
643
|
-
9. Word re-save semantic drift tests where automatable
|
|
644
|
-
10. large-document compatibility-safe mode tests
|
|
645
|
-
|
|
646
|
-
Automated tests must fail the build for any regression affecting `supported-roundtrip` features or preserve-only guarantees.
|
|
647
|
-
|
|
648
|
-
---
|
|
649
|
-
|
|
650
|
-
## 20. Manual certification requirements
|
|
651
|
-
|
|
652
|
-
For every release candidate:
|
|
653
|
-
|
|
654
|
-
1. run automated compatibility suite
|
|
655
|
-
2. open representative exported fixtures in recent Word desktop
|
|
656
|
-
3. verify no repair prompt
|
|
657
|
-
4. inspect comments and revisions
|
|
658
|
-
5. save from Word
|
|
659
|
-
6. reopen and compare semantics
|
|
660
|
-
7. test representative fixtures in Word on the web
|
|
661
|
-
8. record host-specific issues
|
|
662
|
-
|
|
663
|
-
Manual certification is mandatory for:
|
|
664
|
-
|
|
665
|
-
- comments
|
|
666
|
-
- tracked insertions/deletions
|
|
667
|
-
- complex tables
|
|
668
|
-
- preserve-only fixtures
|
|
669
|
-
- large documents
|
|
670
|
-
|
|
671
|
-
---
|
|
672
|
-
|
|
673
|
-
## 21. Release gates
|
|
674
|
-
|
|
675
|
-
A release may ship only if all of the following are true:
|
|
676
|
-
|
|
677
|
-
1. no P0 compatibility defect is open
|
|
678
|
-
2. no newly introduced repair-prompt regression exists
|
|
679
|
-
3. supported-roundtrip fixtures pass mandatory scenarios
|
|
680
|
-
4. comments certification passes
|
|
681
|
-
5. tracked-changes certification passes
|
|
682
|
-
6. preserve-only fixtures survive within declared tolerance
|
|
683
|
-
7. required Word environments pass release certification
|
|
684
|
-
|
|
685
|
-
---
|
|
686
|
-
|
|
687
|
-
## 22. Compatibility defect severity
|
|
688
|
-
|
|
689
|
-
### P0
|
|
690
|
-
- Word repair prompt
|
|
691
|
-
- unreadable/corrupted export
|
|
692
|
-
- major silent content loss
|
|
693
|
-
|
|
694
|
-
### P1
|
|
695
|
-
- comments or revisions broken in supported flows
|
|
696
|
-
- numbering or tables structurally broken
|
|
697
|
-
- preserve-only content dropped
|
|
698
|
-
|
|
699
|
-
### P2
|
|
700
|
-
- non-fatal semantic drift
|
|
701
|
-
- host-specific behavior mismatch
|
|
702
|
-
- significant but non-catastrophic formatting/structure issue
|
|
703
|
-
|
|
704
|
-
### P3
|
|
705
|
-
- benign serialization variance
|
|
706
|
-
- low-impact metadata mismatch
|
|
707
|
-
- minor normalization noise
|
|
708
|
-
|
|
709
|
-
---
|
|
710
|
-
|
|
711
|
-
## 23. Compatibility reporting
|
|
712
|
-
|
|
713
|
-
In development and test modes, the system should emit a structured compatibility report for each export containing:
|
|
714
|
-
|
|
715
|
-
- package validation result
|
|
716
|
-
- XML validation result
|
|
717
|
-
- support-class summary
|
|
718
|
-
- preserve-only warnings
|
|
719
|
-
- unsupported-fatal detections
|
|
720
|
-
- round-trip risk flags
|
|
721
|
-
- fixture/test references where relevant
|
|
722
|
-
|
|
723
|
-
---
|
|
724
|
-
|
|
725
|
-
## 24. Long-term compatibility policy
|
|
726
|
-
|
|
727
|
-
The compatibility program must assume Word behavior evolves over time.
|
|
728
|
-
|
|
729
|
-
Therefore the team must:
|
|
730
|
-
|
|
731
|
-
- continuously refresh the fixture corpus with newly created Word files
|
|
732
|
-
- regularly certify against recent Word environments
|
|
733
|
-
- preserve unknown markup whenever safe
|
|
734
|
-
- avoid destructive rewriting of unsupported structures
|
|
735
|
-
- revise support classifications when evidence changes
|
|
736
|
-
|
|
737
|
-
---
|
|
738
|
-
|
|
739
|
-
## 25. Exit criteria
|
|
740
|
-
|
|
741
|
-
This compatibility program is considered operational only when all of the following exist:
|
|
742
|
-
|
|
743
|
-
- documented compatibility classes
|
|
744
|
-
- fixture corpus with metadata
|
|
745
|
-
- automated package/XML/semantic validation
|
|
746
|
-
- mandatory end-to-end round-trip tests
|
|
747
|
-
- manual Word certification procedure
|
|
748
|
-
- release gates tied to compatibility severity
|
|
749
|
-
|
|
750
|
-
Until then, the product cannot claim reliable Word round-trip compatibility.
|
|
751
|
-
|