feat: add CLI compatibility manifest for template version pinning#333
Open
feat: add CLI compatibility manifest for template version pinning#333
Conversation
2a3fd34 to
8d8dc43
Compare
Add cli-compat.json that maps CLI versions to compatible AppKit template and Agent Skills versions. This enables decoupling template delivery from CLI release cycles — older CLI versions automatically receive a compatible template version. Also add tools/check-cli-compat.ts validation script and CI step to prevent malformed manifests from being merged. Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
- Validate that "next" appkit/skills versions are >= all versioned entries to prevent accidental downgrades for newest CLIs - Add check-cli-compat.ts to CLAUDE.md tools listing Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
- Reject prerelease suffixes in SEMVER regex (compareSemver produces NaN for them, silently bypassing next>=max check) - Check appkit and skills fields independently in next>=max validation (previously a missing appkit skipped skills too) - Require at least one versioned CLI entry besides "next" Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
- Add "Updating the CLI compatibility manifest" section to CONTRIBUTING.md - Reduce cli-compat.json to two initial entries (next + 0.299.0) Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
- Bail out of cross-entry comparison when structure validation fails, preventing NaN-based semver comparisons on invalid entries - Reject unexpected fields in manifest entries - Validate versioned keys are in ascending semver order - Extract validateCliCompat() for testability - Add 20 unit tests covering all validation branches Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
- Rewrite "When to update" section in CONTRIBUTING.md to match design doc (evals step, "last 3 CLI versions" detail, future automation note) - Add bump-cli-compat Claude Code skill for updating the manifest Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
8d8dc43 to
9b43085
Compare
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add
cli-compat.json— a compatibility manifest mapping Databricks CLI versions to compatible AppKit template and Agent Skills versions (design doc, Option C).What's included
cli-compat.json— manifest withnext+ versioned CLI entries, each mapping to{appkit, skills}versionstools/check-cli-compat.ts— CI validator ensuring:nextkeynextor valid semver (X.Y.Z)appkitandskillsfields (no extra keys)nextversions are >= all versioned entriesnextlint_and_typecheckjobcompareSemvercheck-cli-compattool.claude/skills/bump-cli-compat.md— Claude Code skill to bump versions and create a PRTest plan
pnpm exec tsx tools/check-cli-compat.tspassespnpm test)