Skip to content

Add expo-examples skill#84

Merged
zvadaadam merged 3 commits into
mainfrom
zvadaadam/expo-examples-skill
Jun 18, 2026
Merged

Add expo-examples skill#84
zvadaadam merged 3 commits into
mainfrom
zvadaadam/expo-examples-skill

Conversation

@zvadaadam

Copy link
Copy Markdown
Contributor

Summary

Adds a new expo-examples skill so agents can leverage the official expo/examples repo — Expo's library of with-* integration demos — as version-matched references. Two modes: study an example for inspiration (read-only, non-destructive into an existing app) and scaffold a new project via npx create-expo --example.

What's actually in expo/examples (verified by cloning + analyzing all 70)

These are integrations, not apps — the framing the skill is built around:

Signal Finding
Native code 0 / 70 ship ios//android/ (all managed projects)
Size Median 137 LOC, 2 code files; 43/70 ≤200 LOC
Structure 45/70 are a single root App.js/tsx; only 11 use a multi-route app/ dir
Naming 68/70 are with-<library>, each built around one headline dependency

Nuances the skill calls out: 8 are full-stack (Expo Router +api routes — auth/payments/AI), a few are larger showcases (with-shadcn, with-router-tv, with-react-navigation), and blank/stickersmash are starters, not integrations.

Design decisions

  • No helper script. Discovery is just two gh commands (live list + meta.json for aliases/deprecations); intent→example matching is left to the model rather than a brittle hardcoded synonym table.
  • Non-destructive adapt. For an existing app: version-align with npx expo install, add only missing config plugins, never overwrite app.json.
  • Full-manifest discovery via the recursive git-tree API, so nested integration code (e.g. Stripe's app/api/ routes) isn't missed.
  • meta.json as source of truth for renamed (alias) and dead (deprecated) examples.

Files

  • plugins/expo/skills/expo-examples/SKILL.md
  • plugins/expo/skills/expo-examples/references/catalog.md — categorized snapshot
  • Bumped Claude/Codex/Cursor plugin manifests 1.2.0 → 1.3.0 (required by the version-bump check)

Validation

  • claude plugin validate . and ./plugins/expo pass
  • Plugin version-bump check passes (all three manifests bumped together):
Plugin main PR
Claude 1.2.0 1.3.0
Codex 1.2.0 1.3.0
Cursor 1.2.0 1.3.0

Future

Name reserved as expo-examples (mirrors the repo + --example); a future expo-templates skill can cover larger UI app starters (create-expo-app --template), disambiguated via descriptions + cross-links.

🤖 Generated with Claude Code

Adam Zvada and others added 3 commits June 17, 2026 15:42
Skill for finding, inspecting, and scaffolding from the expo/examples
repo (~70 single-concern with-* integration demos). Two modes: study an
example for inspiration (read-only, non-destructive) and scaffold a new
project via `npx create-expo --example`. Includes a categorized catalog
reference; discovery and meta.json alias/deprecation checks are done with
plain gh commands (no helper script).

Bumps the Claude/Codex/Cursor plugin manifests to 1.3.0 (required by the
plugin version-bump check for changes under plugins/expo/skills/).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Dogfooding with-stripe showed the integration spread across server
routes, client provider, and config — leading to many per-file API
calls. Steer to pulling the example locally (degit/sparse) once it's
more than a couple of files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Description: collapse 4 synonym triggers into the 2 real branches
  (adapt-into-existing-app, scaffold-new) — 599->394 chars, less context load
- Step 3: add an exhaustive completion criterion (every dep/plugin/
  permission/env var accounted for) to drive legwork over "looks wired up"
- Cut a no-op ("adapt imports rather than paste verbatim" is the default)
- Single source of truth: dedup the "never scaffold on top" warning and the
  meta.json/deprecated rule to one home each
- Move the full-stack/showcase/starter enumeration out of SKILL.md into
  catalog.md (progressive disclosure + co-location)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Kudo Kudo self-requested a review June 17, 2026 16:42
@zvadaadam zvadaadam merged commit b553ae4 into main Jun 18, 2026
1 check passed
@zvadaadam zvadaadam deleted the zvadaadam/expo-examples-skill branch June 18, 2026 12:30
zvadaadam pushed a commit that referenced this pull request Jun 18, 2026
…simplify, proactive footer

- Rename the skill `skill-feedback` → `expo-skill-feedback` (dir, frontmatter
  name, hooks.json path, all 15 footer pointers, README/AGENTS refs). Script
  filenames (skill-feedback.js/.sh) and the userAgent label stay. Clearer
  leading word that matches the "Expo Skill Feedback" footer heading.
- Feedback can now target **Expo itself**, not just the skill: skill-feedback.js
  gains `--about skill|expo` (default skill) -> `properties.about`, so the team
  can separate framework issues from skill-guidance issues. Surfaced in the
  footer nudge, the skill's Submitting-feedback section, and the description.
- Simplify references/telemetry.md (95 -> 50 lines): keep the event shape (the
  privacy receipt) + add `about`, condense the rest, and point to the scripts'
  own comments for the detach/Windows how (single source of truth).
- Bump plugin manifests 1.3.0 -> 1.4.0 (main reached 1.3.0 via #84).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
zvadaadam pushed a commit that referenced this pull request Jun 18, 2026
- Resolved the plugin.json version conflict to 1.4.0 (main reached 1.3.0 via #84;
  this branch needs strictly-greater).
- Gave the new expo-examples skill the same proactive Expo Skill Feedback footer
  (pointing to expo-skill-feedback) so every skill is consistent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant