fix: prevent auto-reinstall of explicitly removed skills on refresh#68
Merged
Merged
Conversation
Add an `excludes` array to the manifest that tracks skill names the user has explicitly removed via `coldbox ai skills remove`. During `refresh()`, skills in the excludes list are filtered out of `missingDesiredSkills` so they are never auto-reinstalled. When a skill is explicitly re-installed via `coldbox ai skills install`, its name is removed from `excludes` so normal auto-management resumes. - SkillManager.refresh(): initialise excludes section; filter excluded skills from missingDesiredSkills (step 0) - SkillManager.removeSkillFromProject(): append removed skill name to manifest.excludes before saving - SkillManager.installRemoteSkill(): lift exclusion when skill is explicitly re-installed - SkillManager.ensureExcludesSection(): new private helper for backwards-compatible initialisation of manifest.excludes Agent-Logs-Url: https://github.com/ColdBox/coldbox-cli/sessions/92d13e96-d882-4c14-9d67-62579d852353 Co-authored-by: lmajano <137111+lmajano@users.noreply.github.com>
…aram Agent-Logs-Url: https://github.com/ColdBox/coldbox-cli/sessions/92d13e96-d882-4c14-9d67-62579d852353 Co-authored-by: lmajano <137111+lmajano@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix coldbox ai skills remove to prevent skill reinstalls
fix: prevent auto-reinstall of explicitly removed skills on refresh
May 11, 2026
There was a problem hiding this comment.
Pull request overview
This PR updates the AI skills manifest workflow so that explicitly removed skills are tracked in the manifest and are not automatically reinstalled during subsequent refresh() operations, while still allowing an explicit reinstall to override the exclusion.
Changes:
- Add
manifest.excludes(backward-compatible) to track skill names explicitly removed by the user. - Update
removeSkillFromProject()to append removed skill names intomanifest.excludes. - Update
refresh()to skip reinstalling excluded skills, and updateinstallRemoteSkill()to remove an exclusion when the user explicitly installs that skill again.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Member
|
@copilot update the changelog.md |
Agent-Logs-Url: https://github.com/ColdBox/coldbox-cli/sessions/9646a1c2-ec9e-48db-9ef0-4d0d4d75f87a Co-authored-by: lmajano <137111+lmajano@users.noreply.github.com>
Contributor
Author
Done — added a changelog entry under the |
Copilot stopped work on behalf of
lmajano due to an error
May 11, 2026 20:12
Contributor
|
The |
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.
ensureExcludesSection()helper toSkillManager.cfcfor backward compatibilityremoveSkillFromProject(): add removed skill name tomanifest.excludesrefresh(): filter out excluded skills frommissingDesiredSkillsso they are not reinstalledinstallRemoteSkill(): lift exclusion when skill is explicitly re-installedreturn falseand renameextoexcludedName