| name | add-helm-chart |
| description | Scaffold a new Helm chart with standard templates and values. Use when deploying a new microservice or component to Kubernetes and it needs its own chart. |
| allowed-tools | Bash, Write, Read, Glob |
| user-invocable | true |
Add Helm Chart
Scaffold a new Helm chart following project conventions.
Arguments
{chart-name} — Name of the chart (required, e.g., signalbeam-platform, device-manager)
Process
- Create the chart directory structure under
deploy/charts/{chart-name}/:
deploy/charts/{chart-name}/
├── Chart.yaml
├── values.yaml
├── templates/
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── configmap.yaml
│ ├── ingress.yaml
│ └── hpa.yaml
-
Read .claude/rules/helm-charts.md for project conventions.
-
Generate files following these conventions:
- Namespace:
signalbeam
- Standard Kubernetes labels:
app.kubernetes.io/name, app.kubernetes.io/instance, app.kubernetes.io/version
- Health check paths:
/health/live (liveness), /health/ready (readiness)
- Resource limits and requests with sensible defaults
- HPA with min 1, max 3 replicas
-
Chart.yaml template:
apiVersion: v2
name: {chart-name}
description: {description}
type: application
version: 0.1.0
appVersion: "0.1.0"
-
values.yaml — Include configurable values for:
image.repository, image.tag, image.pullPolicy
replicaCount
resources.requests and resources.limits
service.type, service.port
ingress.enabled, ingress.hosts
env (environment variables as key-value map)
-
Validate the chart:
helm lint deploy/charts/{chart-name}
helm template test deploy/charts/{chart-name} > /dev/null
Output
After scaffolding, report:
## Scaffolded: {chart-name} Helm chart
Files created:
- `deploy/charts/{chart-name}/Chart.yaml`
- `deploy/charts/{chart-name}/values.yaml`
- `deploy/charts/{chart-name}/templates/_helpers.tpl`
- `deploy/charts/{chart-name}/templates/deployment.yaml`
- `deploy/charts/{chart-name}/templates/service.yaml`
- `deploy/charts/{chart-name}/templates/configmap.yaml`
- `deploy/charts/{chart-name}/templates/ingress.yaml`
- `deploy/charts/{chart-name}/templates/hpa.yaml`
Validation: helm lint {PASS/FAIL}
Next: Customize `values.yaml` for the specific service, then run `/infra-lint helm`.
Error Handling
- Chart directory already exists: Warn the user and ask whether to overwrite or extend the existing chart.
- Helm not installed: Suggest installing with
brew install helm.
- Lint fails after scaffolding: Review template syntax — common issues are missing
{{- include }} helpers or incorrect indentation.
After Scaffolding
Remind to:
- Customize
values.yaml for the specific service
- Add environment-specific value overrides if needed
- Update any umbrella chart dependencies if applicable