diff --git a/specification/README.md b/specification/README.md index 0a180641..7b8c3a74 100644 --- a/specification/README.md +++ b/specification/README.md @@ -35,7 +35,35 @@ An implementation is not compliant if it fails to satisfy one or more of the "MU ## Document Statuses -| Status | Explanation | -| -------------------- | ----------------------------- | -| No Explicit "Status" | Equivalent to Experimental. | -| Experimental | Breaking changes are allowed. | +Sections and subsections within the specification are marked with statuses indicating their stability level. +Functionality described in the specification graduates through these statuses with increasing stability. +Stability levels apply only to normative sections within the specification; editorial changes to examples and explanations are exempt from these constraints. +It is the responsibility of the [Technical Steering Committee](https://github.com/open-feature/community/blob/main/governance-charter.md#tsc-members) to consider and approve the graduation of documents. + +Possible statuses are described below: + +### Experimental + +Specification sections that are marked as `Experimental` contain functionality under active development. Breaking changes are allowed and may be made without deprecation notices or warnings with minor version updates. We recommend you use these features in experimental environments and not in production. + +Put simply: + +> We're testing these features out. Things could change anytime. + +### Hardening + +Sections marked as `Hardening` describe functionality with an emphasis on stabilizing existing requirements. Breaking changes require consensus by the [Technical Steering Committee](https://github.com/open-feature/community/blob/main/governance-charter.md#tsc-members) but may still be made with minor version updates. These features are suitable for use in production environments. Feedback is encouraged. + +Put simply: + +> We believe these features are ready for production use, and hope for feedback. + +### Stable + +Sections marked as `Stable` do not allow breaking changes without a major version update. They can be used in production with a high degree of confidence. + +Put simply: + +> These features are stable and battle-hardened. + +NOTE: No explicit status = `Experimental`