gtmesh promote / gtmesh demote
Move registry rows forward (promote) or backward (demote) through the lifecycle by selector or exact slug. They set status and build nothing.
gtmesh promote --section glossary --dry-run # preview which rows would move
gtmesh promote --section glossary # commit the promotion
gtmesh demote --section blog # park a section back to backlogWhat it does
promote is the gate between the cheap catalogue loop and the expensive production loop. Deciding which catalogued pages to actually write is always an explicit, reviewable choice — promotion is intent-based, reversible with demote, and applies by default (--dry-run previews). It writes only the status column of matched rows; the actual scaffolding happens on the next apply.
demote is the exact mirror: same selectors, moving rows backward (default target backlog).
promote/demote never build or rewrite a page — they only change status. To build the rows you promoted to queued, run apply.
Arguments & flags
Both commands take positional exact slugs and the same selector flags. Field predicates compose with AND; --under is a graph walk down the mesh.
| Selector | Selects |
|---|---|
[slugs...] (positional) | Exact slugs (e.g. just the hub, not the whole prefix below it) |
--section <name> | Rows in a section |
--cluster <name> | Rows in a cluster (any axis) |
--tier <id> | Rows at a tier |
--page-type <id> | Rows of a page type |
--slug-prefix <str> | Rows whose slug starts with this prefix |
--status <state> | Scope to rows currently in this status |
--under <hub-slug> | A hub slug + everything reachable down the mesh from it |
--to <status> | Target status (default: queued for promote, backlog for demote) |
--dry-run | Preview the transition without writing |
Reads & writes
- Reads: the registry.
- Writes: the
statuscolumn of matched rows (nothing else; no page files). - Human gate: this is the gate — you decide what gets built.
Examples
gtmesh promote /integrations/slack # exactly the hub
gtmesh promote --page-type comparison # every comparison page
gtmesh promote --slug-prefix /apps/ # everything under /apps/
gtmesh promote --under /integrations/slack # launch a hub and its whole cluster
gtmesh demote --section blog # park a section back to backlogRelated
- Platform: Page Registry, The mesh & link graph
- Guide: Lifecycle & reconcile, Walkthrough
- CLI:
gtmesh apply,gtmesh seal