diff --git a/Makefile b/Makefile index c244c82..9822042 100644 --- a/Makefile +++ b/Makefile @@ -83,7 +83,10 @@ ruler-rules-copy: ## Copy rules to .ruler directory. # External skills are declared in SKILLS.txt and locked in skills-lock.json. .PHONY: skills-install -skills-install: ## Install external skills from skills-lock.json (skips already installed). +skills-install: ## Install external skills declared in SKILLS.txt (skips already installed). + @if [ -f "$(SKILLS_GLOBAL_LOCK)" ]; then \ + $(MAKE) skills-lock; \ + fi @lock="$(SKILLS_LOCK_FILE)"; \ skills_dir="$(SKILLS_EXTERNAL_SOURCE_DIR)"; \ force="$${DOTAGENTS_FORCE_SKILLS_INSTALL:-0}"; \ @@ -120,12 +123,20 @@ skills-install: ## Install external skills from skills-lock.json (skips already fi; \ done; \ rm -f "$$tmp_missing"; \ + if [ -f "$(SKILLS_GLOBAL_LOCK)" ]; then \ + $(MAKE) skills-lock; \ + fi; \ exit $$failed .PHONY: skills-refresh skills-refresh: ## Force a reinstall of all external skills from skills-lock.json. @DOTAGENTS_FORCE_SKILLS_INSTALL=1 $(MAKE) skills-install +.PHONY: skills-update +skills-update: ## Update installed external skills to latest and refresh the lock. + @bun x skills update --global --yes --global --yes`, then `make skills-lock`. +To add skills: edit `SKILLS.txt`, run `make skills-install`, and commit both files. To remove: delete from `SKILLS.txt`, run `bunx skills remove --global --yes`, then `make skills-lock`. Installs track each source's default branch: the skills CLI does not record commit SHAs in its lock yet, so entries are not pinned to a commit. diff --git a/rules/skills-management.md b/rules/skills-management.md index a16437c..c72d8e3 100644 --- a/rules/skills-management.md +++ b/rules/skills-management.md @@ -23,8 +23,8 @@ bunx skills add owner/repo --global --list # Repos with <10 skills: install all (no selection) # Repos with 10+ skills: always specify selections -# 3. Regenerate the lock, install, then re-lock to capture resolved metadata -cd dotagents && make skills-lock && make skills-install && make skills-lock +# 3. Install (regenerates skills-lock.json from SKILLS.txt automatically) +cd dotagents && make skills-install # 4. Commit SKILLS.txt and skills-lock.json together ``` @@ -37,6 +37,15 @@ bunx skills remove --global --yes cd dotagents && make skills-lock ``` +## Updating Installed Skills + +```bash +cd dotagents && make skills-update +``` + +Runs `bun x skills update --global` and refreshes `skills-lock.json`; commit +the resulting diff. + ## Restoring (fresh machine or CI) ```bash