Plan: User-Journey Test Pathways - verified research map + build plan

A repository document, rendered for the site. View source markdown.

Generated at: 2026-07-30T12:38:02.000Z UTC · source: committed helm-expt evidence for this rendered repository document.

_The journey-pathways UX test in the helm-expt test map._

UNOFFICIAL/EXPERIMENTAL. Companion to user-journey-test-pathways-brief.md. The brief said do the research pass first; this doc is the output of that pass (verified against the generated data/receipts on main, 2026-06-20) plus the build plan and live status. Update this doc as pathways land - it is the living plan.

Status

Verified research map (condensed)

Corrections to the brief (verified 2026-06-20)

  1. Charts not in the catalog. kafka, minio, thanos, airflow, kong, datadog, kubernetes-dashboard, keycloak, gitlab are source-scan only - not in data/master-catalog-matrix/matrix.csv. Do not anchor pathways on them (this is why the post-apply-Job hook exemplar has no observed receipt: its candidates are both not-in-catalog and image-blocked).
  2. cub-scout day-1 tooling. Only cub-scout compare three-way --dry-from is shipped (v2.5.0). compare object-set --dry-from / ObjectSetDiffReceipt are design/branch-only, not on cub-scout main - the brief's "PR #498" has not landed. Pathways' day-1 step uses three-way --dry-from today and cites object-set as forthcoming.
  3. The "62". It is the lifecycle-lane cell count (data/matrix-completion-audit/summary.md: lifecycle lane = 62; needs-run = 62; todo = 62 - three distinct columns that coincide). There is no single field literally named "62 routed-but-unobserved"; characterize it honestly as the remaining hook-observation work.
  4. Personas = 6, not 5 (see map above).

Pathway matrix (persona × decisions × chart-class)

Verified catalog anchors only. prometheus-community/kube-prometheus-stack (124 objects, every quirk) is the cross-class capstone, not a per-class anchor.

#PathwayPersona (PRD#)Chart-class · anchorBuilds onNew live run?
1Route a chart's hooks, transparentlyHelm-user (1) + SecOps (4)hook/lifecycle · fluent/fluent-bit → kyvernotemplate + 4 existing receiptsno (reused)
2CRDs & no-CRDs: "synced ≠ working"Platform (3)CRD · jetstack/cert-manager (kube-prom capstone)Tutorial 3no
3Adopt an existing app (brownfield)App-team (2) + GitOps (5)load-brown · nginx / sealed-secretsadopting-existing-apps.mdno
4Promote across a fleetFleet (3)stateful · bitnami/redis / prometheusTutorial 4 (180-proven)no
(5)post-apply-Job hook exemplar-the §4 honest gapblocker receiptyes (image-override)

Other verified class anchors for later pathways: no-crds happy-path = aqua/trivy-operator (only fully-green F2b); image-migrated legacy = bitnami/elasticsearch; version-skew = bitnami/postgresql (18.6.7↔18.6.10); target-prereq/external = velero/velero + external-dns (invalid-shape = elastic/logstash ha).

Sequencing + live-run policy

Hook-class exemplar span (for §4 of the brief)

Hook classChartCommitted receipt
test hookfluent/fluent-bit✅ (Pathway 1)
cleanup/delete-policykyverno/kyverno · projectcalico/tigera-operator✅ (tigera ran the upstream Job: helmHooksExecutedByHarness: true)
CRD-bootstrapgatekeeper/gatekeeper
webhook-certprometheus-community/kube-prometheus-stack
post-apply provisioning Jobkafka/minio class❌ none (image-blocked precondition)