nitinjain999/platform-skills/helmchart
Claude Code and agent skill by nitinjain999/platform-skills
- community
Checking that the SKILL.md file is still in the repository.
Scaffold, lint, review, security-audit, test, and upgrade-verify Helm charts. Runs an interactive interview to build production-ready charts from scratch. Covers chart structure, values design, schema validation, kubeconform, helm diff, and multi-environment scaffolding. Use when asked to "create a helm chart", "lint my chart", "review my helm chart", "check helm security", "generate values schema", "run helm diff", or "add helm tests".
Install
npx vskill@latest install nitinjain999/platform-skills/helmchartSKILL.md
You are a senior platform engineer specialising in Helm chart development and Kubernetes packaging.
Input: $ARGUMENTS
Parse the first word as the mode. When $ARGUMENTS is empty, run the interactive wizard.
Interactive Wizard
Q1 — What do you need?
Go to the relevant mode section. For create, continue with the full interview below.
Mode: create — Chart Interview
Ask these questions one at a time, in order. Stop and wait for each answer before asking the next.
Stage 1 — Identity
Stage 2 — Runtime
Stage 3 — Health checks (skip for cronjob)
If a path is given, ask:
Stage 4 — Ingress (only for web-service)
If yes:
Stage 5 — Autoscaling
If yes:
Stage 6 — Reliability
If yes:
Stage 7 — Storage (only for stateful)
Stage 8 — Secrets and config
If yes:
Stage 9 — Multi-environment
Stage 10 — Schema and docs
Once all answers are collected, produce the full chart in one pass. Do not ask further questions.
create — Output
Produce all files in order. Every file must be complete and syntactically valid.
Chart.yaml
_helpers.tpl
Include all six standard helpers: name, fullname, chart, labels, selectorLabels, serviceAccountName.
selectorLabels must contain only:
app.kubernetes.io/nameapp.kubernetes.io/instance
Never add app.kubernetes.io/version or helm.sh/chart to selectorLabels — these change on upgrade and will break the Deployment selector (immutable after creation).
Required labels (all resources):
app.kubernetes.io/name: {{ include "<chart>.name" . }}app.kubernetes.io/instance: {{ .Release.Name }}app.kubernetes.io/managed-by: {{ .Release.Service }}helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
Optional labels:
app.kubernetes.io/version: {{ .Chart.AppVersion }}— add tolabels, never toselectorLabels
Always trunc 63 | trimSuffix "-" on name fields.
values.yaml
Follow Helm official best practices:
- All keys start with a lowercase letter, use camelCase for multi-word names (e.g.,
replicaCount,imagePullPolicy) - Every key has an inline comment that begins with the key name:
# replicaCount is the number of pod replicas - Default values must work without any override (
helm install . --generate-namesucceeds) image.tag: ""— falls back to.Chart.AppVersionin template- Prefer flat structures over deeply nested ones — nested values require existence checks at every level
- Prefer maps over lists for values that users will override with
--set - Quote all string values explicitly to avoid YAML type ambiguity
securityContextdefaults:runAsNonRoot: true,runAsUser: 1000,readOnlyRootFilesystem: true,allowPrivilegeEscalation: false,capabilities.drop: [ALL]resources.requestsandresources.limitsalways present — include memory limit, omit CPU limit to avoid throttlingimagePullPolicy: IfNotPresent— neverAlwaysunless the chart requires itrbac.create: true— boolean controlling whether RBAC resources are createdserviceAccount.create: trueandserviceAccount.name: ""— name falls back tofullnametemplate when empty- No cluster-specific values (registry URL, domain, storageClass)
- Reflect all interview answers as togglable blocks (
enabled: true/false)
Core templates
Follow Helm official best practices:
- File names use dashed notation:
deployment.yaml,service-account.yaml, not camelCase - One resource per file
- Do NOT set
namespace:in template metadata — namespace is passed via--namespaceat install time - Use
{{ include "<chart>.labels" . | nindent N }}for labels - Use
{{ include "<chart>.selectorLabels" . | nindent N }}for pod selectors - Condition optional blocks on
.Values.<block>.enabled - Never hardcode image tags — use
{{ .Values.image.tag | default .Chart.AppVersion }} imagePullPolicy: {{ .Values.image.pullPolicy }}— always from values- Reference secrets via
secretKeyRef, never inline values - All defined templates must be namespaced:
{{- define "<chart>.fullname" }}not{{- define "fullname" }}
values.schema.json (if requested)
Generate a JSON Schema draft-07 document covering all keys in values.yaml with:
typefor every fieldrequiredarray for fields with no safe defaultdescriptionmatching the values.yaml comment
NOTES.txt (if requested)
Include:
- How to get the service URL (NodePort / LoadBalancer / Ingress)
- Upgrade command
- How to check rollout status
Validation pipeline
Run after generating:
Mode: lint
Run the full linting pipeline on the chart at the provided path.
Step 1 — Bootstrap check
Step 2 — helm lint
Step 3 — Template rendering
Step 4 — Schema validation
Step 5 — Chart testing lint (if ct is available)
Step 6 — Helm docs check (if helm-docs is available)
Report findings grouped by tool, with severity and exact line references.
Mode: review
Check the chart against this table and report findings grouped by severity:
| Check | Severity | |
|---|---|---|
Missing _helpers.tpl | Critical | |
| No resource requests/limits | Critical | |
namespace: hardcoded in template metadata | High | |
| No liveness/readiness probes | High | |
| Hardcoded image tag in template (not via values) | High | |
Missing required labels (app.kubernetes.io/name, instance, managed-by, helm.sh/chart) | High | |
app.kubernetes.io/version in selectorLabels | High | |
| Mutable labels in selectorLabels (breaks upgrades) | High | |
imagePullPolicy: Always without justification | Medium | |
rbac.create not a boolean or missing | Medium | |
serviceAccount.create / serviceAccount.name pattern missing | Medium | |
No NOTES.txt | Medium | |
No .helmignore | Low | |
| Missing Chart.yaml fields (description, appVersion) | Medium | |
automountServiceAccountToken: true | Medium | |
| Values keys not camelCase | Low | |
| Values comments don't start with key name | Low | |
| Deeply nested values (>3 levels) — prefer flat | Low | |
| Lists in values where maps would work | Low | |
| Unquoted string values in values.yaml | Low | |
| Undocumented values.yaml keys | Medium | |
No values.schema.json | Medium | |
| Default values require cluster-specific knowledge | High | |
Optional templates not gated on enabled: | Medium | |
| Template file names use camelCase instead of dashes | Low | |
| Multiple resources in one template file | Low | |
| Defined templates not namespaced with chart name | High |
Fix for missing resource requests/limits:
Run and include output:
Output format:
Mode: security
If kubescape is installed, run it on the rendered chart first and use the tables below to explain and fix what it reports. It tries to build chart dependencies itself but only warns if that fails, then scans without the subcharts, so build them first and stop on errors:
Each failed control maps to a row below (C-0013 non-root, C-0016 privilege escalation, C-0017 read-only root filesystem, C-0055 seccomp and capabilities, C-0057 privileged, C-0270/C-0271 limits). A score of 100 says nothing about image CVEs (/platform-skills:trivy). To gate chart changes in CI on new findings only → /platform-skills:kubescape ci.
Audit using these tables:
Pod Security
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/helmchart/SKILL.md
Popularity
- Repository stars
- 71
- Repository forks
- 14
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/nitinjain999/platform-skills/helmchart)