Runbook templates and inheriting upstream updates

A runbook template is a public runbook published as a reusable starting point. Other orgs can fork it into their own workspace — and optionally subscribe to upstream updates so they automatically receive new revisions.

Publishing a template:
• Open the runbook → Settings → "Publish as template".
• Set visibility (private / public) and pricing (free / paid).
• Mark the runbook with templateMode: 'template'. It now appears in the Marketplace under Runbook Templates.
• Bumping the runbook's version triggers a fan-out to every org subscribed for live updates.

Forking a template:
• In the Marketplace, open the template and click Fork.
• Turtini copies the runbook into your workspace as a new doc.
• A "Subscribe to updates" toggle at the top determines whether you'll receive future updates.
- On (default) — when the template author publishes a new version, your fork is updated to match. Steps you've added locally that don't have a templateStepId are preserved.
- Off — your fork is a one-time copy; future template changes don't reach you.

How updates flow:
• The Cloud Function onRunbookTemplateWritten fires on writes to runbooks/{id} where templateMode == 'template' and visibility == 'public'.
• It enumerates every runbook with inheritFromTemplateId == <this id> and inheritTemplateUpdates == true.
• For each subscriber it walks the steps, matches by templateStepId, and updates / adds / removes steps without clobbering local additions.

When to inherit, when to fork freely:
• Inherit — you want bug fixes and new steps the author publishes. Standard procedural runbooks (PCI compliance, onboarding, deploy procedures).
• Fork freely — you want a starting point, then customize heavily and never look back. Highly custom internal runbooks where the original is just inspiration.

You can flip a runbook between inherit on/off at any time from its Settings panel.