Install the "config-breaking-changes" agent skill from https://github.com/axelixlabs/axelix/tree/master/.agent_skills/config-breaking-changes into .claude/skills/config-breaking-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config-breaking-changes", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add axelixlabs/axelix --skill config-breaking-changes -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "config-breaking-changes" agent skill from https://github.com/axelixlabs/axelix/tree/master/.agent_skills/config-breaking-changes into .agents/skills/config-breaking-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config-breaking-changes", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add axelixlabs/axelix --skill config-breaking-changes -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "config-breaking-changes" agent skill from https://github.com/axelixlabs/axelix/tree/master/.agent_skills/config-breaking-changes into .cursor/skills/config-breaking-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config-breaking-changes", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add axelixlabs/axelix --skill config-breaking-changes -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "config-breaking-changes" agent skill from https://github.com/axelixlabs/axelix/tree/master/.agent_skills/config-breaking-changes into .gemini/skills/config-breaking-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config-breaking-changes", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add axelixlabs/axelix --skill config-breaking-changes -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "config-breaking-changes" agent skill from https://github.com/axelixlabs/axelix/tree/master/.agent_skills/config-breaking-changes into .github/skills/config-breaking-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config-breaking-changes", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add axelixlabs/axelix --skill config-breaking-changes -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "config-breaking-changes" agent skill from https://github.com/axelixlabs/axelix/tree/master/.agent_skills/config-breaking-changes into .opencode/skills/config-breaking-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config-breaking-changes", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
config-breaking-changes
GitHub stars
148
Token cost
~2.6k tokens
SKILL.md length
1,284 words
Files
3 (incl. references)
Skills in repo
9
Repo updated
First seen
Licence
LGPL-3.0
At a glance
Review configuration property changes in the Axelix project for breaking changes and migration-policy compliance.
Works in 5 steps: Gather the diff and the version context → Inventory the property changes → Classify each change against the four… → …
Commit touches Spring Boot configuration properties (@ConfigurationProperties classes
SKILL.md covers Workflow, The four rules, Applying the breaking-change… and Output format
Calls git, gh and curl; reaches api.github.com; needs GITHUB_TOKEN and GH_TOKEN
What it does
Config Breaking Changes is an agent skill from axelixlabs/axelix. Review configuration property changes in the Axelix project for breaking changes and migration-policy compliance. Use this skill whenever a diff, PR, or commit touches Spring Boot configuration properties (@ConfigurationProperties classes, application.yml/.properties, spring-configuration-metadata) OR Helm chart values (values.yaml, values.schema.json, templates) — including any rename, removal, type/format change, or default-value change of a property or value. Trigger it even when the user only says "review…
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/helm.md` and `references/spring-boot.md`).
It sits in Backend & APIs, covering Backend development and Container orchestration. It works with Spring Boot, Helm and Git. The repository describes itself as: The source code of Axelix - a Delta Force for your Spring Boot ecosystem. The licence is LGPL-3.0.
When your agent uses it
Commit touches Spring Boot configuration properties (@ConfigurationProperties classes
Application.yml/.properties
Spring-configuration-metadata) OR Helm chart values (values.yaml
Values.schema.json
Example prompts
“review this PR”
“check for breaking changes”
“review the config/values changes”
“/config-breaking-changes”
Requirements
A credential in GITHUB_TOKEN
Workflow steps
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 959897a. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
git
gh
curl
helm
From the folder's file list and the shell code blocks in SKILL.md.
Network
Hosts in commands or code, which the agent is likely to contact:
api.github.com
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names these keys or tokens, usually read from environment variables:
GITHUB_TOKEN
GH_TOKEN
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Config Breaking Changes loads about 2.6k tokens when it runs, and up to ~3.8k if it reads all its reference files. Until then it costs about 226 tokens; SKILL.md has 1,284 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~226
When it runs· the whole SKILL.md, loaded when a task matches
~2.6k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~3.8k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/config-breaking-changes/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
config-breaking-changes
description
Review configuration property changes in the Axelix project for breaking changes and migration-policy compliance. Use this skill whenever a diff, PR, or commit touches Spring Boot configuration properties (@ConfigurationProperties classes, application.yml/.properties, spring-configuration-metadata) OR Helm chart values (values.yaml, values.schema.json, templates) — including any rename, removal, type/format change, or default-value change of a property or value. Trigger it even when the user only says "review this PR", "check for breaking changes", "review the config/values changes", or when a diff adds, removes, or renames keys in values.yaml or a configuration-properties class. It catches in-place renames, removal of non-deprecated properties, type/format changes, and default-value changes, and applies the "breaking-change" label when a breaking change is present.
Config Breaking-Change Review
Configuration properties are a public contract. Operators pin them in their
application.yml, their Helm values.yaml, their GitOps repos, and their runbooks.
When a property silently disappears, gets renamed in place, stops accepting the value
they wrote, or quietly changes its default, their deployment breaks — often only at
the worst moment, during an upgrade in production. The whole point of this review is
to make sure every config change either preserves that contract or breaks it loudly,
on purpose, and only at a major version boundary, with a migration path the operator
can follow.
This skill applies the same four rules to two surfaces:
Spring Boot properties in the axelix application — see references/spring-boot.md
Helm chart values — see references/helm.md
A single PR can touch both. Review each surface it changes.
Workflow
1. Gather the diff and the version context
You cannot judge most of these rules without knowing what version this change ships in
and whether a property was already deprecated in a previously released version. Removal,
in particular, is only legal at a major-version boundary for a property that was already
deprecated in an earlier release.
Collect:
The diff under review. Prefer the PR diff; otherwise diff the current branch against
its base (git diff <base>...HEAD).
The target version. For Spring Boot, read the project version (pom.xml /
build.gradle). For Helm, read Chart.yaml (version and appVersion). Note whether
this PR/release crosses a major boundary (e.g. 1.x → 2.0).
Deprecation history. For any property being removed, use git log/git blame and the
changelog to find out when it was deprecated. A deprecation added in this same PR does
not authorize removal in this same PR.
If you genuinely cannot determine the version context, say so explicitly in the report rather
than guessing — an unverifiable removal is a finding, not a pass.
2. Inventory the property changes
For each surface the diff touches, identify every property/value that was added, removed,
renamed, retyped, or had its default changed. The reference files tell you exactly where
these live and how to read defaults, types, and deprecation markers on each surface. Read the
relevant reference file before classifying.
3. Classify each change against the four rules
Walk every changed property through the rules below. Each rule defines what a compliant
change looks like and what counts as a violation.
Two outcomes are independent and you must report both:
Violation — the change breaks the migration policy. The author must fix it before merge.
Breaking change present — the change is breaking (even if handled correctly, like a
default change at a major bump). This drives the breaking-change label.
A correctly-executed rename is still a breaking change in spirit and should be labelled; an
incorrectly-executed rename is both a violation and a breaking change.
4. Report (see output format below)
5. Apply the label if any breaking change is present (see labeling below)
The four rules
Rule 1 — Renaming a property: never in place; migrate gradually
A name is part of the contract. We never rename a property in place — not even when bumping
the major version — because an operator who upgrades would have their old key silently ignored.
Instead a rename is a gradual migration that spans three major versions, giving operators a
grace period to move over:
1.0.0: Property A
2.0.0: Property A_new AND Property A (old) — A_new takes precedence, falls back to A
3.0.0: Property A_new only
The introducing PR (the 2.0.0 step) must, in the same commit:
Add the new property. Its value takes precedence; it falls back to the old property's
value only when the new one is unset. (Concretely, renaming instanceName →
instanceNamePrefix: read instanceNamePrefix, and only if it has no value, read
instanceName.)
Deprecate the old property and point operators at the replacement.
Violation if: the old name is gone and the new name appears in its place (rename in place);
the new property is added but the old one is not deprecated; precedence is backwards (old value
wins over new); or there is no fallback so existing configs stop working.
The final removal of the old property (the 3.0.0 step) is governed by Rule 2.
Rule 2 — Removing a property: deprecate first, communicate the alternative, remove only at a major boundary
A property existed for a reason, so we can never just remove it. Removal is the last step of a
deliberate, announced deprecation:
It must already have been deprecated in a previously released version. Deprecating and
removing in the same PR is a violation — operators never got the grace period.
It may only be removed in a new major release. Removing it in a minor/patch release is a
violation.
The deprecation must have communicated the alternative, and the removal notice must repeat
it. Always answer: what should operators do instead? — switch to a replacement property, use a
new bundle of finer-grained properties, or (if the feature is genuinely obsolete) explain that no
replacement is needed and why. "We're removing X" with no path forward is never acceptable.
Violation if: a non-deprecated property is removed; a property is deprecated and removed in the
same PR; a property is removed outside a major bump; or the removal/deprecation gives no alternative
or explanation.
Show full SKILL.md (465 more words)Show less
Rule 3 — Changing a property's type or format: introduce a new property instead
We do not change the accepted type or format of an existing property, because a config that was
valid yesterday must stay valid. If heartbeatInterval accepted a number and you now want it to
accept a string, do not widen or change its type in place — an operator's existing numeric value
might now parse differently or fail.
Instead, introduce a new property that accepts the new type (e.g. heartbeatIntervalText) and
then run the Rule 1 migration: new property takes precedence with fallback to the old one, and
deprecate the old one in the same commit. The old typed property is eventually retired under Rule 2.
Violation if: an existing property's type or accepted format changes in place (e.g. a field's
type changes, an enum loses or repurposes a value, a parser is swapped for an incompatible one)
without a new property carrying the new type.
Rule 4 — Changing a default value: breaking, but allowed at a major bump with no new property
Changing a default is a breaking change for us — full stop. An operator relying on the implicit
default (heartbeat interval 30 → 45) gets different runtime behavior after an upgrade without
changing a single line of their config, and that surprise is exactly what we refuse to ship silently.
Unlike the other rules, a default change needs no new property and no advance signalling: ship it
in a new major version and that is fine.
Violation if: a default changes in a minor/patch release. Compliant when it lands in a major
release — but it is still a breaking change, so it must be labelled and called out in the report
(and ideally noted in the changelog/migration guide so operators see the new behavior).
Applying the breaking-change label
If the review finds any breaking change present (a violation, or a compliant-but-breaking change
like a major-version default change), the PR must carry the breaking-change label so downstream
release tooling and reviewers (CodeRabbit, etc.) treat it accordingly.
Apply it with whatever is available in the environment:
If neither the CLI nor a token is available (e.g. a purely local review), do not fail — state
clearly in the report that the PR requires the breaking-change label and that it could not be
applied automatically, so a human or CI can add it.
Output format
Report like this:
## Config breaking-change review
**Surfaces reviewed:** <Spring Boot properties | Helm values | both>
**Target version:** <version> (<major bump? yes/no>)
**Breaking change present:** <yes/no> → label `breaking-change` <applied / needs to be applied / not needed>
### Violations (must fix before merge)
- `<property>` (<surface>): <which rule> — <what's wrong and the corrective action>
### Compliant breaking changes (allowed, labelled)
- `<property>` (<surface>): <e.g. default changed 30 → 45 in major release 2.0.0>
### Notes / unverifiable
- <anything you couldn't confirm, e.g. deprecation history unknown>
If there are no config property changes at all, say so plainly — a one-line "no configuration
properties changed in this diff" is the right answer, and don't apply the label.
Config Breaking Changes next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Config Breaking Changes compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Config Breaking Changes this skillaxelixlabs/axelix
148
—
~2.6k
Automated safety check: Pass
LGPL-3.0
Pi K8s Deployrodrigorodrigues/microservices-design-patterns
Check Docker Hub for a new :latest image on a managed service and roll it out to the home Pi k8s cluster, the same way authentication-service was deployed on 2026-08-29 (SSH + kubectl rollout…
Prepare an Axelix minor lockstep release — the pre-release housekeeping changes, a hand-editable release-notes draft, and the post-release bump to the next -SNAPSHOT.
Create batched Dependabot-style pull requests for GitHub security findings in axelixlabs/axelix, grouped by dependency surface such as master/front-end, master/build.gradle.kts, or starter Gradle…
Review configuration property changes in the Axelix project for breaking changes and migration-policy compliance. Config Breaking Changes is an agent skill from axelixlabs/axelix. Review configuration property changes in the Axelix project for breaking changes and migration-policy compliance.
How do I install Config Breaking Changes in Claude Code?
Run `npx skills add axelixlabs/axelix --skill config-breaking-changes -a claude-code`. Or copy the skill folder (.agent_skills/config-breaking-changes in axelixlabs/axelix) into .claude/skills/config-breaking-changes in your project. Claude Code loads it when a task matches its description.
How do I install Config Breaking Changes in Codex?
Run `npx skills add axelixlabs/axelix --skill config-breaking-changes -a codex`. Or copy the skill folder (.agent_skills/config-breaking-changes in axelixlabs/axelix) into .agents/skills/config-breaking-changes in your project. Codex loads it when a task matches its description.
Can I use Config Breaking Changes in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add axelixlabs/axelix --skill config-breaking-changes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/config-breaking-changes, .gemini/skills/config-breaking-changes, .github/skills/config-breaking-changes and .opencode/skills/config-breaking-changes in your project.
What does Config Breaking Changes need to run?
Going by SKILL.md and its folder, Config Breaking Changes needs the command-line tools its instructions call (git, gh, curl and helm) and credentials named GITHUB_TOKEN and GH_TOKEN. Our summary lists: A credential in GITHUB_TOKEN.
Does Config Breaking Changes access the network?
SKILL.md names 1 domain. In commands or code: api.github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Is Config Breaking Changes safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Config Breaking Changes use?
Config Breaking Changes is published under the LGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Config Breaking Changes use?
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.
What are the alternatives to Config Breaking Changes?
Skills that share tags, products or a category with Config Breaking Changes: Pi K8s Deploy (rodrigorodrigues/microservices-design-patterns, 187 stars), Azure Cloud Migrate (microsoft/GitHub-Copilot-for-Azure, 255 stars), Backend Codeconvention (SeJonJ/ChatForYou, 109 stars) and Atmos Helm (cloudposse/atmos, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Config Breaking Changes?
axelixlabs (a GitHub organization) maintains it in axelixlabs/axelix, which has 148 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.
Source: axelixlabs/axelix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.