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.

Zur Installation springen

Quellinformationen

Repository
maximhq/bifrost
Letzte Quellaktivität
14. Juli 2026 um 08:10
Erkannte Sprache von SKILL.md
Englisch
Sterne
8.137
Forks
1.226

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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.
Auf GitHub ansehen