The suggested edit lands as clean text and the revision history is gone
In short
An edit arriving as clean prose cannot be accepted, rejected or attributed, which in a negotiation is worse than sending nothing. The usual cause is a pipeline that rebuilt the document from extracted text instead of editing the file it was sent. The next is a revision written with no author and no date. Open the returned file and count.
Key takeaways
- A change nobody can accept or reject is not a redline. It is a new document with a claim attached to it.
- Editing in place and regenerating from extracted text are different operations, and only one preserves a revision.
- In the WordprocessingML schema, an insertion and a deletion are wrapped elements carrying an author and a date.
- Deleted text is kept in a deletion-specific text element. If the old wording is simply absent, the edit was destructive.
- Comments live in their own part with anchors into the body, so a round trip loses them independently of the text.
- Open the returned package and count revisions before changing a prompt. The file answers the question in a minute.
The counterparty opens the document and sees a contract. Not a marked-up contract, and not a proposal — a contract, whose wording differs from the one they sent in ways they now have to find themselves. Nothing can be accepted, nothing can be rejected, and there is no record of who changed what. In a negotiation this is worse than sending nothing, because it reads as an attempt to slip language through.
This is almost always a document-handling defect rather than a drafting one. The proposed wording is often fine. The pipeline simply produced a new file instead of editing the one it was given, and the revision record was never created because there was never anything to record it against.
Open the returned package before you touch a prompt
The file carries the diagnosis. An Office Open XML document — the .docx family — is a ZIP package holding XML parts, so the check needs no special tooling and takes about 1 minute per file.
- Copy the returned file, rename the copy to end in .zip, and open it. The main body part is 1 XML file inside the package, and a text editor is enough for every step below.
- Search for the insertion and deletion elements. In WordprocessingML, published as ISO/IEC 29500, an inserted run is wrapped in a w:ins element and a deleted run in w:del. Zero matches means no change was tracked at all, whatever the document looks like on screen.
- Check that each revision carries its attributes. Both wrappers take an author, a date and an identifier — w:author, w:date and w:id. A revision with an empty author is visible but unattributable, which most firms treat as unusable.
- Look for deleted text specifically. Removed wording is preserved in a deletion-specific text element rather than the ordinary one, so if the previous language is nowhere in the file, the edit was destructive and cannot be rejected.
- Count the comment anchors and compare against what you sent. Comments live in a separate part with start and end anchors into the body, so they are lost independently of the text and nobody notices until the thread is needed.
- Compare the body against the original for things nobody edited. Reset numbering, lost headers, changed styles and reordered schedules all point at a rebuild rather than an edit, and they are the loudest signal in the file.
What a tracked change actually is inside the file
A tracked change is not a colour and not a formatting state. It is structure: the inserted content sits inside an insertion element, the removed content stays in the file inside a deletion element, and each carries the author and timestamp that make it attributable. Accepting a change means unwrapping the insertion and discarding the deletion; rejecting it means the reverse. Both operations are only possible because the old and new text are present at the same time.
That has 3 consequences worth designing around. A pipeline that emits final text has thrown away half the information the format requires. A pipeline that deletes text outright has removed the thing the other side would reject. And a pipeline that writes revisions without an author has produced changes that the receiving firm cannot audit, which matters if anyone later has to reconstruct who proposed what — the record set discussed in what a system must hold to reproduce an assisted output.
5 ways an edit arrives as ordinary prose
Match the row against what the package showed. The first 2 are architectural and are the reason a prompt change never helps; the last 3 are implementation details in the writing step and are usually a day of work each.
| What the file shows | Cause | What to change |
|---|---|---|
| No revision elements anywhere; styles, numbering and headers reset | The pipeline extracted text, generated a new document and wrote it out | Edit the original package in place. Generation is a different operation with a different purpose |
| No revisions; formatting roughly preserved; footnotes and comments missing | The file was round-tripped through an intermediate format such as Markdown, HTML or plain text | Keep the delivered file as the working artefact and apply edits to it directly |
| Changes visible but the author is blank or identical on every revision | The writer emitted the wrapper and omitted the attributes, or hard-coded one value | Set author and date per revision, and agree the author name the firm will use externally |
| Body text correct, comment thread gone | The comments part was not carried through, or its anchors no longer resolve | Copy the comments part and verify each anchor range still binds after the edit |
| New wording present, old wording nowhere in the file | Text was replaced in place rather than wrapped as a deletion | Wrap removed text as a deletion so there is something for the other side to reject |
The conversion that quietly eats the comments
The intermediate-format route is popular because it makes the model's job easy: convert to plain text, edit the text, convert back. It is also the single most destructive thing you can do to a negotiated document. Comments, revisions from earlier rounds, cross-reference fields, numbering definitions and schedule ordering are 5 kinds of structure, and structure is exactly what a Markdown or HTML conversion is designed to discard.
The damage compounds on executed and heavily amended paper, where numbering is already fragile before anything automated touches it — the pathologies isolated in extraction that falls apart on the signed conformed copy. A round trip on a clean draft loses a comment thread. The same round trip on a conformed copy with 3 appended schedules can silently reorder them.
Accepting and rejecting a change is only possible because the old and new wording are both present. A pipeline that emits final text has already thrown away the half that makes it a negotiation.
An unattributed revision is one the other side will not act on
Where revisions are written correctly but carry a blank or machine-generated author, the file is technically valid and practically unusable. A reviewer on the receiving side works by author: accept everything from their own counsel, read everything from the counterparty, treat anything unattributed as suspect. A revision with no author defeats that entirely, and a document where all 40 changes carry the same timestamp to the second announces that they were not made by a person.
- Agree the external author name before the first document goes out. Most firms use the firm or the responsible lawyer, and changing it midway through a negotiation makes the earlier rounds look tampered with.
- Keep the timestamps honest rather than uniform. If every revision shares one instant, say so in the covering note instead of letting the file imply a human sat there.
- Never merge machine and human revisions under a single author. The lawyer's judgement and the system's suggestion are different objects and the receiving side is entitled to tell them apart.
- Preserve revisions from earlier rounds. Dropping the counterparty's own tracked changes while adding yours is the fastest way to lose the negotiation's memory.
Edit the file you were sent, or send a different artefact entirely
There are exactly 2 defensible architectures and the failure above is what happens when a team ends up between them. The first is in-place editing: the delivered package is opened, revisions are written into it, and it is returned as the same document with history intact. The second is not to send a document at all — produce a written list of positions instead, which is a legitimate output with different readers, weighed in a summary of deviations against a marked-up draft.
Generation from scratch is a third operation and it belongs to a different moment in the deal: producing a first draft from agreed heads of terms, where there is no counterparty document to preserve, is the workflow in from an agreed term sheet to a first draft. The mistake is using a generator where a document was sent to you, and then presenting the output as a markup.
Whichever route you take, make the check above part of the pipeline rather than part of someone's memory: assert on every returned file that revision elements exist, that each carries an author and a date, and that the comment count matches the input. That assertion is 20 lines of code, it fails loudly, and it is the difference between a document tool and a document risk. Building that kind of guarded pipeline is ordinary MVP and product engineering, and it sits with the rest of contract review, clause risk and redlining in the work we do with legal teams.
Frequently asked questions
Short answers to the follow-ups this page tends to raise.
Why does an automated redline lose track changes in a Word document?
Because the pipeline usually rebuilt the file rather than editing it. Extracting the text, generating new wording and writing a fresh document produces a valid file with no revision history in it, because no revision was ever recorded — there was nothing to record against. The same thing happens when the document is round-tripped through an intermediate format such as Markdown or plain text, which discards structure by design.
How can I tell whether a returned file actually contains tracked changes?
Rename a copy to end in .zip, open it, and search the body part for the insertion and deletion elements defined by the WordprocessingML schema. No matches means nothing was tracked, however the document looks on screen. If matches exist, check each one carries an author and a date, and confirm that removed wording is still present inside the deletion element rather than simply gone.
Is it acceptable to write suggested edits directly into the document body?
Only when the recipient has agreed to receive a clean draft. Writing into the body destroys the accept-and-reject mechanism the other side relies on, removes the record of who proposed what, and makes it impossible to see what changed without a manual comparison. Where a clean output is genuinely wanted, say so explicitly in the covering message rather than letting the file imply a markup that is not there.
Why do comments disappear even when the tracked changes survive?
Because comments are stored in their own part of the package with anchors pointing into the body, so they travel separately from the text. A pipeline that copies the body and rewrites it will carry the words and drop the comment part, or keep the part while breaking the anchor ranges it depends on. Count comments on input and output as a routine assertion — it is the only reliable way to catch this.
Should machine-proposed edits use the same author name as the lawyer's?
No. The receiving side works author by author, accepting some sources and reading others closely, and merging machine suggestions into the lawyer's name removes a distinction they are entitled to. Use a separate, agreed author for automated revisions, fix it before the first document goes out, and keep it stable — changing the author name mid-negotiation makes the earlier rounds look altered.
- redlining
- tracked changes
- document pipelines
- diagnosis
The work behind this page
Builds from our portfolio that this page draws on.
Brief Forge
Contract review AI for solo lawyers and small firms — extract, score, and redline contracts in minutes.
Legal TechNotewell
An AI meeting assistant that records and transcribes every meeting, extracts the decisions and action items, assigns owners and due dates, and tracks follow-through until it's done.
Productivity AIRead next
- The review is correct, and the contract was amended two years agoEvery clause finding is defensible and the conclusion is void, because the file under review was superseded by an amendment nobody filed against it. The check runs before the analysis, not after.diagnostic
- Extraction works on the clean draft and fails on the signed executed copyThe pipeline scores well on the draft and loses clause boundaries on the file that was actually signed. Six pathologies that exist only on executed documents, and what the system should refuse to answer.diagnostic
- Defined terms: no clause can be judged without its definitionA capitalised term carries whatever meaning the contract assigns it, wherever that assignment happens to live. Judge the clause without resolving it and you have judged a sentence you have not read.definition
- Every clause comes back flagged, so the reviewer stops reading the flagsAlert fatigue in contract review is a calibration problem with a measurement attached. Fifty graded flags say whether the flags are wrong or merely unranked, and the two need opposite fixes.diagnostic
- Fallback positions: preferred, acceptable and walk-away, in one ladderA playbook that records only your ideal clause can say the counterparty deviated. It cannot say what to send back, which is the part a negotiator needs.definition
- Order of precedence: the clause that decides which document winsA precedence clause ranks a stack of documents. It is also why a single file is an incomplete unit of review: the same words bind or not, depending on which instrument controls.definition
Working on something in this space?
Tell us where you are in a sentence or two. We'll tell you honestly whether we're the right team, and what a sensible first slice of the work looks like.
Start the conversation