agentsclimarketplace

Publish

Skill Shankulkarni/RN-Lib-Claude/plugins/rn-lib-claude/skills/publish

Ship production-grade RN libraries faster — scaffold, audit, and publish with Claude Code.

Install
npx -y skills add Shankulkarni/RN-Lib-Claude --skill publish

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when publishing a React Native library to npm — Changesets workflow, semver, bob build validation, peer dep ranges, npm publish, and GitHub releases.

SKILL.md

3.2 KB, as published. Nobody here has run it

Publishing to npm

Workflow: Changesets

Every change needs a changeset before publish. No changeset = no publish.

1. Add a changeset (after making changes)

bunx changeset

Select: patch / minor / major, write summary. Creates .changeset/random-name.md.

2. Version bump (before publish)

bunx changeset version

Bumps package.json version + updates CHANGELOG.md.

3. Build

bun run build

bob build must exit 0. Check lib/ exists with module/ and typescript/ directories. Modern bob uses ESM-only output (no commonjs/ directory).

4. Publish

npm publish --access public

Use npm (not bun) for registry publish.

5. Tag + Release

git tag v1.2.3
git push --tags

Create GitHub release with CHANGELOG.md section as body.

6. Set up CI/CD (first publish only)

Add GitHub Actions workflows for automated checks and publish. Read the ci skill.

7. Submit to React Native Directory (optional)

If this is the first publish, submit to https://reactnative.directory for discoverability. Run /rn-lib-claude:directory or use the directory skill directly.

Pre-Publish Checklist

Run /publish command — it runs scripts/pre-publish.sh automatically.

Manual checks:

  • bun run check passes (typecheck + lint + tests)
  • bun run build passes
  • lib/ contains module/ and typescript/ (modern bob uses ESM only, no commonjs/)
  • exports map in package.json covers all public APIs
  • All peer deps declared with correct version ranges
  • At least one .changeset/*.md file exists
  • No console.log in src/
  • README.md documents every export
  • Example app demos every export

Peer Dep Ranges

Use >= not ^ for all peer deps. Wide ranges prevent consumer conflicts. Mark reanimated/gesture-handler as optional if library only uses them in some components. See scaffold skill for the exact JSON — don't duplicate the values here.

Semver Rules

ChangeVersionExample
Bug fixpatch1.0.0 → 1.0.1
New export (backward compat)minor1.0.0 → 1.1.0
Removed export / breaking prop changemajor1.0.0 → 2.0.0
Peer dep range tightenedmajor1.0.0 → 2.0.0

package.json files Field

Only ship what consumers need:

"files": ["lib/", "src/", "android/", "ios/", "README.md", "CHANGELOG.md"]

Never ship: example/, __tests__/, .husky/, .changeset/, node_modules/.

npm Auth

npm login
npm whoami  # verify

Set in CI via NPM_TOKEN secret:

- run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc

Common Issues

bob build fails with TS errors: Run bun run typecheck first, fix all errors.

Exports map missing: Consumer gets "package.json does not define exports" — add the exports field.

Peer dep version too tight: Consumer gets peer dep conflict — widen ranges with >=.

Forgotten changeset: bunx changeset will warn. CI should block publish without it.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.