Skip to main content

helm-update

Apply helm chart updates for Bifrost. Detects config.schema.json changes since the last helm release, applies user-requested changes, updates values.yaml / values.schema.json / _helpers.tpl, bumps Chart.yaml version, updates helm README (Latest Version + Upcoming section), creates a docs MDX changelog, and updates docs.json navigation. Ends with a diff review to verify every helm field maps back to a config.schema.json counterpart. Invoked with /helm-update.

Ir a la instalación

Datos de origen

Repositorio
maximhq/bifrost
Última actividad en el origen
14 de julio de 2026 a las 08:10
Idioma detectado de SKILL.md
inglés
Estrellas
8223
Forks
1253

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
helm-update
description
Apply helm chart updates for Bifrost. Detects config.schema.json changes since the last helm release, applies user-requested changes, updates values.yaml / values.schema.json / _helpers.tpl, bumps Chart.yaml version, updates helm README (Latest Version + Upcoming section), creates a docs MDX changelog, and updates docs.json navigation. Ends with a diff review to verify every helm field maps back to a config.schema.json counterpart. Invoked with /helm-update.
allowed-tools
Read, Grep, Glob, Bash, Edit, Write, AskUserQuestion
# Helm Update Apply changes to the Bifrost Helm chart, keep it in sync with `config.schema.json`, and update all changelogs. ## Key File Paths | File | Path | |------|------| | Config schema | `transports/config.schema.json` | | Chart metadata | `helm-charts/bifrost/Chart.yaml` | | Values | `helm-charts/bifrost/values.yaml` | | Values schema | `helm-charts/bifrost/values.schema.json` | | Helpers template | `helm-charts/bifrost/templates/_helpers.tpl` | | Helm README | `helm-charts/bifrost/README.md` | | Docs changelogs | `docs/changelogs/helm-v<version>.mdx` | | Docs navigation | `docs/docs.json` | --- ## Workflow ### Step 1: Gather Current State Read the current helm chart version and identify the last helm release commit: ```bash # Current helm chart version cat helm-charts/bifrost/Chart.yaml | grep '^version:' # Latest docs helm changelog (= last released version) ls -1t docs/changelogs/helm-v*.mdx | head -1 # Find the commit that added the latest helm changelog LAST_HELM_MDX=$(ls -1t docs/changelogs/helm-v*.mdx | head -1) git log --oneline -- "$LAST_HELM_MDX" | head -1 ``` Save the last-release commit SHA — you'll need it to scope the config.schema.json diff. ### Step 2: Check config.schema.json Changes Since Last Helm Release ```bash LAST_COMMIT=$(git log --oneline -- "$(ls -1t docs/changelogs/helm-v*.mdx | head -1)" | awk '{print $1}') # What changed in config.schema.json since then? git diff ${LAST_COMMIT}..HEAD -- transports/config.schema.json ``` Identify any fields added, removed, or changed in `config.schema.json` that are **not yet reflected** in the helm chart. These are gaps that must be closed — even if the user did not explicitly ask for them. Note each gap; you will apply them alongside the user's requested changes. ### Step 3: Apply User-Requested Changes + Fill Gaps For every change (user-requested AND schema gaps detected in Step 2): #### values.yaml Add new fields as **commented-out** blocks with a realistic sample value. Place new sections near related existing fields. Keep existing uncommented defaults intact. ```yaml # bifrost.newFeature.someField -- brief description # someField: "example-value" ``` #### values.schema.json Add a matching JSON schema property with: - Correct `type` (string/boolean/integer/object/array) - `description` matching the config.schema.json description (paraphrased concisely) - Any `enum`, `default`, `minimum`/`maximum`, or nested `properties`/`items` needed - Mark required fields in the parent object's `required` array if mandatory Locate the correct parent path in `values.schema.json` by searching for the nearest ancestor field. #### _helpers.tpl Wire new values into the generated config.json block inside `{{- define "bifrost.config" -}}`. Follow the existing rendering patterns: - Simple scalar: `{{- if .Values.bifrost.someField }}` → emit `"some_field": {{ .Values.bifrost.someField | toJson }}` - Optional block: wrap in `{{- if ... }}` / `{{- end }}` - Duration strings: pass through `toJson` unchanged - `env.VAR_NAME` references: pass through `toJson` unchanged Search the existing template for a nearby field to find the right insertion point. ### Step 4: Determine New Helm Chart Version Read `helm-charts/bifrost/Chart.yaml`. Increment the **patch** version (third number) unless the scope of changes clearly warrants a minor bump. Ask the user if unsure: ``` Current: 2.1.27 → New: 2.1.28 ``` Update `Chart.yaml`: ```yaml version: 2.1.28 # updated line ``` ### Step 5: Update Helm README File: `helm-charts/bifrost/README.md` **5a. Bump "Latest Version" line** Find and update: ``` **Latest Version:** 2.1.27 ``` → ``` **Latest Version:** 2.1.28 ``` **5b. Update the Upcoming section** Look for an `### Upcoming` section immediately after the `## Changelog` heading. If it **does not exist**, insert one. On every run, **append** bullet points for the current changes to `### Upcoming` — do not create a new versioned heading; that happens at release time. Structure: ```markdown ## Changelog ### Upcoming - Brief bullet describing what was added/changed. Reference the values.yaml path (e.g. `bifrost.foo.bar`) and the config.json field it renders into (`foo_bar`). One bullet per logical change. ### 2.1.27 ...existing entries... ``` Keep bullets concise — one line each. No paragraph prose. Mirror the style of existing changelog entries. ### Step 6: Create Docs MDX Changelog Create a new file `docs/changelogs/helm-v<NEW_VERSION>.mdx`: ```mdx --- title: "v<NEW_VERSION>" description: "Helm v<NEW_VERSION> changelog - <YYYY-MM-DD>" --- <Update label="Bifrost Helm" description="v<NEW_VERSION>"> ## Changelog - <bullet 1 — same content as README Upcoming bullets> - <bullet 2> ... </Update> ``` Use today's date (`2026-07-10` or whatever the current date is). Mirror the bullet style from `docs/changelogs/helm-v2.1.26.mdx`. ### Step 7: Update docs.json Navigation In `docs/docs.json`, find the `"item": "Helm"` group (under changelogs). Prepend the new entry at the top of its `pages` array: ```json "pages": [ "changelogs/helm-v2.1.28", ← insert here "changelogs/helm-v2.1.27", ... ] ``` ### Step 8: Final Diff Review (Correctness Check) After all edits, run a fresh perspective check: ```bash git diff -- helm-charts/bifrost/values.yaml helm-charts/bifrost/values.schema.json helm-charts/bifrost/templates/_helpers.tpl ``` For **every** new field in the diff, verify: 1. **values.yaml** — field exists (commented out with sample value) 2. **values.schema.json** — matching property with correct type and description 3. **_helpers.tpl** — field is rendered into config.json output under the correct JSON key 4. **config.schema.json counterpart** — confirm the JSON key emitted by `_helpers.tpl` exists in `transports/config.schema.json` (or is a known helm-only field like `replicaCount`) If any field fails check 4, either fix the mapping or flag it to the user explicitly. Report a short table: | Helm values path | config.json key | In config.schema.json? | |---|---|---| | `bifrost.foo.bar` | `foo_bar` | ✓ | | `bifrost.baz` | `baz_config` | ✓ | --- ## Common Rendering Patterns in _helpers.tpl ```go-template {{/* Simple optional string */}} {{- if .Values.bifrost.server.readBufferSize }} "read_buffer_size": {{ .Values.bifrost.server.readBufferSize | toJson }}, {{- end }} {{/* Optional boolean */}} {{- if hasKey .Values.bifrost.loadBalancer "directionSelectionEnabled" }} "direction_selection_enabled": {{ .Values.bifrost.loadBalancer.directionSelectionEnabled | toJson }}, {{- end }} {{/* Nested object — only emit if any subfield set */}} {{- if .Values.bifrost.newFeature }} "new_feature": { {{- if .Values.bifrost.newFeature.timeout }} "timeout": {{ .Values.bifrost.newFeature.timeout | toJson }}, {{- end }} }, {{- end }} ``` ## Important Rules - **Never** omit the `### Upcoming` section after Step 5 — always ensure it exists and is populated. - **Never** promote `### Upcoming` to a versioned heading — that is done by the changelog-writer skill at release time. - **Never** write values.yaml fields as uncommented unless they were already uncommented (i.e., they are mandatory defaults like `replicaCount`). - **Always** verify config.schema.json mapping in the final diff review. - If a config.schema.json gap is found but its helm mapping would be complex (e.g. a new top-level plugin system), flag it to the user rather than silently skipping. - Keep changelog bullets brief: one line, what was added/changed, what values.yaml path, what config.json key it renders into.
Ver en GitHub