Maturity levels

Every feature in the feature matrix carries one of four maturity levels: Stable, Beta, Alpha or Experimental. A level is a promise about how much the feature may change between releases, and so about how carefully you should pin the version you depend on.

The level belongs to the feature, not to the product: one release ships features at every level side by side. Most feature pages also show their surfaces and level in a row of badges under the title, such as CLI Alpha. The feature matrix is the complete list, and the changelog records every change to them, with the changes that break existing use listed under Breaking Changes.

Stable

Ready for daily and production use. Behaviour, configuration and output are kept compatible from one release to the next; when a change cannot be avoided, the changelog says what changed and how to adapt.

Pinning: follow the latest release.

Beta

Complete for its main use and used on real projects. Details may still change between minor releases, such as an option, the shape of an output, or the wording of a diagnostic.

Pinning: pin the minor version you test against, and read the changelog before you move to the next one.

Alpha

Works for the cases its documentation describes, and is under active development. Commands, options and output may change in any release, and parts of what the feature will eventually cover are not there yet; the feature’s page says what is missing.

Pinning: pin the exact version, in CI as well as on your machine, and upgrade deliberately.

Experimental

An early version, published so that you can try it and tell us what you need. It may change substantially between releases, or be reshaped as a whole.

Pinning: pin the exact version, and expect to revisit your configuration when you upgrade.

ubc --help labels the ubc agent command alpha; in these docs it is Experimental, because the level here covers Pharaoh as one product, its ubc agent engine together with its VS Code panels and chat entry point.

Where to give feedback

Feedback on any feature, at any level, is welcome on the ubCode issue tracker.