Provenance
Provenance is where a document’s words came from. Proof records it as the writing happens, not by reading the finished text, so it doesn’t guess: every character that survives in the document carries who wrote it and how it got there.
Who wrote each character
Section titled “Who wrote each character”Every change in the editor arrives at Proof from a known writer: a person in a session you started, or an agent with a token Proof issued. Proof writes the credit itself. A browser can’t claim another person’s or an agent’s words, and edits sent under someone else’s identity are refused.
That credit follows the text. When someone deletes a sentence, it leaves the count; when someone else rewrites it, the new words are theirs.
Four origins
Section titled “Four origins”Each surviving word falls into exactly one of four origins. Together they make up 100% of the document.
| Origin | What counts |
|---|---|
| Typed | Words people wrote themselves in the editor. |
| Shaped | Text an agent wrote, in sentences a person has since changed. A person’s change to the words of a sentence makes the agent’s words around it shaped, for as long as the change lasts. |
| AI | Text an agent wrote that people kept as written. An agent’s suggestion accepted without changes is AI. |
| External | Text pasted in, imported from a file, or inserted with no key pressed for it, as tools that drive a browser do. Its origin is unknown, so it counts toward neither people nor agents. |
Seals show Typed and Shaped together as Typed & Shaped, the share people wrote or reworked. The breakdown behind a seal keeps them apart.
Suggestions
Section titled “Suggestions”A suggestion’s words are its author’s from the moment it’s proposed. When an editor accepts a person’s suggestion, those words count as that person’s typing; when they accept an agent’s suggestion unchanged, they count as AI. A rejected suggestion leaves nothing behind.
Moving words keeps their credit
Section titled “Moving words keeps their credit”Rearranging text doesn’t change who wrote it. These all keep each word’s original writer and origin:
- indenting a list item, changing a block’s type, splitting or joining paragraphs, dragging text;
- undo, which puts back what was there;
- cutting text and pasting it back, or an agent deleting a block and inserting it again;
- copying several whole words from elsewhere in the same document: a copied agent paragraph is still AI, a copied pasted quote still external.
Moved words count as neither written nor deleted in the activity below.
Activity
Section titled “Activity”Surviving text can’t show everything, so Proof also records what happened along the way:
- Revisions: who deleted whose text.
- Rounds: each back-and-forth between agents and people. The seal line counts these as prompts.
- Minutes: when people were writing or reading, which presence is built from.
- Traces: every read and edit an agent made.
What provenance can’t tell
Section titled “What provenance can’t tell”Provenance records how text arrived in the editor. It can’t know what was in someone’s head or on another screen: a person retyping an AI answer by hand is typing. That’s why a seal carries presence and check-ins beside the four origins, and why it has no single score. Readers see each part and judge for themselves.
Reading it through the API
Section titled “Reading it through the API”GET /v1/documents/{id}/provenance returns the live reading under the current method:
{ "document": "doc_8Hq2Lm4R", "method": "v0.2", "composition": { "typed": 71.4, "shaped": 15.9, "ai": 7.8, "external": 4.9 }, "presence": { "share": 97, "verified_share": 0, "verified": false }, "prompts": 4, "sittings": 2, "duration": "1hr48min"}Each person’s and agent’s part is in the editor’s breakdown and on seal pages. A seal freezes these numbers, rounded, at the moment of sealing.