Skip to content

Contributing

The canonical contribution guide is CONTRIBUTING.md in the repo — setup details, style rules, commit format, issue templates. This page is the short version plus corrections where the file has gone stale.

Prereqs and the clone → npm installpip install -r kernel/requirements.txtnpm run tauri dev loop are covered in Install & build. Fork first; branch from main as feat/... or fix/....

  • TypeScript: strict mode, no any; functional components + hooks only; all shared state through Zustand stores.
  • Python (kernel): type hints on all signatures; dataclasses for structured data (kernel/models/); Black + Ruff.
  • Rust: cargo fmt --check and cargo clippy must pass (clippy warnings are CI errors).
  • Commits: <type>: <description> with feat / fix / refactor / docs / test / chore / perf; first line under 72 chars.
  • Tests are required for new features; bug fixes need a regression test.
  • Files under 800 lines, functions under 50, no hardcoded secrets.
LayerCommandStatus
Frontendnpm test (Vitest)Working
Kernelpython3 -m pytest kernel/tests -q (from repo root)Working — 365 tests, run in CI (kernel-tests.yml)
Docs honesty suitesincluded in the kernel run: test_docs_fixtures.py replays every protocol fixture, test_docs_examples.py runs the extending-guide worked examplesWorking
Rustcargo testNo tests exist yet — planned
Docs sitecd docs-site && npm run buildWorking
  1. Keep the PR focused on one concern.
  2. Run locally before pushing: npm test, npm run build, python3 -m pytest kernel/tests -q, cargo fmt --check, cargo clippy.
  3. Open against main with a conventional title, a what/why description, and screenshots for UI changes.
  4. Push follow-up commits during review (no force-pushes); approved PRs are squash-merged.
You’re addingGuide
A quantum frameworkFramework adapters
A hardware providerHardware providers
Dirac behavior / promptsExtending Dirac
Protocol changesUpdate fixtures + protocol changelog