Release note · August 3, 2026

A DDE source can change without changing Word text

By SybilGambleyyu · Document Change Assurance Benchmark 0.7.0

A Word field can retain its stored result text while its instruction changes. That distinction matters when the instruction identifies material outside the package: text-only review sees the same result, while a static package reviewer can make the stored source boundary explicit without evaluating the field.

Document Change Assurance Benchmark (DCAB) 0.7.0 adds its eighteenth deterministic paired package: external.dde_field_source_retargeted. Both sides retain the same complete w:fldSimple shape, field result, application token, item token, package-member set, and stored w:t sequence. Only word/document.xml changes, and the change is confined to the private source-file argument.

Review a stored instruction; do not process it

Microsoft’s Word field specification for DDE defines separate application, source-file, and source-item arguments for information linked from another application. DCAB fixes the synthetic application and item arguments, uses a synthetic local-style source string, and changes only that source-file argument.

Microsoft’s DDE security advisory documents Office controls for processing DDE fields. That makes the stored instruction a useful review surface; it does not turn this corpus into a client-behavior or exploit test. The builder, verifier, scorer, and adapter never resolve a source, update a field, open Word, start an application, invoke DDE, or claim what an Office client will do.

A deterministic field-instruction boundary

The independent verifier checks the exact fixed field shape and instruction components, deterministic package bytes, stable member set, unchanged stored Word text, and exact one-member pair boundary. The standard python-docx reader opens all 34 .docx fixtures, and its lower-level OPC reader opens all 36 packages.

The optional local DocFence 0.27.0 adapter maps the public external_field_inventory_changed evidence while the aggregate DDE-field count remains one. It uses aggregate evidence only, never the source string or a private signature.

The release passed 14 tests locally, then passed hosted CI on Python 3.11, 3.12, and 3.13 plus a clean DocFence installation. Fresh wheel and source-distribution installs, the uploaded GitHub artifacts, and a fresh Hugging Face dataset download each validate the bundled 18-case corpus.

Use the release

python -m pip install https://github.com/SybilGambleyyu/document-change-benchmark/releases/download/v0.7.0/document_change_benchmark-0.7.0-py3-none-any.whl
dcab validate
dcab docfence-observations --executable docfence --output observations.json
dcab score --observations observations.json --strict

DCAB 0.7.0 retains fixture schema version 1 because the public truth and observation envelopes are unchanged; it extends the corpus from 17 to 18 cases. It does not claim a source exists, is safe, is reachable, was processed, or will be used by any client. It supplies a reproducible static boundary for serious document review.

The MIT-licensed source, generated fixtures, structural verifier, release artifacts, and research notes are available on GitHub. The fixture corpus is also mirrored as a public Hugging Face dataset.