---
title: "Your documents, opened: what the engine read, what you edited, and the receipt of every change."
seo_title: "Your documents: X-ray, editions, and receipt | SazAI"
description: "Every document opens with its full X-ray, editions linked to the original, and a receipt for every change."
tags: [marketing]
---

> A file you open is one thing; a document you can audit is another. What changes between the two is the reading that happens on entry, once, and everything that stays on record because of it.

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-see)" name="file" size="36"></sz-icon></div>

<h2 id="unit">The unit of your format</h2>

<h3 class="sub">The conversation changes word because the unit changes nature</h3>

A presentation has slides. A document has sections. A spreadsheet has sheets. A PDF has
pages, which are already the final rendering and not a space still to be laid out. The screens
and the agent use the word your format uses, not the word of the most common format.

<figure class="viz duo four" role="group" aria-label="The unit of each format: slide in the presentation, section in the document, sheet in the spreadsheet, page in the PDF">
<div class="side"><svg viewBox="0 0 24 24" fill="none" stroke="var(--verb-see)" stroke-width=".75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="width:44px;height:44px"><rect x="3" y="4" width="18" height="13" rx="1"/><line x1="9" y1="21" x2="15" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg><b>slide</b>presentation</div>
<div class="side"><svg viewBox="0 0 24 24" fill="none" stroke="var(--verb-see)" stroke-width=".75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="width:44px;height:44px"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><polyline points="13 2 13 9 20 9"/><line x1="8" y1="13" x2="16" y2="13"/><line x1="8" y1="17" x2="14" y2="17"/></svg><b>section</b>document</div>
<div class="side"><svg viewBox="0 0 24 24" fill="none" stroke="var(--verb-see)" stroke-width=".75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="width:44px;height:44px"><rect x="3" y="3" width="18" height="18" rx="1"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="3" y1="15" x2="21" y2="15"/><line x1="9" y1="3" x2="9" y2="21"/></svg><b>sheet</b>spreadsheet</div>
<div class="side"><svg viewBox="0 0 24 24" fill="none" stroke="var(--verb-see)" stroke-width=".75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="width:44px;height:44px"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><polyline points="13 2 13 9 20 9"/><rect x="8" y="12" width="8" height="6" rx="1"/></svg><b>page</b>PDF</div>
</figure>

Text documents are the one case where two words are needed, and it is worth saying why. A
document is counted in pages, which is what you see and what you would say out loud. It is
analyzed by section, and a section here is a layout break: page size, orientation, margins,
headers, columns. A document with no explicit break has a single section, so for an ordinary
company document the deep exam runs per document, not per page. That difference is stated,
not smoothed over.

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-see)" name="search" size="36"></sz-icon></div>

<h2 id="x-ray">The X-ray, whole</h2>

<h3 class="sub">One reading, on entry, and everything the package carries gets an address</h3>

An Office file is a package, and SazAI Corpus reads the whole package, once, through an engine
that reads the format specification and does not interpret. The <dfn tabindex="0" data-hint="All the text in the document, each passage tied to the slide and the shape it came from. Extracted once, with no interpretation.">X-ray</dfn> is what comes out of that reading, and it is more
complete than the presentation showed.

<figure class="viz duo four xray" role="group" aria-label="What reading an Office package delivers: text with origin, comments with state, notes and hidden slides, document properties">
<div class="side"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="8" y="8" width="32" height="22" rx="2" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="14" y1="16" x2="30" y2="16" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="14" y1="22" x2="26" y2="22" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="34" cy="36" r="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="34" y1="30" x2="34" y2="33" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="30" y1="22" x2="34" y2="30" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none" stroke-dasharray="2 2"/></svg><b>text with origin</b>each passage, the slide, and the shape it came from</div>
<div class="side"><svg viewBox="0 0 48 48" aria-hidden="true"><path d="M10 10h28a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H22l-8 7v-7h-4a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="18" cy="20" r="1.6" fill="currentColor"/><circle cx="24" cy="20" r="1.6" fill="currentColor"/><circle cx="30" cy="20" r="1.6" fill="currentColor"/></svg><b>comments with state</b>author, anchor, thread, resolved, with a task</div>
<div class="side"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="8" y="8" width="32" height="20" rx="2" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><rect x="8" y="32" width="32" height="8" rx="1.5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none" stroke-dasharray="3 2"/><line x1="14" y1="36" x2="30" y2="36" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="35" cy="14" r="2" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="31" y1="18" x2="39" y2="10" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>notes and hidden</b>what the presenter was going to say, and what they hid</div>
<div class="side"><svg viewBox="0 0 48 48" aria-hidden="true"><path d="M14 6h14l8 8v28H14z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M28 6v8h8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="19" y1="24" x2="31" y2="24" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="19" y1="30" x2="31" y2="30" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="19" y1="36" x2="26" y2="36" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="12" cy="12" r="4" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="12" y1="10" x2="12" y2="12.5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="12" y1="12.5" x2="13.6" y2="13.6" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>properties</b>who created it, when it was revised, what changed</div>
</figure>

