Skip to content

Add publishable react-call usage skill for LLMs#101

Merged
desko27 merged 7 commits into
mainfrom
claude/inspiring-snyder-e14d25
Jun 1, 2026
Merged

Add publishable react-call usage skill for LLMs#101
desko27 merged 7 commits into
mainfrom
claude/inspiring-snyder-e14d25

Conversation

@desko27
Copy link
Copy Markdown
Owner

@desko27 desko27 commented May 31, 2026

What

Ships a publishable, consumer-usage agent skill so LLM coding assistants write correct react-call code. Library users install it into their own project with:

npx skills add desko27/react-call --skill react-call

Why

react-call's API is small but has sharp edges an LLM gets wrong without guidance (single-Root rule, call() being client-only, call vs upsert, mutation flow). A self-contained skill captures the mental model, decision guidance, and gotchas — and stays anchored to the project's canonical vocabulary.

Design was settled in a grilling session and recorded in ADR-0021.

Contents

  • skills/react-call/SKILL.md — broad reach-for trigger + light adoption gate; Declare→Root→Call model, call/upsert/useMutationFlow decision guide, hard rules, anti-patterns, canonical glossary from CONTEXT.md. Covers v2.x; defers to the installed version.
  • skills/react-call/references/mutation-flow.md, host.md, ssr-and-lazy.md, types.md.
  • docs/adr/0021-publish-consumer-usage-skill.md — the publication decision (location, --skill pin, single broad skill, GitHub-not-npm distribution, drift guard).
  • CI drift guard (packages/react-call/src/__tests__/skill-symbols.test.ts) — fails the build if the skill imports a react-call export or subpath that no longer exists. Operating rule: API-breaking changes update the skill in the same PR.
  • README — new AI agent skill section + TOC entry with the install command.

Key decisions (per ADR-0021)

  • One broad-trigger skill, not a scoped/broad pair — installing the skill is the opt-in to use react-call for this class of UI.
  • Lives in skills/, not .agents/skills/ — keeps it out of discovery space shared with the maintainers' vendored workflow skills; the documented --skill react-call pin installs exactly one.
  • Not shipped in the npm tarballnpx skills resolves from GitHub and pins by commit/hash.
  • Decision/pitfall-oriented, not a README clone — avoids a second copy of the docs drifting.

Validation

  • pnpm lint ✅ · pnpm check:types ✅ · pnpm test ✅ (137/137)
  • Drift guard verified both ways: green on the real skill, and red (with a clear file+symbol message) when fed a non-existent export.

Follow-up

  • Once merged to main, confirm discovery end-to-end with npx skills add desko27/react-call --list.

Ship a consumer-usage agent skill at skills/react-call/ (SKILL.md + references), installable with `npx skills add desko27/react-call --skill react-call`. Broad reach-for trigger, decision/gotcha-oriented, uses the CONTEXT.md glossary, covers v2.x.

Add a CI drift guard (packages/react-call/src/__tests__/skill-symbols.test.ts) that fails if the skill imports a react-call export/subpath that no longer exists, and a README "AI agent skill" section with the install command.

See docs/adr/0021-publish-consumer-usage-skill.md.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 31, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
react-call Ready Ready Preview, Comment Jun 1, 2026 11:20am

Add a hero link and a [!TIP] callout right after `npm install` so the skill surfaces at setup time, not buried before the v1 migration notes.
Add a copyable `npx skills add` command box under the package InstallCommand on the landing CTA, plus a small CopyCommand component for one-off commands.
Keep the hero link and the dedicated 'AI agent skill' section; remove the callout under npm install.
Add a segmented control above the hero install box that swaps the package InstallCommand (npm/pnpm/yarn/bun) for the agent-skill install command.
- Labels: 'Install' / '🤖 AI skill'
- Subtler selector: text with a thin accent underline instead of a bordered pill
- No height jump: both boxes share one grid cell, sizing to the taller (lib) box
The grid stack's implicit column was max-content-sized, so the long skill command forced the track wider than the viewport and overflowed. Bound the column with grid-cols-1 (minmax(0,1fr)) and add min-w-0 to the cells so the box caps at the available width and scrolls horizontally inside — matching the install box and the bottom-of-landing command. Verified at 375px.
@desko27 desko27 merged commit 0de0ef3 into main Jun 1, 2026
8 checks passed
@desko27 desko27 deleted the claude/inspiring-snyder-e14d25 branch June 1, 2026 13:50
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