Helm chart quality review
Skill Raishin/vanguard-frontier-agentic/skills/qa/helm-chart-quality-review
Use this skill when a user provides a Helm chart or asks to review Helm chart quality, security, or testability — including Chart.yaml, values.yaml, templates/, tests/, or chart-testing CI configuration.From its SKILL.md
npx -y skills add Raishin/vanguard-frontier-agentic --skill helm-chart-quality-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 20 stars20 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Helm Chart Quality Review
Purpose
This skill reviews Helm chart source for quality, security, and testability defects. It reads chart files statically — Chart.yaml, values.yaml, values.schema.json, templates/, tests/, and CI configuration — without installing the chart or contacting a Kubernetes cluster. The review surfaces defects that allow bad workloads to be deployed silently: insecure container security contexts, missing resource governance, absent health probes, RBAC over-permission, hardcoded or default credentials, and missing helm test coverage.
Lean operating rules
- Treat
privileged: true,capabilities.add: [ALL]or any combination that grants root-equivalent privileges as CRITICAL — stop and flag before continuing. - Treat
hostNetwork: true,hostPID: true, orhostIPC: trueas CRITICAL — these give a container visibility into the node's network stack, process table, or IPC namespace. - Treat secrets rendered inline in a ConfigMap (not a Secret resource) as CRITICAL — plain-text secrets are visible to any workload that can read ConfigMaps in the namespace.
- Treat a
ClusterRoleBindingto thedefaultservice account as CRITICAL — any workload in the namespace inherits cluster-scoped access. - Treat
capabilities.add: [SYS_ADMIN]or[NET_ADMIN]as CRITICAL — these grant near-root kernel capabilities. - Treat hardcoded
:latestimage tags without override capability as HIGH — breaks reproducibility and makes rollback unreliable. - Treat
securityContext.runAsRoot: trueor the absence ofrunAsNonRooton pod or container spec as HIGH — workloads should not run as UID 0. - Treat
allowPrivilegeEscalationnot explicitly set tofalseas HIGH — a child process can gain more privileges than the parent. - Treat cluster-scoped RBAC roles where namespace-scoped would suffice as HIGH — blast radius of a compromise is the entire cluster.
- Treat
serviceAccount.automountServiceAccountTokennot set tofalsewhen the workload does not call the Kubernetes API as HIGH — the token is mounted unnecessarily and exploitable. - Treat missing
resources.requestsandresources.limitson every container as HIGH — without limits, a misbehaving pod can trigger node over-subscription and OOM kills on neighbours. - Treat missing
livenessProbeorreadinessProbeas HIGH — rolling updates proceed blind; a pod stuck in a failed state can be sent live traffic. - Treat sensitive default credential values (
admin,password, empty string) in values.yaml as CRITICAL — users forget to override defaults and ship them to production. - Treat the absence of
values.schema.jsonwhen required values carry no type or pattern constraint as MEDIUM —helm installaccepts arbitrary input with no validation. - Treat missing
readOnlyRootFilesystem: trueas MEDIUM — a container with a writable root filesystem can modify its own binaries or drop exploit payloads. - Treat missing
startupProbefor slow-starting containers as MEDIUM — liveness checks kill containers that need more startup time, causing crash loops. - Treat no
PodDisruptionBudgetfor stateful or singleton workloads as MEDIUM — node drains can take the workload to zero replicas. - Treat no
HorizontalPodAutoscalerwhere the workload is expected to scale as LOW. - Treat probe timeouts or failure thresholds at defaults with no tuning rationale as LOW.
- Treat no
NOTES.txtas LOW — users have no post-install guidance. - Treat a chart version that is not semver-compliant as LOW.
- Treat
tests/that contain only pod-existence checks and no service reachability or functional assertion as LOW — existence proves the pod started, not that the service works. - Treat no
tests/directory at all as MEDIUM — helm test integration is absent. - Treat no CI integration for chart-testing (
ct lint-and-installor equivalent) as MEDIUM — the chart is not regression-tested on install. - Label every finding with its evidence basis:
chart source provided,values only,documentation-based, orinference. - Do not request kubeconfig, cluster credentials, cloud provider credentials, or live values files containing secrets. Ask for sanitized versions with placeholder values.
- Static review only — never install a chart, never contact a Kubernetes cluster, never run
helm upgradeorkubectl apply.
References
Load these only when needed:
- Workflow and output contract — use when executing the full review or formatting the final answer.
Response minimum
Return, at minimum:
- Linting and template correctness findings
- Values hygiene findings (sensitive defaults, schema validation,
:latesttags) - Template security findings (securityContext, capabilities, host namespaces, secrets in ConfigMap)
- Resource governance findings (requests/limits, PDB, HPA)
- Health and observability findings (liveness, readiness, startup probes)
- Testability findings (helm test, chart-testing CI)
- RBAC and service account findings
- Severity-labelled finding list (CRITICAL / HIGH / MEDIUM / LOW)
- Safe next actions
What ships with it: 2 files
9.3 KB alongside SKILL.md
references/
- workflow-and-output.md7.8 KB
- metadata.json1.5 KB