feat: add Expo Skills to the curated lookup table - #12
Open
mikolajadamowicz wants to merge 3 commits into
Open
mikolajadamowicz wants to merge 3 commits into
mikolajadamowicz wants to merge 3 commits into
Conversation
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.
Adds expo/skills as a fifth skill source and maps 19 of its skills onto the Expo packages that indicate them.
Two changes to
scripts/sync-lookup.mjswere needed to support this repo, and both are general rather than Expo-specific.Supporting skills outside a top-level
skills/directoryThe four existing sources all keep their skills in
skills/at the repo root. Expo does not:expo/skillsis a plugin repo, and its skills live underplugins/expo/skills. Requestingcontents/skillsreturns a 404, so the sync failed outright.A source entry can now set
skillsPathto override the location. The other five sources omit it and fall back toskills.Stripping YAML quotes from descriptions
Several Expo descriptions contain
:, for example"the @expo/ui package: real SwiftUI on iOS". YAML requires such a scalar to be quoted, so Expo quotes them, which is correct.extractDescriptionread the raw text afterdescription:and never removed the surrounding delimiters, so those quotes ended up stored as part of the description and printed back to the user in thereason:line. The inline branch now strips a matching leading and trailing"or'. The block scalar branch is untouched, because a quote inside a block scalar is real text.This also fixes six stored descriptions, including
software-mansion-labs/skills:expo-horizon, which had the same problem before this change.Curation
A source entry can now list
excludedSkills, so the table can mirror a repo minus the skills we choose not to recommend. Four Expo skills are excluded:expo-domandexpo-web-to-nativeare migration guides for projects that have not adopted React Native yet. Their real trigger is the absence of React Native, which apackage.jsonscan cannot detect. Both were originally mapped toreact-native-web, but that package only appears once a project has already migrated.expo-app-clipcovers a feature almost no app ships, and it would fire on every Expo project.expo-skill-feedbackis a feedback channel with bundled opt-in telemetry rather than engineering guidance.expo-brownfieldwas originally mapped to@callstack/react-native-brownfield. That package is the bare React Native brownfield path, so the projects most likely to match it are the ones that deliberately chose not to use Expo. It now hangs offexpoinstead.Mappings
Nine skills are mapped to the
expopackage:expo-animation,expo-brownfield,expo-data-fetching,expo-design-system,expo-examples,expo-native-ui,expo-overview,expo-project-structure, andexpo-upgrade.The rest are mapped to packages that indicate them directly:
@expo/uiexpo-ui@expo/servereas-hostingexpo-routerexpo-routerexpo-dev-clientexpo-dev-clientexpo-updateseas-update-insightsexpo-observeeas-observeexpo-modules-core,expo-module-scriptsexpo-moduleeas-clieas-app-stores,eas-simulator,eas-workflowsNote that
eas-cliis usually run throughnpxrather than listed as a dependency, so those three will rarely match in practice.Testing
test/fixtures/expo-router-app/is a new fixture covering the router and EAS packages, with an e2e case asserting the skills it should pull in. Expectations for the existingexpo-appandbrownfield-appfixtures were updated to match the new mappings.All 58 tests pass.
Also included
README.mdandLICENSEwere regenerated by the sync script, which adds Expo to the source list and appends their MIT license.