agentsclimarketplace

Helm chart quality review

Skill Raishin/vanguard-frontier-agentic/skills/qa/helm-chart-quality-review

Curated marketplace of AI skills, agents, and rules for cloud, zero-trust, and compliance-aware engineering - works with Claude Code, Codex, Cursor, Copilot, and more.

Install
npx -y skills add Raishin/vanguard-frontier-agentic --skill helm-chart-quality-review

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 18 stars18 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.

What its author says it does

Copied from the file, not written here

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.

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, or hostIPC: true as 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 ClusterRoleBinding to the default service 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 :latest image tags without override capability as HIGH — breaks reproducibility and makes rollback unreliable.
  • Treat securityContext.runAsRoot: true or the absence of runAsNonRoot on pod or container spec as HIGH — workloads should not run as UID 0.
  • Treat allowPrivilegeEscalation not explicitly set to false as 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.automountServiceAccountToken not set to false when the workload does not call the Kubernetes API as HIGH — the token is mounted unnecessarily and exploitable.
  • Treat missing resources.requests and resources.limits on every container as HIGH — without limits, a misbehaving pod can trigger node over-subscription and OOM kills on neighbours.
  • Treat missing livenessProbe or readinessProbe as 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.json when required values carry no type or pattern constraint as MEDIUM — helm install accepts arbitrary input with no validation.
  • Treat missing readOnlyRootFilesystem: true as MEDIUM — a container with a writable root filesystem can modify its own binaries or drop exploit payloads.
  • Treat missing startupProbe for slow-starting containers as MEDIUM — liveness checks kill containers that need more startup time, causing crash loops.
  • Treat no PodDisruptionBudget for stateful or singleton workloads as MEDIUM — node drains can take the workload to zero replicas.
  • Treat no HorizontalPodAutoscaler where 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.txt as 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-install or 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, or inference.
  • 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 upgrade or kubectl apply.

References

Load these only when needed:

Response minimum

Return, at minimum:

  • Linting and template correctness findings
  • Values hygiene findings (sensitive defaults, schema validation, :latest tags)
  • 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/

Keep looking

Skills are one crate of 327,069. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.