"Birth builds the empty room and labels the door correctly. It does not decide what the room is for."
What Birth Writes
A newborn shell is deliberately, honestly empty. Birth renames the template's architecture doc to match the product stem — cwkNewThing becomes a doc named for NEWTHING — and replaces the name tokens throughout. It materializes a cwk-product.json stamped with the exact repository id and version 0.0.0, which is the honest label for a scaffold. It adds a conservative, empty entry to the operation registry — importantly, no writer capability is inferred for the new shell. That's the whole of Birth's authorship: the contract, correctly named and honestly versioned.
What Birth Refuses to Write
What Birth does not do is decide what the product actually is. It doesn't fill the architecture doc with real design. It doesn't invent features, pick a stack, or write product intent into the scaffold. Version 0.0.0 isn't a placeholder Birth is embarrassed by — it's a truthful statement: 'this is a shell; no product contract exists yet.' Setting it to 1.0.0 to look finished would be a lie, and inventing an architecture the product doesn't have yet would be a hallucination. Birth stays honest by staying empty.
Why the Empty Shell Is the Right Deliverable
SCAFFOLD prose and real product decisions remain deliberate Dad-and-Pippa work — a conversation, not a generator's guess. This is the same discipline as everything else in Firelink: the tool does the mechanical, verifiable part (create, name, version, register with no assumed powers) and stops precisely where judgment begins. A birth that tried to be helpful by filling in a plausible product would be inventing decisions no one made — the exact hallucination the whole family is built to avoid. The honest shell is the better gift, because it's a true starting point rather than a confident fiction.