Contributing

June 21, 2026 · View on GitHub

Thanks for your interest in improving Pukeko Robot Controller! This is an educational project — please read the safety disclaimer in SECURITY.md before running it against real hardware.

By participating, you agree to abide by our Code of Conduct.

Getting started

  1. Fork and clone the repo.
  2. pnpm install
  3. See AGENTS.md for the architecture, how to run the app, and how to smoke-test it (the README's "Running…" sections cover the commands).

Before opening a PR

  • pnpm run type-check — must pass.
  • pnpm test — must pass.
  • New code is formatted with Prettier (.prettierrc.json); match the style of the surrounding code.
  • Keep PRs focused, and describe what changed and why.

Local development registry (Verdaccio)

This repo depends on @galvanized-pukeko/* and @gaunt-sloth/*, which are published to the public npm registry. When developing against unpublished versions of those packages, route their scopes to a local Verdaccio registry at http://localhost:4873.

Consuming unpublished versions

Create a gitignored .npmrc at the repo root:

@gaunt-sloth:registry=http://localhost:4873
@galvanized-pukeko:registry=http://localhost:4873

Then pnpm install pulls those scopes from Verdaccio and everything else from the public registry. To consume only the published versions, delete .npmrc before installing.

Verdaccio container and auth setup is documented in gaunt-sloth-assistant/CONTRIBUTING.md.

Publishing a local build to Verdaccio

To test a change to @galvanized-pukeko/vue-ui (its source lives in its own repo) inside this project before cutting a real npm release:

# in the vue-ui package's repo
npm version patch --no-git-tag-version -w @galvanized-pukeko/vue-ui
pnpm --filter @galvanized-pukeko/vue-ui run build
npm publish -w @galvanized-pukeko/vue-ui --registry http://localhost:4873

# back in this repo
pnpm add @galvanized-pukeko/vue-ui@<version> --registry http://localhost:4873

⚠️ That install rewrites pnpm-lock.yaml to resolve the package from localhost:4873. Don't commit that lockfile — cut a real release to the public registry first, then re-resolve the lockfile against it.

Reporting bugs and security issues

For functional bugs, open an issue. For anything security- or safety-related, follow SECURITY.md.