nx_pipeline_banner.nx
buildroot/runtime/hub/nx_pipeline_banner.nx
about
nx_pipeline_banner.nx -- HUB primitive; renders per-article pipeline-
stage banner emitting "what stage is this artifact at + what's missing
for next transition".
Per V2.0 PIPELINE BOOTSTRAP PLAN P-4: every wiki article shows its
pipeline stage at the top. Operator visiting /wiki/<doc-name> sees
immediate signal: how mature is this content?
COMPOSES (HUB primitives only):
wiki/nx_artifact_store (NxArtifactStore + per-artifact taxonomy + stage)
nx_html_escape (safe value emission)
COMPOSED BY:
wiki/nx_wiki_doc_handler (every /wiki/<doc-name> page)
(future) obd/nx_obd_doc_handler
(future) sprinkler/nx_sprinkler_doc_handler
(future) third-party hosted site doc handlers
V2.0 SCOPE:
- Lookup doc by URL in NxArtifactStore
- Sealed 5-color stage badge
- Per-stage criteria-met + criteria-missing list (operator self-audit)
- "(not in artifact store)" hint when lookup misses (informational)
V3+ SCOPE (TODO):
- "Advance this artifact" admin button (operator one-click stage promote)
- Per-criterion hint links ("add Quadrant front-matter -> see Diátaxis")
- History timeline (when did stage last change?)
Status: V2.0. 2026-05-27.
dependencies 3 imports · 1 importers
imports: nx_syscalls.nxnx_html_escape.nxnx_artifact_store.nx
imported by: nx_wiki_doc_handler.nx
structs
| none |
consts
| 37 | const NX_PBAN_OK: i64 = 0 |
| 38 | const NX_PBAN_BAD_INPUT: i64 = 2980 |
| 39 | const NX_PBAN_OUTPUT_OVERFLOW: i64 = 2981 |
| 42 | const NX_PBAN_MAX_DOC_PATH: i64 = 512 |
| 45 | const NX_PBAN_CLASS_UNSTRUCTURED: *u8 = "stage-banner stage-unstructured" as *u8 |
| 46 | const NX_PBAN_CLASS_STRUCTURED: *u8 = "stage-banner stage-structured" as *u8 |
| 47 | const NX_PBAN_CLASS_MEANINGFUL: *u8 = "stage-banner stage-meaningful" as *u8 |
| 48 | const NX_PBAN_CLASS_ACTIONABLE: *u8 = "stage-banner stage-actionable" as *u8 |
| 49 | const NX_PBAN_CLASS_REPEATABLE: *u8 = "stage-banner stage-repeatable" as *u8 |
| 50 | const NX_PBAN_CLASS_UNKNOWN: *u8 = "stage-banner stage-unknown" as *u8 |
functions
| 54 | func nx_pban_class_for_stage(stage: i64) -> *u8 called by 1: nx_pipeline_banner_render |
| 65 | func nx_pban_put_raw(out: *u8, cap: i64, off: i64, src: *u8, n: i64) -> i64 called by 1: nx_pban_put_z |
| 73 | func nx_pban_put_z(out: *u8, cap: i64, off: i64, s: *u8) -> i64 |
| 82 | func nx_pban_put_escaped(out: *u8, cap: i64, off: i64, src: *u8, n: i64) -> i64 calls 1: html_escape |
| 98 | func nx_pban_render_criteria(out: *u8, cap: i64, off: i64, |
| 186 | func nx_pipeline_banner_render(out: *u8, cap: i64, off: i64, |