omnidist
omnidist
Expert guidance for bootstrapping and running @omnidist/omnidist in a Go repository.
When to trigger
- The user mentions omnidist or asks for
omnidist init,omnidist ci, or release pipeline setup. - The task involves distributing Go binaries through npm and/or uv (PyPI-style index).
- The user needs generated release workflow files for GitHub Actions.
Core rules
- Run commands from the repository root.
- Use
npx -y @omnidist/omnidist@latestfor all omnidist commands to avoid stale versions and global install assumptions. - Treat generated files as templates: review and customize before committing.
- Before generating CI, set
tool.mainto the project's real command path (for example./cmd/<project-binary>), never leave./cmd/omnidistunless that is truly the project command. - Before generating CI, set distribution package names to the project's real packages:
distributions.npm.packagemust match the intended npm scoped package (for example@org/project).distributions.uv.packagemust match the intended uv/PyPI package name.
- Do not keep omnidist defaults for package names when they do not match the project.
Workflow
- Initialize omnidist
- Run
npx -y @omnidist/omnidist@latest init. - Confirm generated files and output; examples are in references/quickstart.md.
- Run
- Review generated config
- Open
.omnidist/omnidist.yaml. - Update required fields first:
tool.mainto the correct project command path.distributions.npm.packageto the real npm scoped package name.distributions.uv.packageto the real uv/PyPI package name.
- Then update:
version.sourcestrategy as needed.targetsmatrix for required OS/arch support.distributionsregistries/tags/access settings.
- Verify these three fields are correct before running
npx -y @omnidist/omnidist@latest ci:tool.main,distributions.npm.package,distributions.uv.package.
- Open
- Generate CI workflow
- Run
npx -y @omnidist/omnidist@latest ci. - Verify
.github/workflows/omnidist-release.ymlmatches your release policy.
- Run
- Validate release steps locally
- Run
npx -y @omnidist/omnidist@latest build. - Run
npx -y @omnidist/omnidist@latest stage. - Run
npx -y @omnidist/omnidist@latest verify.
- Run
- Prepare publishing in CI
- Ensure required secrets exist before tag-based releases:
NPM_PUBLISH_TOKENUV_PUBLISH_TOKEN
- Use tag pushes (for example
v1.2.3) to trigger the generated workflow.
- Ensure required secrets exist before tag-based releases:
Output expectations
- Provide exact commands to run in order.
- Call out every file generated or modified by omnidist commands.
- If the repository is already configured, avoid re-running
initunless the user explicitly wants regeneration.
References
- Command outputs and generated defaults: references/quickstart.md
More from metalagman/agent-skills
gitflow
Use this skill when managing git branches, releases, or hotfixes according to the Gitflow workflow. It enforces naming conventions and synchronization policies.
50go-goose
Use this skill to plan, write, or run database migrations with the pressly/goose CLI and Go library (SQL/Go migrations, env vars, provider API, embedded migrations).
27go-uber-style-guide
Use this skill to write, refactor, or review Go code according to the Uber Go Style Guide. It ensures strict adherence to correctness, safety, and idiomatic patterns.
23beads
Use this skill to manage work in Beads (`bd`) 1.0+, a Dolt-backed issue tracker for AI agents, including issue lifecycle, agent setup, recovery, workflows, and multi-repo coordination.
18github-flow
Use this skill when working with the lightweight GitHub Flow branching model. Ideal for projects with continuous deployment where 'main' is always deployable.
17go-senior-developer
Expert senior-level Go guidance for architecture, API-first design/codegen, advanced concurrency, performance tuning, testing/quality, cloud-native 12-factor practices, and Go 1.24+ tooling for large-scale systems.
17