Description
After installing all skills from expo/skills, running skills update immediately reports most of those same skills as deleted upstream.
This looks like a false positive in the update logic. skills add successfully discovers and installs skills from nested paths such as:
plugins/expo/skills/add-app-clip/SKILL.md
plugins/expo/skills/building-native-ui/SKILL.md
plugins/expo/skills/expo-module/SKILL.md
plugins/expo/skills/upgrading-expo/SKILL.md
But seconds later, skills update says those skills appear to have been deleted upstream.
Steps to reproduce
npx skills@latest add expo/skills --skill '*'
skills update
Actual behavior
skills add installs 17 skills successfully.
Immediately after that, skills update checks expo/skills and reports 16 of them as deleted upstream:
Warning: The following skills from expo/skills appear to have been deleted upstream:
• add-app-clip
• building-native-ui
• eas-update-insights
• expo-api-routes
• expo-brownfield
• expo-cicd-workflows
• expo-deployment
• expo-dev-client
• expo-examples
• expo-module
• expo-observe
• expo-tailwind-setup
• expo-ui
• native-data-fetching
• upgrading-expo
• use-dom
Expected behavior
skills update should not report skills as deleted immediately after skills add installed them from the same upstream source.
Lock file details
After installation, the lock file contains valid paths for the Expo skills:
expo-skill-eval -> .claude/skills/expo-skill-eval/SKILL.md
add-app-clip -> plugins/expo/skills/add-app-clip/SKILL.md
building-native-ui -> plugins/expo/skills/building-native-ui/SKILL.md
eas-update-insights -> plugins/expo/skills/eas-update-insights/SKILL.md
expo-api-routes -> plugins/expo/skills/expo-api-routes/SKILL.md
expo-brownfield -> plugins/expo/skills/expo-brownfield/SKILL.md
expo-cicd-workflows -> plugins/expo/skills/expo-cicd-workflows/SKILL.md
expo-deployment -> plugins/expo/skills/expo-deployment/SKILL.md
expo-dev-client -> plugins/expo/skills/expo-dev-client/SKILL.md
expo-examples -> plugins/expo/skills/expo-examples/SKILL.md
expo-module -> plugins/expo/skills/expo-module/SKILL.md
expo-observe -> plugins/expo/skills/expo-observe/SKILL.md
expo-tailwind-setup -> plugins/expo/skills/expo-tailwind-setup/SKILL.md
expo-ui -> plugins/expo/skills/expo-ui/SKILL.md
native-data-fetching -> plugins/expo/skills/native-data-fetching/SKILL.md
upgrading-expo -> plugins/expo/skills/upgrading-expo/SKILL.md
use-dom -> plugins/expo/skills/use-dom/SKILL.md
Possible cause
It seems skills add can discover skills under nested paths like:
plugins/expo/skills/*/SKILL.md
but skills update may be resolving or comparing upstream paths differently, causing it to incorrectly treat those same skills as deleted.
Additional notes
The issue is reproducible immediately after installation, without any changes to the local files.
Description
After installing all skills from
expo/skills, runningskills updateimmediately reports most of those same skills as deleted upstream.This looks like a false positive in the update logic.
skills addsuccessfully discovers and installs skills from nested paths such as:But seconds later,
skills updatesays those skills appear to have been deleted upstream.Steps to reproduce
npx skills@latest add expo/skills --skill '*' skills updateActual behavior
skills addinstalls 17 skills successfully.Immediately after that,
skills updatechecksexpo/skillsand reports 16 of them as deleted upstream:Expected behavior
skills updateshould not report skills as deleted immediately afterskills addinstalled them from the same upstream source.Lock file details
After installation, the lock file contains valid paths for the Expo skills:
Possible cause
It seems
skills addcan discover skills under nested paths like:but
skills updatemay be resolving or comparing upstream paths differently, causing it to incorrectly treat those same skills as deleted.Additional notes
The issue is reproducible immediately after installation, without any changes to the local files.