Repository navigation
Read private plugin preferences from an optional local overlay - #20
Merged
Merged
Conversation
added 2 commits
October 15, 2026 07:24
The old step named the private plugin's setup command; keep that step without the name, and link the overlay section.
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.
Why
This repository is public, but some teams prefer a workflow plugin that lives in a private repository. Naming that plugin here exposes it. Its preference now lives in a file on the user's machine, and the public base lists only public plugins.
What changes
steps/engine.py:load_yaml('plugins.yaml')merges~/.agent-setup/overlay.yamlwhen it exists. Each overlay row'sjobmust match a public row, and its other keys (todaypreferred) are merged in. An unknown job stops setup with its name. The existing preferred-plugin path is unchanged: the read-access check, the per-host install, optional packs, and the fallback to the public plugin.base/plugins.yaml: the privatepreferredblock is removed. The row keeps the publicqp-skillsplugin.example-org/workflow). New tests cover: no overlay installs public rows only; an overlay addspreferredand drives the install and fallback path; an unknown job fails with its name.Proof
mise run checkexits 0: ShellCheck; gitleaks (no leaks found); 52 unit tests OK.git grepfor the private plugin's name and its skill names prints nothing.Rollout
Machines that should keep the private plugin need the overlay file before their next setup run. Without it they fall back to
qp-skills; nothing is uninstalled. Merge this after the overlay is published on the private side.Need help on this PR? Tag
@codesmith-botwith what you need.