Skip to main content

Statuses & badges

Status is the heart of Contentpipe. Every content item — publication or promo — carries exactly one, and the colors form a vivid idea → live progression. Shared statuses use one color across publications and promos, and every color is always paired with an icon so the pipeline stays legible for color-blind users.

The color system

StatusColorMeaning
stubCyanA fresh idea — title plus an optional note.
draftAmberBeing written.
reviewingVioletUnder critique.
approvedEmeraldSigned off, good to go.
promotingFuchsiaAmplifying — fanning out into promos.
publishedBlueLive on its destination.
archivedMuted slateThe deliberate outlier — retired content.

Shared statuses (draft, reviewing, approved, published) use a single color across both publications and promos, so the same review instinct applies everywhere. archived is intentionally muted — it's the one status that reads as "out of the flow."

Contrast is deliberate

Solid status chips use darkened backgrounds so white text clears the 4.5:1 contrast threshold. The soft chip backgrounds and dark-theme variants are tuned separately — see the status.css token file, the single source of truth shared with the web app.

Transitions

Statuses only move along the allowed edges of the publication and promo pipelines. A trigger validates every transition against the allowed-transition map; invalid jumps raise an exception. Because enforcement lives in the database, the rule holds no matter the caller — admin UI, REST, workflow RPC, or MCP.

Every transition is recorded in an append-only status_events audit table, capturing the from/to status and the actor (admin_ui, mcp:<client>, or system).