Publishing is automated with Changesets
and GitHub Actions. Four packages are published from this monorepo; the
website is private and never published.
| Package | Contents |
|---|---|
prescriptive |
The spec catalogue + tokens (the repo root). |
@prescriptive/tokens |
CSS variables, Tailwind preset, theme overlays, JS export. |
@prescriptive/xote |
The Xote/ReScript component library. |
@prescriptive/skill |
The Agent Skill (SKILL.md + compiled reference/). |
- npm scope. The publishing npm account must own the
@prescriptivescope (create an org namedprescriptive, or publish under an account that owns it). The scoped packages already declarepublishConfig.access = public. NPM_TOKENsecret. Add a repository secretNPM_TOKEN(Settings → Secrets → Actions) containing an npm Automation token with publish rights. TheReleaseworkflow uses it; until it's set, the workflow is a no-op (it never publishes).
- Make your change on a branch.
- Record it:
npx changeset— pick the affected packages, the bump type (patch / minor / major), and write a one-line summary. This creates a file under.changeset/; commit it with your PR. - Open the PR.
CIbuilds the packages and runs every conformance gate.
On every push to main, the Release workflow runs:
- If there are pending changesets → it opens (or updates) a "Version Packages" PR that applies the bumps, updates each package's changelog, and deletes the consumed changesets. Review and merge it when you're ready.
- When that PR merges (no changesets left) → it runs
npm run release, which builds the packages (build:packages) andchangeset publishes the ones whose version isn't yet on npm, then pushes the git tags.
Nothing publishes without a merged Version Packages PR and a valid
NPM_TOKEN.
npm run build:packages # build tokens → xote → skill
npm run version # apply pending changesets (bumps + changelogs)
npm run release # build + changeset publish (needs npm auth)