This repo runs four GitHub Actions workflows. Each one is small and single-purpose. If you add or change a workflow, update this file in the same PR.
Runs on every push to main and every pull request targeting
main.
The full local quality bar, in this order:
npm cinpm run type-checknpm run format:checknpm run lintnpm run lint:mdnpm run buildnpm run test
Fails fast on the first non-zero step. Mirrors npm run check
locally.
Builds @viscalyx/developer-mode-react and then runs the dedicated
drift-guard test in
packages/developer-mode-react/tests/safelist.test.ts in isolation.
The drift-guard fails if src/index.tsx contains any inline Tailwind
class string literal (every overlay class MUST come from
src/safelist.ts) or if the generated dist/safelist.css is missing
an @source inline(...) declaration for any safelist entry.
Running this in its own job surfaces safelist regressions as a
distinct CI signal, separate from unrelated test churn. See
docs/safelist.md for what the artifact is and
overlay-safelist.instructions.md
for the authoring rules.
Pull-request-only. Runs npx changeset status --since=origin/main
and fails if the PR touches packages/*/src/** or a published
package.json field without a matching changeset under
.changeset/.
Repo-tooling-only PRs (workflow tweaks, biome.json edits,
top-level docs) pass this job cleanly because no package change is
detected.
GitHub's standard CodeQL analysis for the javascript-typescript
language. Runs on:
- Pushes to
main. - Pull requests targeting
main. - Weekly on Mondays at 06:00 UTC (
schedule: cron: "0 6 * * 1") to catch newly disclosed query-pack issues against unchanged code.
Findings show up under the Security → Code scanning tab.
Runs on every push to main and orchestrates Changesets.
npm ciandnpm run buildandnpm run test.changesets/action@v1runs.- If pending changesets exist, it opens (or updates) a
"Version Packages" PR that bumps
package.jsonversions and rewritesCHANGELOG.mdfiles. - If no pending changesets exist, it runs
npm run release(npm run build && changeset publish), which publishes any newly bumped packages to npm and creates GitHub Releases / tags.
- If pending changesets exist, it opens (or updates) a
"Version Packages" PR that bumps
GITHUB_TOKEN— provided automatically by Actions; used bychangesets/actionfor the Version Packages PR and GitHub Releases.- No
NPM_TOKEN. Publishing to npm uses npm Trusted Publishing (OIDC), enabled by the workflow-levelid-token: writepermission plus a Trusted Publisher configured on npmjs.com for each package. The Trusted Publisher must reference this repository and the workflow filenamerelease.yml; if the file is renamed, update the npm side to match. - A package must exist on npm before Trusted Publishing can be
enabled for it. The first publish of a brand-new package is the
only documented manual bootstrap exception; see
RELEASING.mdfor the exact npm commands.
See RELEASING.md for the full author and
maintainer flow.
Pre-install hook for the GitHub Copilot coding agent. When Copilot
spins up an ephemeral runner to work on an issue or PR, it executes
the steps defined here before handing control to the agent, so
the agent starts with node_modules/ already populated.
Triggers:
workflow_dispatch— manual run from the Actions tab.pushandpull_request— only when this workflow file itself changes, so edits can be validated. The other paths that should re-run the setup (such aspackage.json,package-lock.json,.nvmrc) are listed but commented out; opt them in by uncommenting.
Steps:
actions/checkout@v6.actions/setup-node@v6withnode-version-file: .nvmrcandcache: npm.npm ci.
The job is named exactly copilot-setup-steps. Copilot only
picks up a job with that name; renaming it silently disables the
hook. There is intentionally no npm run check step — if Copilot
pushes a commit with lint or test errors, a failing pre-step would
block the PR-comment-driven re-runs Copilot uses to iterate on a fix.