#31522·redpanda

rpk: formal command status field (experimental/beta) instead of ad-hoc help-text markers

Author: JakeSCahillCreated Aug 11, 2026Updated Aug 11, 2026

Problem

rpk has no structured way to mark a command's maturity. Today:

  • rpk connect plugin init opens its help text with a literal !!EXPERIMENTAL!! — it tells the user nothing about what experimental means (Can the interface change without notice? Is it supported? Will it be removed?), and tooling can't reliably detect it.
  • Deprecation is handled properly (cobra's native Deprecated), but there's no equivalent for experimental/beta/preview.
  • --print-tree (the JSON surface for automation, see #31520) has no way to expose maturity, so the docs pipeline can't render its existing badge::[label=beta]-style badges for rpk commands automatically — docs maintain that state by hand.

Proposal

A formal status marker on commands (and ideally flags), with a defined vocabulary:

  1. Convention: cobra Annotations, for example Annotations["redpanda.com/status"] = "experimental" plus an optional redpanda.com/status-note for specifics. GA is the unmarked default; deprecated stays on cobra's native field.
  2. Defined meanings documented once (for example: experimental = interface and behavior may change or be removed without notice, not covered by support SLAs; beta = interface stable-ish, feedback wanted, supported with caveats). The definitions are the point — a marker without semantics is just louder punctuation.
  3. Help rendering: rpk renders a consistent one-line notice from the status (replacing hand-written !!EXPERIMENTAL!!), so every marked command explains itself the same way.
  4. --print-tree: expose status/status_note per command so docs and other tooling consume it structurally. The docs site already has badge macros (beta, deprecated, enterprise) that could then be applied automatically.
  5. Plugins: rpk connect, rpk ai, etc. build their command trees in their own repos — the annotation convention should be shared so statuses flow through the merged tree.

Context

Proposed by the docs team (DOC-130 reliability work) while auditing rpk help text against docs overrides; related PRs: #31520 (single-source -X flag docs in --print-tree), #31521 (help-text copyedits from the same audit).

Generated with Claude Code