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 testand lint before each commit so the hook has nothing left to fix.
Steps
- Make the change, co-locating any new tests (
*.spec.ts). - Run the frontend and Rust suites:
pnpm testcargo test
- Lint:
npx eslint src/
- Stage only the files that belong to the logical change.
- 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/).