Helm-fluent migrant friction - does cub guide a Helm user, or trip them?

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

New to cub? Install the cub CLI first. You can pull and render public catalog packages without an account. Commands that save or change ConfigHub data require you to sign in.

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

UNOFFICIAL/EXPERIMENTAL. Live receipt generated by scripts/run-helm-habit-friction.mjs; do not hand-edit. Regenerate with npm run helm-habit:friction.

Claim. A Helm-fluent dev new to cub reaches for correct Helm idioms (--set, -f values.yaml, --input image.tag) that do not map to cub installer's declared-input model. cub safely REJECTS them (no silent mishandle) - but the question for adoption is whether it rejects WITH GUIDANCE toward the cub way, or opaquely. This lane measures that error-message quality. cub is safe; the opaque count is the migration friction to fix.

A skilled Helm user, new to cub, applies correct Helm idioms to cub installer - --set, -f values.yaml, --input image.tag. They're not careless (that's the bad-decisions fuzz) and not adversarial - just muscle memory meeting a different model. 72 cases (9 idioms × 8 packages).

cub is safe: 0 bug(s) (no silent mishandle). But guidance is the gap: 0/72 guided-or-supported vs 72/72 (100%) opaque. Overall: pass.

cub's responseCountShareMeaning
opaque72100%friction - cub rejected but gave a Helm user no migration hint

The friction (opaque rejections - the UX to fix)

Each is a correct Helm idiom that cub rejects with a generic message that doesn't point a Helm user to the cub way:

Helm idiomPackagesWhy a Helm user tries itcub's (opaque) error
--set replicaCount=38Helm's --set flag; cub uses --inputError: unknown flag: --set
--set-string name=x8Helm's --set-stringError: unknown flag: --set-string
-f values.yaml8Helm's -f values fileError: unknown shorthand flag: 'f' in -f
--values values.yaml8Helm's --valuesError: unknown flag: --values
--set-file k=file8Helm's --set-fileError: unknown flag: --set-file
--input replicaCount=38a valid Helm value path as a cub inputError: unknown input "replicaCount"
--input image.tag=v28Helm image override; cub uses --set-imageError: unknown input "image.tag"
--input resources.requests.cpu=500m8a valid Helm resources path as a cub inputError: unknown input "resources.requests.cpu"
--input servers[0]=x8Helm array index syntax as a cub inputError: unknown input "servers[0]"

The fix is migration guidance in the error - e.g. --set → "cub uses --input <name>=<value>; run cub installer doc for the inputs", --input image.tag → "use --set-image". cub already does the safe thing (reject); this makes it teach.