SybilGambleyyuA deterministic Office 2013 commentsExtended done-state change case for static WordprocessingML review.
Text comparison is necessary for document review, but it is not sufficient for every stored WordprocessingML change. A document can retain its visible text, comment anchor, ordinary comment content, relationships, and package member set while a persisted comment state changes elsewhere in the package.
Document Change Assurance Benchmark (DCAB) 0.12.0 adds a small, deterministic case for exactly that boundary: review.modern_comment_done_state_changed.
Both packages hold fixed:
w:t value.Only word/commentsExtended.xml changes. Its sole Office 2013 w15:commentEx record moves from explicit done="0" to done="1".
Microsoft describes the commentsExtended part as carrying additional information about comments represented in the classic comments part. Its w15:commentEx schema reference says the construct is available in Office 2013 and later, associates paraId with the comment's final paragraph, and defines done="1" as a user indication that the associated comment is done.
That makes the stored metadata reviewable. It does not make it a safe basis for overclaiming. The fixture does not open Word, render or update comments, resolve a thread, authenticate a person, communicate with a service, or assert a particular client UI or workflow behavior. It tests one direct package-data boundary.
The public truth file says only that the stored done state changed and that the reference disposition is review. It excludes fixture-specific comment text, author metadata, paragraph identifiers, relationship paths, and raw serialization details.
DCAB's structural verifier checks the package topology and the exact one-member delta. Its independent python-docx check opens all 44 .docx fixtures and its OPC reader opens all 46 packages. The optional DocFence 0.27 adapter observes only aggregate inventory evidence: one classic comment, one extension record, and a resolved-comment count moving from zero to one, while people, thread, reaction, comments-ID, and extensible-comment counts remain zero.
The 0.12.0 release passed hosted Python 3.11–3.13 CI, a clean DocFence adapter install, fresh wheel and source-distribution validation, and a fresh Hugging Face dataset download.
python -m pip install https://github.com/SybilGambleyyu/document-change-benchmark/releases/download/v0.12.0/document_change_benchmark-0.12.0-py3-none-any.whl
dcab validate
dcab docfence-observations --executable docfence --output observations.json
dcab score --observations observations.json --strict
The benchmark now contains 23 paired synthetic cases and remains on fixture schema version 1. You can find the release artifacts and full static-scope contract on GitHub, and the corpus is mirrored on Hugging Face.