Each piece of text stays tied to the slide and the shape it came from, with the formatting it
carries. Comments come with author, anchor, reply thread, and the two states that matter:
resolved and with a task. The speaker notes come in full. Links, images, and hidden slides all
appear, and the slide someone hid appears for you too, marked as hidden. The properties say
who created it and when it was revised.

The sentence someone pasted into the seventh presentation, and nobody knows where it came
from: the X-ray knows. That is what makes it useful for audit, because every statement in the
document has an address, and the address belongs to the file, not to our opinion about it.
Nothing beyond what is in there.

</div>

<div class="chap">

<div class="ico-col"><span class="ico" style="color:var(--verb-see)"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="8" y="26" width="7" height="14" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.5"/><rect x="20.5" y="14" width="7" height="26" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.5"/><rect x="33" y="20" width="7" height="20" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></span></div>

<h2 id="signals">What the engine measured</h2>

<h3 class="sub">A deck knows it is repeating itself before you do</h3>

The engine measures the whole document and stores the result under the <dfn tabindex="0" data-hint="The record of which file produced what: each run keeps where it came from and what it produced.">lineage</dfn> of that run,
that is, which file produced what. The <dfn tabindex="0" data-hint="What the engine measured at upload, named: near-identical slides, a title that does not match the body, text that will overflow, mixed language.">signals</dfn> have names:

<figure class="viz duo four" role="group" aria-label="Four named signals: near-identical slides, a title that does not match the body, text that overflows the box, mixed language">
<div class="side"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="6" y="10" width="26" height="20" rx="2" fill="none" stroke="currentColor" stroke-width="1.25"/><rect x="16" y="18" width="26" height="20" rx="2" fill="none" stroke="currentColor" stroke-width="1.25"/></svg><b>near-identical</b>within a deck and across the twelve</div>
<div class="side"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="8" y="9" width="32" height="8" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.25"/><line x1="10" y1="25" x2="38" y2="25" stroke="currentColor" stroke-width="1.25"/><line x1="10" y1="32" x2="38" y2="32" stroke="currentColor" stroke-width="1.25"/><line x1="10" y1="39" x2="28" y2="39" stroke="currentColor" stroke-width="1.25"/><line x1="34" y1="42" x2="42" y2="20" stroke="currentColor" stroke-width="1.25"/></svg><b>title ≠ body</b>what it promises and what it says</div>
<div class="side"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="6" y="12" width="26" height="24" rx="2" fill="none" stroke="currentColor" stroke-width="1.25"/><line x1="11" y1="20" x2="27" y2="20" stroke="currentColor" stroke-width="1.25"/><line x1="11" y1="27" x2="42" y2="27" stroke="currentColor" stroke-width="1.25"/><line x1="11" y1="34" x2="20" y2="34" stroke="currentColor" stroke-width="1.25"/></svg><b>will overflow</b>the box, once translated</div>
<div class="side"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="6" y="8" width="36" height="32" rx="2" fill="none" stroke="currentColor" stroke-width="1.25"/><line x1="12" y1="17" x2="36" y2="17" stroke="currentColor" stroke-width="1.25"/><line x1="12" y1="24" x2="30" y2="24" stroke="currentColor" stroke-width="1.25"/><line x1="12" y1="31" x2="36" y2="31" stroke="currentColor" stroke-width="1.25" stroke-dasharray="2 2"/></svg><b>mixed language</b>and a term spelled two different ways</div>
</figure>

Deterministic, and with no opinion. The engine tells you the third and the ninth presentations
are nearly the same; what to do about it is a conversation with [the agent](talk). The
measurements for each document stay available for reading across documents, so a whole
portfolio can be read without opening one file at a time.

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-see)" name="compare" size="36"></sz-icon></div>

<h2 id="editions">Editions and comparison</h2>

<h3 class="sub">Three relations declared before the first number</h3>

Your proposal is on its fourth version and nobody remembers what the third one said. Every
<dfn tabindex="0" data-hint="A translation or revision of your document, stored as a complete document, with its own X-ray and measurement.">edition</dfn> of yours, translation or revision, enters the vault as a complete document, with its own X-ray and
measurement. Compare puts your original in the first column, always, and declares the relation
between the two before showing the first difference: translation, revision, or independent.
With no declared relation, the comparison does not appear.

