Skip to main content

Commit Workflow

Principles​

  • Split long-form tasks (anything with multiple to-do items) into multiple commits.
  • Each commit must be self-contained: code should be complete, tested, and clean on its own.
  • Run pnpm test and lint before each commit so the hook has nothing left to fix.

Steps​

  1. Make the change, co-locating any new tests (*.spec.ts).
  2. Run the frontend and Rust suites:
    pnpm test
    cargo test
  3. Lint:
    npx eslint src/
  4. Stage only the files that belong to the logical change.
  5. Commit with a concise message describing the change.

The Husky pre-commit hook runs lint-staged, auto-fixing ESLint, Prettier, and package.json sorting on staged files. If the hook rewrites files, re-stage and commit again.

Commit messages​

Use a short, imperative summary, optionally with a conventional prefix, e.g.:

feat: add live display windows for perform mode
fix: strip speaker labels from imported dialog
chore: add license information for dependencies
note

Only commit, amend, or push when explicitly asked. Never commit secrets or build output (dist/, src/generated/, docs/build/).