Templates are regular documents with `is_template = true`. The "Mark as template" toggle on /doc/[id] flips the flag in one click; another click flips it back. Idempotent — re-toggling to the same value emits no event spam. Templates appear on /templates with an inline "New from template" form per row.
**Creating a new doc from a template.** Pick a template on /templates, type the new doc's name in the inline form, optionally pick a target collection, click Create. Kodori forks a fresh document_objects row pointing at the template's currentVersionHash — content-addressable storage means zero blob duplication. The new doc inherits the template's mime type and sensitivity tier; metadata is set to a fresh empty payload tagged with the template lineage in `clonedFrom`. If you picked a collection, the membership is written in the same transaction so the new doc is in the collection by the time the redirect to /doc/[id] lands.
**Lineage is queryable.** Three event types track the lifecycle: - `document.marked-as-template` — operator promoted a doc to template - `document.unmarked-as-template` — operator demoted a template back to a regular doc - `document.cloned-from-template` — operator created a new doc from a template; payload carries `templateId` + `versionHash` + `collectionId` (when pinned)
Audit consumers asking "what came out of the Smith engagement template?" filter by streamId on the template (or filter by event-type for cloned-from-template across the workspace). The `clonedFrom` metadata field on each instance preserves the lineage on the row itself.
**Common patterns.** - *Legal*: engagement letters, NDA boilerplate, retainer agreements, motion templates, deposition outlines. - *AEC*: RFI cover sheets, submittal master templates, daily-log templates, project setup binders, change-order request forms. - *General*: policy documents, contractor onboarding packets, vendor evaluation worksheets.
**Clones are not templates by default.** Cloning doesn't cascade is_template=true — the new doc is a regular doc unless you explicitly mark it. This keeps /templates clean and avoids accidental template-of-template proliferation.
**Read access required.** Cloning a template requires read access on it. Templates are typically intentionally broadly readable in a workspace (boilerplate everyone uses), so this isn't a friction point in practice — but it does mean a template can't be cloned by someone who can't read it (which would otherwise leak the bytes).
For Claude Opus AI-generated drafts (a different kind of "template" — the AI synthesizes a NEW document by reading your existing one as structural reference), see the /help article on AI-generated drafts.