Use this file for the shortest path from clone to productive work.
Start Here
Before changing code, read AGENTS.md. Its task router points to the one focused
guide needed for the area you are touching. Use docs/README.md only when you
need the complete documentation map.
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 docs:devpnpm docs:buildpnpm demo:devpnpm build:demopnpm 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