<figure class="viz duo cmp" role="group" aria-label="The original in the first column, the declared relation in the middle, the edition alongside">
<div class="side"><svg viewBox="0 0 24 24" fill="none" stroke="var(--verb-see)" stroke-width=".75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="width:56px;height:56px"><rect x="3" y="4" width="18" height="13" rx="1"/><line x1="9" y1="21" x2="15" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg><b>your original</b>always in the first column</div>
<div class="mid"><svg viewBox="0 0 120 72" aria-hidden="true"><rect x="8" y="18" width="30" height="38" rx="4" fill="var(--verb-see)" opacity=".12" stroke="var(--verb-see)" stroke-width="1.5"/><rect x="82" y="18" width="30" height="38" rx="4" fill="none" stroke="var(--verb-see)" stroke-width="1.5"/><line x1="38" y1="37" x2="82" y2="37" stroke="var(--gray)" stroke-width="1.5"/><rect x="45" y="28" width="30" height="18" rx="9" fill="var(--verb-see)" opacity=".14" stroke="var(--verb-see)" stroke-width="1.5"/><circle cx="60" cy="37" r="2.5" fill="var(--verb-see)"/></svg><b>the relation, declared</b>translation · revision · independent</div>
<div class="side"><svg viewBox="0 0 24 24" fill="none" stroke="var(--verb-see)" stroke-width=".75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="width:56px;height:56px"><path d="M12 20h9"/><path d="M16.5 3.5a2.1 2.1 0 1 1 3 3L7 19l-4 1 1-4Z"/></svg><b>the edition</b>a complete document, with its own X-ray</div>
<div class="act"><sz-button variant="primary" icon="compare" data-open-compare>Open the comparator</sz-button><sz-compare title="Aula 05 · Forecasting" demo></sz-compare></div>
</figure>

And what the comparison gives you back is not an impression: in a 45-slide edition, 633
elements before and 633 after. The text changed; the structure did not. Counted, not
estimated. The difference between this and opening two files side by side is that the result
stays on record per unit and can be reopened later, by someone else, without redoing the work
and without depending on whoever ran the comparison.

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-see)" name="users" size="36"></sz-icon></div>

<h2 id="lineage">Original and derivative stay linked</h2>

<h3 class="sub">The relation survives the departure of whoever created it</h3>

When one document produces another, the link is recorded, and the derivative is a complete
node with the same treatment as the original: it is read by the engine, measured, and
navigable on its own.

This solves a problem that looks small and is not. In a folder, the original and its five
translations are six files that only one person knows how to relate, and only until they
change teams. Here they are one original with five declared derivatives, and nobody needs to
remember anything to reconstruct the relation.

The record is not written afterward by someone who observed the operation. It is born from
the operation itself, which is why it cannot disagree with it. Every one of these links is
also a synapse in your vault, and the whole shape they draw is [the network your vault becomes](connectome).

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-see)" name="file" size="36"></sz-icon></div>

<h2 id="receipt">What the receipt proves, and what it does not prove</h2>

<h3 class="sub">Evidence of control, stated with its boundary alongside</h3>

The <dfn tabindex="0" data-hint="The record of what changed and what stayed the same in each operation, unit by unit, kept on file and reopenable.">receipt</dfn> proves that the operation happened, on which version, with which parameters, and what
it changed. A translation records completeness per segment, the glossary terms applied, and
what did or did not make it into the final file. A rewrite records which fields were changed
and which were kept.

It does not prove the result looks good visually, because the system measures structure and
does not look at the final page. It is also not certified audit: whether this history meets a
specific audit requirement in your sector is a question we answer case by case, not a claim
this page makes.

A skeptical buyer usually puts the question directly: the AI generated something, and now, how
do I know I can use it. The answer we prefer is not to ask for trust in the model. It is to
show what happened to the file.

</div>

All of this lives in your vault, and nothing lives loose: every document is linked to its
editions, every edition to its receipt, every comparison to both sides. Who interprets what
was measured is [the agent](talk) of SazAI Corpus, reading the same vault you do, with no
source beyond yours.

<script type="module">
// The comparator is an INVITATION, not a panel: the component mounts collapsed and the
// button opens its modal through the public `open()`. `whenDefined` first, because the
// design-system runtime upgrades components lazily and a click before upgrade would find
// an unknown element with no `open` on it.
for (const b of document.querySelectorAll("[data-open-compare]")) {
  b.addEventListener("click", async () => {
    await customElements.whenDefined("sz-compare");
    b.closest("figure")?.querySelector("sz-compare")?.open();
  });
}
</script>
