Goldie Blocks

Duplicate Copies the Live Draft, Whole and Fresh

Duplicate on any card copies the working draft of that card and everything inside it, clears collected answers and nothing else authored, names the copy with the next free handle and " (copy)", records its lineage, and lands it immediately after the original. A whole document duplicates through the same door that creates one.

Decision

Owner ruling, 2026-09-06 (folio unification plan, Stage D gate C; unblocks row 5, "Duplicate"). Before this record the only settled fact was where a copy lands: immediately after its source in the same sibling scope.

  1. A copy is recursive. Duplicating a module copies every block inside it; duplicating a document copies its modules and their blocks. The copy holds its own folios throughout — it never shares a child with the original, so editing the copy never touches the source.
  2. Collected answers are cleared; everything authored is kept. Values answered into data-block fields are cleared and their skipped marks with them, so the copy is a fresh precedent rather than a second copy of the client's file. Labels, handles (renamed as below), guides, questions, required marks, numbering, locks and tags are all kept.
  3. The copy is named the way a new card is. Its handle is the source's handle with the next free numeric suffix among its siblings (_2, _3, …), the placeholder rule new cards already use; its name is the source's name plus (copy). Descendants keep their handles, because handle uniqueness is among siblings and a copied subtree has no sibling clash inside it.
  4. The source is always the live draft. Duplicate copies the working draft of the card and of every descendant, whatever edition a reader has selected. It is not offered on a card showing a sealed edition (constraint 22), so the menu and the rule agree. The copy records its lineage — derivedFromFolioKey the source folio, derivedFromVersionKey the source's live head at the moment of copying — which is what constraint 5 requires of every derivation.
  5. A copy is born the way an inserted child is. Each copied folio opens with one live version holding the copied state, pinned into its parent's live schedule; the parent's next save seals the copy with the rest. No sealed edition is minted by duplication.
  6. A whole document duplicates through the same door that creates one. Because there is no parent schedule to land in, Duplicate on a document files a new document on Document Home for this browser, exactly as New document does (see Root Documents Are Created Through an Interim Browser Door), and is built after that door lands.

In plain terms: duplicating a folder photocopies the folder and every page in it, blanks the client's answers, keeps every heading and note you wrote, and files the copy right behind the original under the next free number with "(copy)" on the tab. It always copies what is on your desk, never a filed version.

Consequences

  • Row 5 lands one executor, duplicate, on every kind that is shown as a child; it walks the source's live subtree, mints fresh folio keys and field keys, clears value and skipped on every field, keeps the rest, suffixes the root handle and label, and pins the copy after its source in one transaction or not at all.
  • The " (copy)" label rule returns from the archived plan as a settled fact; the sibling-handle refusal (siblingHandleTaken) is what the suffix rule satisfies rather than a second rule.
  • The document case shares the creation door (landed 2026-09-06): the executor takes the browserClientId for a root document, files the copy detached under a minted route with a session for that browser, and the document card's menu, the Work Bar and Document Home's list all open the copy.

Duplicate copies the live draft beside its source. The Library's materialisation copies an exact sealed edition to an explicit destination and resets the recipient's access; the two are separate operations with one intended cloning primitive, recorded in A Library Is a Shelf, Not a Folio.

On this page