Versioning and stability
boost-core follows Semantic Versioning. The promise covers the public surface only:
- the config authoring API (
BoostConfig::configure()and itswith*()chain); - the CLI: command names, documented options, and exit codes;
- the
BoostAutoSyncComposer hooks; - the plugin contracts, such as
SkillRenderer.
Everything marked @internal, which is the whole engine, and all on-disk regenerable state may change in any release.
PUBLIC_API.md enumerates the committed surface in full. From 1.0.0 on, a breaking change lands only in a major bump and is called out in CHANGELOG.md and UPGRADING.md.
Adding a tag is a breaking change
This one is easy to miss, because it is a content change rather than a code change.
Adding metadata.boost-tags to a skill that already ships removes that skill from every project that has not declared the tag. Treat it as consumer-breaking: announce it, and prefer a new skill over re-tagging an established one.
Family package versions
Each family package versions independently and declares a caret constraint on the engine. Composer resolves the pair, so you upgrade the wrapper and the engine follows:
composer update sandermuller/project-boost-laravel --with-dependenciesvendor/bin/boost doctor --check-versions compares your installed packages against Packagist. It is opt-in because it makes one HTTP call per package.