Repository navigation
feat(managed): gate installs by digest and report managed statuses [skip release] - #417
Merged
Merged
Conversation
Every operation that adds or replaces skill content now checks the managed state before changing anything: skill add and update, bundle add, update, override and reset, project install and restoring personal overrides. Blocked digests are refused, and under allowed = listed so is anything unlisted; editable local skills skip the list but never the block. skill list gains managed-blocked and managed-not-allowed, which take precedence over the other statuses and fail --check. Skill commands follow the state's command policy: refused without a required state, a warning when the state expired or is missing.
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
Third slice of ADR-0016: the install gate and the managed statuses (decisions 4, 13, 14, 22 and 23).
Install gate (
managed::gate). Every operation that adds or replaces skill content checks the managed state before changing anything:skill addandskill update;bundle add,bundle update,bundle overrideand resetting an override;project install.Blocked digests are refused. Under
allowed = listed, unlisted content is refused too. Editable local skills skip the list but never the block, and are refused outright when an https source setseditable = "refused". A refusal links to the state's request URL when it has one.server serveandmcp serveshare the core seam, and the gate reads the state again at each operation.Statuses.
skill list(project and global) gainsmanaged-blockedandmanaged-not-allowed. They take precedence over the other eleven statuses, and--checkfails on them even outside the current selection.Command policy. Skill command groups follow the decision 4 table. They are refused when a required state is missing or the settings can't be used, and print a warning to stderr when the state expired or an optional one is missing.
managed,cache,repoandclialways run.Docs. CONTEXT.md lists thirteen statuses,
reconciliation.mdxhas the two new rows, andmanaged-command.mdxhas a section on installs and other commands.Test plan
cargo clippy --workspace --all-targets --all-features -- -D warningscargo llvm-cov nextest --all-features -E 'not test(install_e2e_tests)': 2185 passedskill list --checkwith the managed statuses;