Versioning and deprecation policy¶
Agentic Chaos follows Semantic Versioning. The public surface is defined in api.md.
| Change | Release |
|---|---|
| Bug fix, new fault, probe, payload, injection point, CLI flag, report field, catalog experiment | patch or minor |
| Removing or renaming anything public; changing a default that changes verdicts; incompatible format change | major |
Before 1.0 (0.x), minor releases may still make breaking changes, but each one is listed under "Breaking" in
the CHANGELOG and follows the deprecation process below whenever possible.
Deprecation¶
- The old behaviour keeps working and emits a
DeprecationWarning(Python) or a warning on stderr (CLI) that names the replacement. - It stays for at least one minor release (at least three months after 1.0) before removal in a major release.
- Deprecations are listed in the CHANGELOG when they are introduced and when they are removed.
Experiment file format¶
apiVersion: agentic-chaos/v1is stable. Within v1, changes are additive only: new optional fields, faults, probes and injection points. Files that validate today keep validating with the same meaning.agentic-chaos/v1alpha1(the pre-release format) is still accepted with a deprecation warning. Its structure is identical, so updating theapiVersionline is the whole migration.- An incompatible format would be
v2, shipped together with a migration command and supported side by side withv1for at least one major release.
Verdict stability¶
Changes that can flip a verdict on an unchanged experiment are treated as breaking. Examples: default thresholds, how pass rates are judged, how faults select calls, what a probe counts. Seeded runs make such changes visible: the same file, seed and target give the same verdict across patch and minor releases.
Interop¶
Third-party SDKs are not pinned (see interop.md). When an SDK changes its wire behaviour, Agentic Chaos adds support in a minor release and keeps supporting the previous behaviour while it is in common use.