Contracts

sync-cli.md

Contract: pack sync

python scripts/sync_packs.py [--pack built-in|internal|all] [--offline] [--check] (make sync-packs runs --pack all)

SituationExitCode
Synced or already current0—
--check and the tree matches0—
--check and the tree is missing or stale1PACK_TREE_STALE
Digest mismatch after fetch1PACK_DIGEST_MISMATCH
Commit not resolvable1PACK_COMMIT_UNRESOLVABLE
No network and no cache1PACK_SYNC_UNAVAILABLE (message names make sync-packs)

Runtime: when the built-in tree is absent, built_in_root() raises BuiltInPackMissing, and the message names make sync-packs.

spec-kitty charter pack vendor [--pack <name>] [--ref <ref>] [--subtree <path>] rewrites the pin (commit, subtree, digest) and touches no tracked tree.