verify-dist

par sentry

Régénérer et valider dist/index.js lorsque les fichiers source ou les dépendances d'exécution changent

npx skills add https://github.com/getsentry/action-release --skill verify-dist

Verify Dist Skill

action-release ships a bundle in dist/ built by ncc. The verify-dist CI workflow (.github/workflows/verify-dist.yml) fails any PR where the committed bundle does not match the source. This skill keeps them in sync locally.

dist/ is a directory, not a single file. Alongside dist/index.js, ncc emits code-split chunks (dist/319.index.js and friends) for every dynamic import() in a dependency. @opentelemetry/resources loads its per-platform getMachineId that way, so the chunks arrive with @sentry/node. index.js loads them at runtime with a relative require, so they must sit next to it and must all be committed.

When to invoke

  • You changed anything under src/.
  • You bumped a runtime dep in package.json (anything under dependencies, not devDependencies).
  • CI posted "Detected uncommitted changes after build" on a PR.

Modes

--check (default)

Report whether dist/ is in sync with the current source tree. Do not modify anything.

yarn install --frozen-lockfile
yarn build
git diff --ignore-space-at-eol --stat dist/
git ls-files --others --exclude-standard dist/   # new chunks show up here, not in git diff
  • If both commands print nothing → dist/ is in sync. Done.
  • If either prints something → report the changed files and line counts, then ask the user whether to switch to --fix.

--fix

Rebuild and stage dist/.

yarn install
yarn build
git add dist/
git status --short dist/

Do not commit automatically — let the user review the bundle diff first. A reasonable follow-up commit message:

build: regenerate dist/index.js

Or, if tied to a source change:

<type>(<scope>): <summary>

Regenerates dist/index.js.

Before the user commits: pre-commit hook reminder

Whoever runs the follow-up commit needs the repo's pre-commit hooks installed. Verify with ls .git/hooks/pre-commit; if missing, run make (installs yarn deps + pre-commit install) or pre-commit install.

The set-docker-tag-from-branch hook will rewrite action.yml on the first commit of a branch and fail the commit. Recover by staging action.yml and committing again (never --amend — the hook-failed commit never landed):

git add action.yml
git commit -m "<same message>"

CI does not run pre-commit. CI's prepare-docker job rejects PRs where action.yml's Docker tag still matches a semver like 3.6.0, so keeping the tag in sync via the local hook is what prevents the CI failure.

Notes

  • The CI check runs git diff --ignore-space-at-eol dist/ — whitespace-only diffs pass, anything else fails. Match that locally.
  • CI also fails on untracked files in dist/ via git ls-files --others --exclude-standard dist/. git diff alone never reports a brand-new chunk, so a missing chunk would otherwise pass CI and only break at runtime on whichever platform needs it.
  • yarn build shells out to ncc build src/main.ts -e @sentry/cli. @sentry/cli is deliberately excluded from the bundle because it ships its own native binaries at runtime.
  • The bundle diff can be large even for small source changes (minifier + bundler reshuffles). That is expected; just verify the intended symbols are present.
  • Never hand-edit dist/index.js or any chunk. Always regenerate.

Related files

  • .github/workflows/verify-dist.yml — the CI check this skill satisfies.
  • package.jsonscripts.build — the canonical build command.
  • src/main.ts — the ncc entry point.

Plus de skills de sentry

architecture-review
sentry
Revue de la santé du codebase au niveau de l'équipe. Détecte les modules monolithiques, les échecs silencieux, les lacunes de sécurité de type, les trous de couverture de test et les problèmes de convivialité pour les LLM.
pi-agent-integration
sentry
Integrate `@mariozechner/pi-agent-core` as the agent abstraction inside another library or runtime. Use when implementing or refactoring Pi Agent wrappers,…
sentry-debug-issue
sentry
Déboguer et corriger un problème Sentry — le trouver (par lien, ID ou recherche), extraire le contexte complet (trace de pile, breadcrumbs, trace, journaux), éventuellement exécuter l’analyse de cause racine Seer /…
sentry-svelte-sdk
sentry
Configuration complète du SDK Sentry pour Svelte et SvelteKit. Utiliser lorsqu'on demande "ajouter Sentry à Svelte", "ajouter Sentry à SvelteKit", "installer @sentry/sveltekit", ou configurer…
sentry-svelte-sdk
sentry
Configuration complète du SDK Sentry pour Svelte et SvelteKit. Utiliser lorsqu'il est demandé d'« ajouter Sentry à Svelte », d'« ajouter Sentry à SvelteKit », d'« installer @sentry/sveltekit », ou de configurer…
skill-scanner
sentry
Analyser les compétences de l'agent pour détecter des problèmes de sécurité. Utiliser lorsqu'on demande de "scanner une compétence",
prompt-optimizer
sentry
Crée, optimise et affine de manière itérative les prompts d'agent, les prompts système, les prompts développeur et les modèles de prompts réutilisables. À utiliser lorsqu'on vous demande d'améliorer un…
commit
sentry
commit — une compétence installable pour les agents IA, publiée par getsentry/sentry-docs.