Publish Release
Guidelines for building, packaging, and publishing projects.
by organizzolini · MIT
The skill
Guidelines for building, packaging, and publishing projects. Use when modifying publishConfig, resolvePluginService, package.json main/types/exports for publishable libraries, checking dist folder generation, debugging package resolution for released artifacts, or rehearsing a publish against the local Verdaccio registry.
Publish and Release
Build Output and Publishing
- Every build writes into its own project's
dist/—projects/logging/dist,projects/caelundas/caelundas-cli/dist— never a top-level one.distis already gitignored and in the folder-structure rule'signorePatterns. projects/configuration/tsconfig.jsonsetsdeclaration: true, so every build emits.d.tsbeside its.js. Turning it off silently removes the types a published package ships.- A package's
main,types, andexportspoint at TypeScript sources, andpublishConfigcarries the emitteddist/paths beside them — pnpm applies those at publish time, so one manifest serves the workspace and a published consumer. Verify a change here by packing, not by reading:pnpm packin the package, then inspect the tarball'spackage.json. filesmust namedist. Without it, packing falls back to the ignore files and the tarball ships no build output at all.- A plugin entry's
resolvePluginServicemust stay a static import. A dynamicimport()escapes the@swc-node/registerrequire hook into Node's own ESM resolver, andnx gthen fails withCannot find module './modules/plugin/plugin-context.utilities'.
Why the manifest fields stay on sources, which publishConfig fields pnpm
actually applies, and why shrinking the Nx plugin closure buys nothing is
ADR 0009. Do
not point main or exports at dist/ — it deadlocks the plugin graph load
and breaks fallow-dead-code and vitest.
Rehearsing a Publish
Before trusting a publish change, rehearse it against the local registry: publish the packed tarball to Verdaccio and import it from a project outside the workspace. A naive rehearsal reaches the real npmjs.org registry, so follow local-registry-rehearsal.md step by step.
Use this skill
Connect your agent to the Skill Store MCP server and ask for it by ref: organizzolini/publish-release-26808703541.
Details
- Publisher
- organizzolini
- Category
- Software Development › DevOps & cloud
- License
- MIT
- Updated
- 2026-10-19
References
More from organizzolini
- Agent Session Hooks Explains how startup scripts run at the start of agent sessions and inject context.
- Ask Matt Ask which skill or flow fits your situation.
- Backup Code Create a safety backup before potentially destructive actions.
- Brainstorming You MUST use this before any creative work - creating features, building components, adding funct…