When changing a user-facing interface (API/config/grammar or externally consumed resources), treat it as a versioned contract:

1) Classify change severity and reflect it in release artifacts

2) Isolate breaking changes from releases you can’t roll back

3) Explicitly version external interface/resource URLs

Example patterns:


‘my-feature’: minor — feat: Deprecate flowchart.htmlLabels in favor of root-level htmlLabels

- Staged syntax release (don’t mix breaking syntax):
```text
Release N: ship only `@{ ... }` syntax (no additional simplified grammar)
Release N+1: add simplified syntax under separate ticket/version

Apply this standard to ensure clients get predictable behavior, deprecations are actionable (not vague), and breakage risk is contained through semantic change classification and explicit versioning.