# PBS Compatibility and Evolution Policy Status: Draft v0 (Quality-Gate Baseline) Applies to: practical support states and compatibility publication policy tied to executable quality gates ## 1. Purpose This document defines how PBS support is published at the current project stage. The policy is intentionally minimal: - publish only support claims that are backed by tests, - use a small support-state model that a solo project can maintain, - and avoid over-specifying compatibility promises before backend/runtime contracts settle. ## 2. Scope This document defines: - support-state vocabulary for language lines, - minimum published support table fields, - and how support-state changes must be recorded. This document does not define: - full deprecation-window math per domain, - one binary/PBX compatibility model, - one release process implementation. ## 3. Authority and Precedence Normative precedence: 1. `1. Language Charter.md` 2. `2. Governance and Versioning.md` 3. `13. Conformance Test Specification.md` 4. This document If a rule here conflicts with higher-precedence authorities, it is invalid. ## 4. Normative Inputs This document depends on: - `2. Governance and Versioning.md` - `13. Conformance Test Specification.md` ## 5. Support States PBS currently uses three support states: - `unsupported` - `experimental` - `supported` Meaning: - `unsupported`: no compatibility promise. - `experimental`: active development; behavior may change; tests may exist but are not yet a stable support promise. - `supported`: active compatibility promise for declared scope, backed by required quality gates. ## 6. Gate-Backed Support Rule Support states must map to quality-gate evidence: 1. `frontend-ready` evidence requires Gate U from `13`. 2. `integration-ready` evidence requires Gate U plus Gate I when Gate I applies to the language/backend. 3. `supported` state requires maintained evidence for the scope being promised. No published `supported` claim may exist without mapped test evidence. Unsupported executable surfaces excluded from a claim (for example `SPAWN`/`YIELD` outside `core-v1`) MUST be stated explicitly in published notes. ## 7. Minimum Published Support Table A published support table must include, at minimum: 1. language identifier, 2. language line/version scope, 3. runtime line (or `N/A` when Gate I is not applicable yet), 4. Gate U status, 5. Gate I status (`pass`, `fail`, or `deferred`), 6. support state (`unsupported`, `experimental`, `supported`), 7. optional notes. No additional matrix dimensions are mandatory at this stage. ## 8. Support-State Changes When support changes, the project must update together: 1. support table state, 2. gate evidence status, 3. and a short rationale note when users could be affected. This document requires visibility of change, not a specific changelog format. ## 9. Explicit Deferrals The following remain intentionally open: - domain-specific promise strength beyond the current gate-backed model, - exact deprecation/removal windows, - PBX/binary compatibility policy details, - mandatory migration tooling triggers. ## 10. Non-Goals - Simulating large-organization compatibility governance. - Freezing domains that are still not implemented. - Requiring one matrix tooling format. ## 11. Exit Criteria This document is in a healthy state when: 1. every active language line has an explicit support state, 2. every `supported` state has mapped gate evidence, 3. support changes are reflected in table + evidence + note, 4. and no compatibility promise depends on undocumented assumptions.