This is the current execution plan for ConfigHub Workshop and its path into ConfigHub. It turns the project doctrine, user simulations, command audit, misconfiguration work, AI use, promotion work, and SaaS onboarding review into one sequence.
For current evidence counts, use the Top 50 Completion Plan and generated status pages. For the business purpose and processing model, use the Config Catalog Doctrine.
The previous Helm-proof execution plan is retained as a historical snapshot.
Current Status
The August 2026 audit covered the doctrine, roadmap, Top 50 tracker, user simulations, command guidance, open issues, installed cub plugins, cub-scan, and the shared patterns repository.
The current Top 50 state is:
available: 29
partial: 19
planned: 2
PR #1593 captured the August simulation findings and misconfiguration doctrine. The repository work from #1592, #1595, and #14 is complete: shared local checks, one retained decision chain, a source-neutral website and command contract, one hash-preserving promotion proof, and bounded CI reports are all generated and verified.
Two ConfigHub product dependencies remain separate. ConfigHub #5158 owns the reusable view for local findings, managed validation, decisions, approval, and promotion. ConfigHub #5159 owns the stable cub continuation from an accepted result into retention and promotion. Closing the repository issues did not complete those product journeys.
The first complete case and the Catalog-wide local evidence are now in place:
- one NGINX change runs from an unsafe local result through a correction, retained ConfigHub revision, blocking validation, and promotion;
- every maintained Helm base has a separate released
cub checkresult bound to the exact YAML bytes and canonical scanner object set; - generated chart pages show the human summary and link the complete shared result, exact YAML, and separate chart-specific Catalog review;
- the mapping from Catalog rules to stable shared controls is complete and deliberately marks partial overlap and rules that require source, lifecycle, target, or live evidence.
A source-neutral configuration-decision schema and one complete NGINX case now record every accepted fix, one narrow approved exception, the separate local and managed checks, the exact retained ConfigHub revision, promotion, and Argo CD delivery. The decision is also stored as an approved, non-deployable Unit in the live demo organization. A general ConfigHub product view that creates and shows these decisions for arbitrary configurations remains open in issue #1592.
The same NGINX case now has a generated website-to-command contract and a separate live command proof. The proof retained the exact reviewed object set, created a staging variant, previewed and performed the promotion, and kept the canonical object-set hash visible after ConfigHub storage metadata was excluded. The literal YAML example uses the same result format and records materialization as a no-op; its managed promotion remains unrun.
The first lifecycle-heavy managed promotion is also complete for one exact path. Kube Prometheus Stack no-crds moves from 85.3.3 to 86.1.0 through a retained ConfigHub base and staging variant, approval gates, exact release OCI, and Argo CD. The proof preserves source namespaces, checks target-owned Secrets, resolves CRD and setup-Job work after the final variant exists, selects server-side apply for large CRDs, and checks the resulting workloads and admission behavior. This is one chart and destination proof, not a general automatic promotion product.
User Promise
People should be able to bring configuration made by themselves or by AI and answer six practical questions:
- What will this create or change?
- How does it differ from a known configuration or what I run now?
- What is wrong, risky, missing, or still unknown?
- What exact result did I accept?
- Can I promote that result to this destination?
- Did the released configuration reach the intended live state?
The product journey is:
check it -> keep it -> change it -> promote it -> release it -> observe it
Promotion is central. A checked configuration becomes more valuable when the same accepted result can be changed for staging, compared with production, tested against the destination, approved, promoted, released, and observed.
Complete Journey
Helm, AICR, OCI, YAML, or a maintained package
-> materialize the exact Kubernetes objects
-> compare and run relevant checks
-> correct the configuration and rerun the checks
-> retain one accepted object set and digest
-> create a candidate variant
-> compare it with the destination
-> check lifecycle work, target requirements, and available staging results
-> approve and promote the exact revision
-> publish release OCI
-> deliver through Argo CD, Flux, or another selected route
-> compare desired configuration with live state
The first part must remain useful without a ConfigHub account. ConfigHub is the next step when the user wants to retain the result, share it, change it again, enforce checks, promote it, release it, or compare it with live systems.
Product Surfaces
Each surface has one job.
| Surface | Job |
|---|---|
| Catalog | Publish answers already investigated for exact sources and versions: useful configurations, known problems, lifecycle requirements, and evidence. |
| Check my config | Investigate the user's own chart, values, YAML, OCI, or current deployment. Materialize exact objects, compare them, run bounded checks, and produce a result the user can keep. |
Local cub tools | Perform source processing, comparison, checks, file output, and OCI output without requiring ConfigHub Server. |
| ConfigHub browser tour | Show a short sample journey in the browser: create one component, inspect it, change one field, create a dev variant, and see the diff. |
| ConfigHub managed product | Retain the user's accepted result, manage variants, rerun controls, record approvals, promote exact revisions, publish release OCI, and preserve live comparisons. |
The public call to action must depend on context:
- See ConfigHub in five minutes opens the short sample tour.
- Keep this checked result in ConfigHub retains the user's real objects and digest. It must not replace them with the tutorial sample.
Website And CLI Are One Workflow
The website and cub must expose the same substantive jobs. A user may start in the browser and continue in a terminal, or start with an AI using the CLI and open the corresponding human explanation. The source identity, exact objects, digest, findings, limits, and next step must remain the same.
| User question | Website path | CLI path | Shared result |
|---|---|---|---|
| I need a configuration. | Describe the need or choose a maintained starting configuration. | Discover or receive the same source reference, then process it through the applicable source plugin or package engine. | Source, version, selected configuration, requirements, and evidence links. |
| I have a configuration. Is it right? | Upload or paste rendered YAML, compare it, run bounded checks, and download the result. | Use the applicable source command, then run the released cub check plugin over the materialized objects. | Exact objects, object-set digest, comparison, findings, checks not run, and files or OCI. |
| I have an accepted configuration. Can I promote it? | Compare the candidate with its destination, inspect checks, and continue into ConfigHub when a managed promotion is selected. | Use cub variant create and cub variant promote, followed by release and observation commands. | Candidate revision, destination, exact diff, validations, approvals, promotion result, and release identity. |
The cross-surface rules are:
- Every substantive website action provides a copyable command, API action, or downloadable record that continues the same job.
- Every public CLI workflow links to a short website page that explains why it exists, what it changes, what it returns, and what it does not prove.
- Browser and CLI results use the same schemas, pattern and control IDs, object digest rules, and checked-versus-not-checked language.
- A user can move a browser result to the CLI and a CLI result to ConfigHub without repeating source selection or losing the accepted digest.
- Generated website commands are verified against released CLI help. Proposed commands remain labelled as proposed until released.
- AI agents use the CLI and machine output; people may use either surface. They are working with the same configuration record.
Key Scenario: Build An Internal Developer Platform
One complete user request is:
"I want to use the Catalog, Kubara, and AI to create an internal developer platform for building and running the tools and applications my team creates with AI."
This scenario uses all three main journeys rather than adding another front door.
I need a configuration
The user describes the platform they need: cluster type, environments, GitOps tool, ingress, certificates, Secrets, observability, databases, policy, AI runtime, custom images, and expected application types.
The Catalog supplies maintained components, exact versions, known configurations, requirements, and evidence. AI can help narrow the choices and write the native Kubara selection and wiring. Kubara remains the platform composer and generates its normal platform tree.
The result includes:
- native Kubara
config.yamland reviewed overlays; - exact component and image versions;
- source-and-intent records;
- generated platform and application-delivery objects;
- component dependencies and provided services;
- lifecycle requirements such as CRDs, hooks, certificates, and setup Jobs;
- a portable Git handoff and target-neutral OCI packages plus platform index.
I have a configuration. Is it right?
The user reviews the exact generated platform before selecting a ConfigHub organization or target. Local tools check source locks, generated paths, object inventories, lifecycle work, placeholders, image identities, and the provides-and-needs wiring. AI can explain findings and propose a smaller change, but the rerun output and digest show what was accepted.
The website must offer the same platform selection as a downloadable native Kubara input and a copyable CLI path. The CLI must return the same component versions, source record, object inventory, findings, and platform digest that the website displays.
I have an accepted configuration. Can I promote it?
ConfigHub retains the component definitions, effective configurations, relationships, target instances, and immutable release identities. Platform changes move through development, staging, and production as exact revisions. Checks, approvals, lifecycle requirements, rollout results, and rollback limits remain attached to those revisions.
Platform components, developer tools, and applications remain related but separately versioned. Each has its own source and configuration, consumes or provides named services, and follows the same check, retain, variant, promotion, release, and observation path. A shared platform change, a developer tool change, and an application change can therefore be reviewed and promoted independently while their compatibility is checked at the destination.
The operating split is:
Catalog supplies maintained components and evidence.
AI helps choose, explain, and propose changes.
Kubara composes and generates the platform.
ConfigHub retains, compares, validates, and promotes exact revisions.
Argo CD or Flux reconciles selected release OCI.
Kubernetes runs the platform and applications.
The current public starter and importer live in confighub/kubara-confighub. They currently expose native Kubara and npm-driven preparation and import paths. A simple cub entry for this journey is a product gap, not a shipped command. The likely direction is a source-specific Kubara plugin that produces the common review record and hands retained work to cub variant and cub release. Its exact command names require agreement with the Kubara and cub maintainers.
AI Throughout The Journey
AI is part of each job, not a separate final feature.
| Job | AI can help with | The deciding record |
|---|---|---|
| Check | Run tools, explain objects, compare with known configurations, identify likely mistakes, and propose a correction. | Exact objects, source identity, checks run, findings, and work not checked. |
| Keep | Prepare the accepted files and source information for retention. | The retained ConfigHub revision and digest. |
| Change | Propose a values change or object patch and explain why it is needed. | The exact diff and rerun checks. |
| Promote | Explain candidate-versus-destination differences and identify prerequisites or risks. | Destination checks, staging results, policy gates, and required approval. |
| Release | Prepare release notes and invoke the selected command. | The exact retained revision published as OCI. There is no last-minute regeneration. |
| Observe | Explain desired-versus-live differences and suggest a correction. | Recorded observations and an explicitly accepted change. |
The primary AI question is:
"Here is the chart and values my AI produced. Compare them with the chart defaults, the Catalog, and what I run now. Tell me what matters, then give me a reviewed result I can keep."
AI may propose and explain. Exact objects, diffs, controls, approvals, release digests, and observations decide what progresses. The tools must support non-interactive use, stable machine output, meaningful exit status, and links to evidence. Raw prompts and secrets must not be required as configuration provenance.
Misconfiguration From Finding To Prevention
The user question is:
"What is wrong with this configuration, what does it affect, and what should I fix before I ship it?"
The maintained path is:
known problem
-> exact objects
-> advisory checks
-> correction and new digest
-> retained ConfigHub revision
-> authoritative validation and approval
-> promotion checks for the exact destination
-> delivery and live observation
The current evidence systems must remain correctly named:
- Existing helm-expt scan receipts were produced by the helm-expt rendered-object scanner. They must not be relabelled as
cub-scanresults. cub checkis the primary local command.cub scanis an alias, andcub-scanremains the standalone binary for local and CI use. All three produce advisory results from the same engine and pinned pattern bundle.- ConfigHub
scan-unitandscan-spaceprovide detailed advisory findings over retained data. - ConfigHub
validate-unitandvalidate-spaceprovide revision-bound results that can participate in managed gates.
The Catalog-wide mapping and digest-bound shared results now live in config-catalog/shared-control-mappings.yaml and data/catalog-shared-checks/. Each shared receipt preserves the complete released scanner result and adds the exact committed YAML-file digest. Chart pages show both the shared result and the separate Catalog review.
The NGINX example now carries one approved exception into ConfigHub as a separate, non-deployable decision Unit. Its public record shows the local and managed results together without merging their authority. The remaining work is to make this a general product path for arbitrary configurations and to rerun the relevant controls against every retained revision. A local result does not become authoritative merely because it was uploaded.
Static checks do not prove hook execution, CRD readiness, admission behavior, workload health, rollback of external effects, or convergence. Promotion and live checks cover those separate questions where evidence exists.
cub Command Direction
cub is the common command-line shell. Do not add another umbrella such as cub workshop or present cub installer as a replacement for Helm.
The user-facing command structure should describe jobs:
| Job | Current or proposed path |
|---|---|
| Check configuration made by the user or AI | Released cub check plugin command |
| Process an arbitrary Helm chart | cub helm |
| Process AICR or another source format | The relevant source plugin, such as cub aicr |
| Process a maintained ConfigHub Workshop package | cub installer as the package engine; the first public command may later be wrapped by the check flow |
| Run shared configuration controls | cub check; cub scan alias; standalone cub-scan retained |
| Retain literal objects | cub variant upload or the applicable source upload command |
| Create and promote variants | cub variant create and cub variant promote |
| Publish a release | cub release publish |
| Read desired and live state | cub k8s and cub scout |
cub check describes the user's problem rather than the Catalog that helps answer it. Its local scanner result is released. The browser now accepts the result only for the exact matching object set, keeps its version, pattern-bundle identity, and stable finding IDs in WorkshopResult, and carries it into the ConfigHub handoff as non-deployable advisory evidence. Every report must separate:
checked
findings
not checked
requires a destination or live test
cub installer remains useful for package authors, CI, reproducible examples, anonymous rendering, and OCI output. It pulls and verifies a maintained package, selects a configuration, materializes objects, and preserves companion records. It does not own deployment or replace the user's normal Helm path.
All source adapters should produce the same portable review information:
- source and version;
- recorded input and intent;
- exact objects and object-set digest;
- comparison baseline and changed fields;
- lifecycle requirements;
- controls run, findings, and limits;
- files or OCI output;
- the next applicable command.
SaaS Tour And Handoff
ConfigHub PR #5127 is the proposed browser tour. It must not be advertised as the common public destination until its first path is short, accurate, and covered by a passing chained test.
Before public use:
- Make the first tour the externally advertised path.
- Show it on first login and in an empty organization.
- End the short path after component creation, inspection, one change, a dev variant, and a visible diff.
- Rename "Deploy to dev" to "Create a dev variant" until it actually deploys.
- Remove or postpone steps that describe behavior that is not working.
- Fix required empty fields that prevent a fresh user from continuing.
- Add one passing end-to-end test for the advertised path.
- Preserve the referring source in the URL. Analytics remain parked and do not block the product path.
The later tours remain optional education about ownership, production, releases, and other advanced work.
Execution Order
Complete below means that exact repository checkpoint is merged and guarded. It does not mean the whole roadmap, outside-user test, ConfigHub product path, or external hardware work is complete.
Phase 0: Land The Current Doctrine
- Complete: merge PR #1593 after all required checks pass.
- Keep the Top 50 tracker, roadmap, simulation findings, and this file as the maintained status sources. Do not recreate the plan in handover notes.
- Remove analytics from the T50 completion condition. T50 is completed by outside-user evidence, not a selected analytics vendor.
- Update stale umbrella issues such as #1251 and #989 to use the current journey.
Phase 1: Prove Check To ConfigHub
- Complete in the repository: close #1592 and keep the reusable ConfigHub view in product issue #5158.
- Complete: map every current Catalog rule to partial shared controls or a clear reason why static object checking cannot replace it.
- Complete: generate separate
cub checkreceipts for every exact maintained Helm base without changing historical receipt identity. - Complete: add a plain finding summary, exact input, date, scanner and bundle identity, local action, and full result link to chart pages.
- Complete for one NGINX case: a source-neutral decision record binds every finding to an accepted fix or narrow approved exception, the exact object digest, evidence, scope, and review date. The browser does not yet create this record for arbitrary results.
- Complete for one NGINX case: retain the same objects in ConfigHub and rerun authoritative controls against that revision.
- Complete in the public NGINX example; remaining in the general product: show local evidence and ConfigHub validation together but separately, including approved exceptions.
- Complete for one NGINX case: demonstrate:
unsafe candidate
-> local finding
-> reviewed correction
-> retained ConfigHub revision
-> enforced validation
-> promotion result
- Product dependency: add the decision record to the ordinary ConfigHub review flow so a user can decide findings, set a scope and review date, approve the exact decision revision, and reopen it automatically when the configuration, destination, or review date changes. Tracked in ConfigHub #5158.
- Complete in one command proof: preserve the same canonical object-set hash from the local result through ConfigHub retention and a staging promotion. General product support for arbitrary results remains part of step 9.
Phase 2: Make Promotion The Main Managed Payoff
- Start with an accepted base and a named destination.
- Create one staging candidate with an exact object diff.
- Classify source-controlled fields, ConfigHub changes, protected fields, and destination facts.
- Resolve lifecycle work after the final candidate exists. Hooks, CRDs, setup Jobs, certificates, and prerequisites may change when a derived variant is created.
- Run available static, destination, and staging checks separately.
- Require the applicable validation and approval.
- Promote the exact accepted revision rather than recreating it.
- Publish release OCI and deliver it through Argo CD or Flux.
- Record desired-versus-live results and rollback limits.
- Repeat the proof on a second chart with meaningful lifecycle or upgrade work.
All ten steps now have one lifecycle-heavy proof in runs/kps-confighub-lifecycle-promotion/receipt.yaml, following the simpler NGINX candidate-selection proof. The remaining work is to make these checks an ordinary reusable product flow: route selection is still manual, rollback and soak are not proved for Kube Prometheus Stack, and other charts and destinations must earn their own evidence.
Phase 3: Join The Public And SaaS Experiences
- Tighten the short ConfigHub browser tour and its end-to-end test.
- Add See ConfigHub in five minutes where a sample is useful.
- Add Keep this checked result in ConfigHub only where the user's exact result can continue.
- Preserve the source and reviewed digest across the handoff.
- Keep the completed
cub checkto WorkshopResult composition covered by the browser self-test and public schemas. - Keep local advisory findings visibly separate from ConfigHub's revision-bound validation and approval results.
- Keep
cub installervisible in technical package documentation, but describe the customer action rather than leading with the engine name. - Remove references to the retired top-level install alias and delete local plugin residue that still exposes it.
- Add one generated website-to-CLI map for the three main journeys and verify every published command against the released command surface.
- Add links from CLI results to the corresponding human explanation and from website results to the exact continuation command.
- Agree and implement the smallest
cubentry for the existingkubara-confighubplatform starter and importer without replacing Kubara's native configuration model.
Steps 5, 9, and 10 now have a generated Helm and literal-YAML command contract, public schemas, self-tests, one live ConfigHub proof, and source-neutral CI reports. Commands emitted by every source plugin still need to use the common result. The stable ConfigHub continuation is tracked in ConfigHub #5159 rather than the closed repository issue #1595.
Phase 4: Test With Users And Agents
- Run the first outreach wave from the private cohort list in issue #1553. Recheck every public thread before contact and record only aggregate outcomes in Git.
- Run these six end-to-end tests:
- AI-written Helm values to a reviewed OCI;
- reviewed OCI retained as a ConfigHub base;
- a staging change compared with production;
- hooks, CRDs, and destination requirements checked before promotion;
- an exact release delivered through Argo CD or Flux and compared with live state;
- a useful public investigation retained as a Catalog answer. The managed journey coverage now records a technical pass for all six and an outside-user pass for none. The next acceptance step is to run the same tasks with people using their own input and normal AI assistant. Use the outside-user protocol: a pass requires a durable artifact, an understood limitation, preserved object identity, and no facilitator choosing the route.
- Run the internal developer platform test: use AI and Catalog records to produce native Kubara input, generate and check the exact platform, retain it in ConfigHub, promote one platform change, then add and promote one small application that consumes a declared platform service.
- Test both a human driving AI and an AI agent driving
cubcommands. - Measure whether users reach an answer, understand what was not checked, retain the result, and complete a promotion without losing the object identity.
- Turn repeated failures into product or content changes, not additional prose on the same page.
Phase 5: Strengthen The Common Foundation
- Complete package signatures and digest-pinned pulls in issue #1402.
- Finish source-and-intent and lifecycle-route coverage for more maintained configurations.
- Complete readable production promotion, rollback, and live-observation paths.
- Promote the remaining 80 Helm entries from proof-grade rows to useful configurations.
- Give AICR, Timoni, Kubara, Sveltos, literal OCI, and YAML stable browse and review paths using the same processing model.
- Publish stable JSON schemas, exit behavior, and agent instructions for the common review result.
- Keep the source-neutral CI and pull-request report current as WorkshopResult grows. The local emitter, JSON form, Markdown form, Redis example, and bounded exit behavior are implemented; source plugins still need to emit the common result consistently.
Phase 6: Extend The Proven Paths
- Complete representative AICR and GPU delivery evidence.
- Record the H100/NIM and NVIDIA GPU Operator demonstrations.
- Add lifecycle-heavy Timoni entries and live proof.
- Deepen Kubara and Sveltos fleet rollout and rollback evidence.
- Complete the Upgrade, Hooks and CRDs, RBAC Review, Fleet Platform, and AI Change Review Apps as product experiences.
- Add hosted processing for arbitrary private sources or OCI only after the security, credentials, cost, and abuse-control design is proven.
Acceptance Tests
The next release is successful when a new user can:
- Start from a maintained configuration or their own AI-produced input.
- Materialize and inspect exact objects without an account.
- Understand findings and the limits of the checks.
- Correct the input and retain one accepted digest.
- Keep that exact result in ConfigHub without repeating the investigation.
- Create a staging variant and compare it with production.
- See lifecycle and destination requirements before promotion.
- Promote and release the exact accepted revision.
- See what reached the destination and what remains unknown.
- Complete the same job through the website or CLI and move between them without changing the source, selected configuration, or accepted digest.
- Build one small internal developer platform from Catalog components and native Kubara input, then promote one platform-component revision, one developer-tool revision, and one application revision independently through ConfigHub.
The short browser tour is successful when a new user can create, inspect, change, and compare one sample component without a CLI or cluster and without being sent through the full education sequence.
Work Deliberately Parked
- Analytics vendor selection and issue #1060.
- A new
cub workshoporcub configumbrella. - Relabelling historical scanner receipts.
- Letting an AI approve its own production change.
- Treating static scanning as proof of lifecycle execution or runtime health.
- Expanding the public site with equal-weight entry points before the main check, keep, and promote journey works end to end.