Every action is one of four kinds, each with its own deploy target
Content actions come in exactly four kinds. The kind decides what approving and publishing actually do — and where the artifact ends up living.
| Kind (the id shown on each draft) | What it proposes | Where it lands when published | |---|---|---| | metadata-draft | title + meta description for pages without explicit rules | the auto-injected SEO rule, deployed to the serving path | | schema-markup-publish | JSON-LD block with a schema @type | an SEO rule carrying the JSON-LD, deployed on save | | llms-txt-publish | the full /llms.txt file | a static file + the Serve llms.txt rewrite, edge-served | | broken-link-redirect-proposal | a 301 from a broken path to its replacement | a redirect rule, deployed to the serving path |
All four share the registry conventions: executionMode: "guided" (a human approves each step) and a documented rollback (for llms.txt: delete the static file and serving rewrite, redeploy).
The shared lifecycle#
draft → (Approve) → approved → (Publish) → published, with rejected as the off-ramp and exported recording a text hand-off. Statuses appear verbatim as pills on each row of Generated drafts — the meta line's action id tells you the kind at a glance (screenshot below). Approval and publication are separate, deliberate clicks; the metadata registry entry says it outright: Draft must be explicitly approved by the customer before publishing — never auto-published. (The one exception is the auto-injection path described in Approve a metadata draft.) Each transition writes activity: content_action.approved|rejected|exported|published.

