Use this file for the shortest path from clone to productive work.
Start Here
Before changing code, read:
Then read the focused docs for the area you are touching.
Prerequisites
- Node.js
^20.19.0or>=22.12.0 - pnpm 11 from the pinned
packageManager - Git
Local Setup
git clone https://github.com/YOUR_USERNAME/navet.gitcd navetpnpm installpnpm devOpen the Vite URL shown in the terminal, usually http://localhost:5173.
Provider testing basics:
- Home Assistant: enter the Home Assistant base URL and complete OAuth
- Homey: set
NAVET_HOMEY_CLIENT_IDandNAVET_HOMEY_CLIENT_SECRET, then use the Homey login option - openHAB: use the openHAB login option with a browser-reachable base URL plus username/password
Workflow
- Create a branch from
main. - Make changes using the current package architecture and shared UI conventions.
- Update docs when behavior, commands, architecture, or setup guidance changes.
- Run the smallest relevant validation surface for the area you changed.
- Open a pull request.
Command Policy
Common commands:
pnpm devpnpm previewpnpm testpnpm test:tier1pnpm test:tier2pnpm test:tier3pnpm storybookpnpm website:devpnpm website:buildpnpm storybook:buildpnpm check:storiespnpm check:ui-kitpnpm check:provider-boundariespnpm check:bundle-budgetpnpm check:dockerpnpm check:lockfilepnpm test:coveragepnpm release:checkImportant repo policy:
pnpm typecheckandpnpm checkare user-run gates rather than default agent-run commands- release and packaging commands are maintainer workflows unless the task explicitly calls for them
- use
docs/agents/commands.mdas the source of truth for command restrictions
Architecture Rules
- treat Home Assistant as one provider adapter, not as the application architecture
- prefer Navet-owned contracts and provider/runtime seams in shared UI
- keep provider-specific auth, transport, resource resolution, and action translation in provider-specific layers
@navet/uiis the target provider-neutral shared UI boundarypackages/app/src/components/*andpackages/app/src/ui-kit/*are still current implementation and stable import surfaces, not final ownership- do not use current implementation drift as the source of truth for Home Assistant behavior
Testing Rules
- prefer realistic fixtures and contract-focused assertions
- do not update tests only to match the current implementation
- use
ai/skills/testing-architecture.mdanddocs/agents/testing.mdfor test work