Status: DOCTRINE (2026-06-02). The north-star claim of the catalog and the contract every chart must meet.
The claim
For any public Helm chart (plus its Kustomize / overlay customization), ConfigHub +
cub installerprovides a modular, executable model that reproduces the chart's result and that a user can read, use, and verify - without running the chart's templating engine.
This is the product thesis. The catalog only earns it if every chart ships a complete corresponding model, not a prose promise. This doc defines "complete" precisely enough to be machine-checked, and - critically - honestly, so the claim survives an adversary.
What "100%" must mean (and must not)
"100%" is a claim about the rendered result and the accounting of behavior - not a claim that a static file reproduces live, cluster-dependent dynamism by itself.
100% means, per chart:
- Render-equivalent - for every supported variant,
cub installer setupoutput ≡helm templateoutput (modulo declared support objects), proven by a digest-bound equivalence receipt the user can re-run. - Behaviorally complete (no silent gaps) - every Helm behavior the chart uses is either absorbed into the model (named home + policy + proof) or explicitly dispositioned. The HelmPlan carries zero
unknownand zerounhandled. Render-time dynamism becomes explicit model elements; live / lifecycle behavior becomes policy + receipts or an honest blocker:
| Helm behavior | How the model accounts for it |
|---|---|
lookup (reads the live cluster) | declared target-fact requirement + bound fact value (explicit input, never silent) |
| random / cert / time (generated) | generated-fact receipt - generated once, bound into the revision |
.Capabilities branching | named capability profile (the model is reproducible for a declared context) |
| hooks | lifecycle policy + receipt, or an honest blocker (execution is cluster-dependent) |
tpl / raw manifests / post-renderers | explicit extension slot with policy, or reject |
| CRDs / webhooks / RBAC | operate policy + rendered-object scan/gate |
| mutable image tags | digest-resolution receipt, or gate |
- Variant-complete - the model covers how users actually install/vary the chart (
defaultplus the meaningful render-time variants), so a Helm user replacing their usage finds their shape, not onlydefault. - Readable - a per-chart artifact map answers: which variant do I install, what will it create, what differs between variants, and what's the catch.
- Usable - executable end to end (
cub installer setup / render / package), reproducing the objects without the chart's templating engine. - Verifiable - machine-checkable receipts (equivalence / render / scan / gate) +
npm run verify; the user can re-run the equivalence proof themselves. - Honestly scoped -
catalog-status.yamldeclares the support scope (local-test / production) and names every blocked or deferred part.
100% does NOT mean a static model silently re-executes lookup, runs hooks, or resolves .Capabilities on its own. Those are made explicit (facts / profiles / policies) or blocked. A chart whose core function is arbitrary post-render templating may be honestly un-modelable in full - and saying so, with the boundary named, is a complete model. The blocked / operator-decision disposition is part of completeness, not a failure: an adversary cannot find a behavior we silently dropped, because there are none - every behavior is either absorbed or named.
Why the honest version is the strong version
A breakable claim ("100% of any chart is silently replaced") dies the first time a reviewer finds a lookup or a hook we glossed over. The honest claim ("100% rendered-equivalent for declared contexts + 100% of behaviors absorbed-or-named + every receipt re-runnable") cannot be broken that way - and it is a bigger product statement: not "we re-ran Helm," but "we turned Helm's hidden behavior into an explicit, reviewable, verifiable model."
Where we are vs. the contract
The current measured state is in data/model-completeness/summary.md.
This report is a model-support view, not the whole live outcome. Level 2 means the chart has a complete, honest, reproducible model for its declared scope. The full catalog outcome still needs the outcome coverage:
What this command does. cub installer is a released, open-source plugin for the cub CLI. cub installer setup pulls a catalog package and writes its Kubernetes files locally. It does not apply those files to a cluster; use kubectl, Argo CD, or Flux for delivery. The generated scripts stop before doing any work when the plugin or kustomize is missing.
default and declared main choices
-> Helm-equivalence and installer setup
-> ConfigHub upload, scan, clone/check, and safe-ops proof
-> live Kubernetes observation
-> ConfigHub OCI through Argo/Flux
-> live Helm-vs-ConfigHub parity
Recommended extra variants are an enhancement until they are declared as supported choices. Once a choice is declared supported, it must be tracked as its own chart-recipe-variant row with the relevant lane evidence.
Current headline:
supported (Level 2): 100 / 100
variant-rich: 54 / 100
supported (Level 2) means the six support criteria pass for the declared scope: render equivalent, behavior accounted for, readable, usable, verifiable, and honestly scoped. Variant richness is now reported as an enhancement metric, not as the support gate.
The current top-100 should be read like this:
| Question | Current answer | Source |
|---|---|---|
| Does every maintained chart have a recipe/package proof path? | 100 / 100 | data/top100-catalog-analysis/summary.md |
| Are all maintained charts Level-2 supported for their declared scope? | 100 / 100 | data/model-completeness/summary.md |
| Are all charts rich enough for common user variants? | 54 / 100 are variant-rich | data/model-completeness/summary.md |
| Are all top-20 public catalog charts live/e2e tested locally? | 20 / 20 | data/live-e2e/summary.md |
| Are any top-20 charts production-supported today? | 16 / 20 target-scoped supported decisions | data/production-support-decisions/summary.md |
| Do any charts have hard gaps for recommended extra capabilities? | 25 / 100 | data/chart-facts/summary.md |
So the catalog is no longer "20 complete and 80 incomplete." A more accurate reading is:
100 charts have a supported proof model for their declared scope.
20 charts are public catalog-supported for local-test.
54 charts have more than one base variant.
46 charts are still default-only.
25 charts have a hard gap for at least one recommended extra capability.
16 charts have supported target-scoped production support decisions.
2 charts are superseded deprecated source charts.
2 charts have rejected default bases with concrete production follow-up routes.
The hard-gap count is about missing recommended capabilities, not total chart failure. A chart can have a working, supported default recipe while still missing a useful existing-secret, no-crds, or HA path for a specific variant.
The delivery program (to actually earn the claim)
- Keep the verifier check green -
npm run completeness:verifyscores the 100 charts and fails if support criteria regress. - Use the gap reports as work queues -
data/chart-facts/summary.md,data/variant-backlog/summary.md, anddata/quirk-review-queue/summary.mdexplain which charts need capability, variant, or review work. - Build variant richness deliberately - close the 46 default-only entries and the 29 hard-gap entries without treating every possible Helm value as a catalog promise.
- Add production dispositions - local-test support is not production support. The production lane is tracked in
data/production-disposition/summary.md. - User-verifiable surface - each chart's map carries the exact
cub installercommands plus the re-runnable equivalence check, so a user can read → use → verify the corresponding model themselves.
Completeness is the admission bar: a chart is catalog-supported only when it meets this contract for its declared scope; otherwise it is a candidate, with the gap named.
Relationship to the other doctrine docs
catalog-doctrine.mddefines the customization surface (default + parameterized + standard variants).complete-corresponding-model.md(this doc) defines completeness + equivalence + verifiability per chart.agreed-execution-plan.md"Helm Pain Absorption" is the behavior-accounting mechanism this contract enforces.
Sources
agreed-execution-plan.md (Helm Pain Absorption; "no unhandled pain points"), catalog-doctrine.md, next-execution-plan.md, and the generated status, outcome, and live-parity data under data/.