Skip to content

skills update reports freshly installed skills as deleted upstream when source uses nested plugins/.../skills paths #93

Description

@lorenc-tomasz

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions