Imported from developmentconexus-ops/conexus-os (
apps/web/AGENTS.md). Install upstream withnpx skills add developmentconexus-ops/conexus-os --skill web. Copyright stays with the author.
apps/web
The Conexus web app: React, strict TypeScript, Vite, TanStack Router and Query, composed from @mastra/playground-ui. The Hub serves the built files. For any change here, load .agents/skills/conexus-frontend/SKILL.md.
Run and test
Run from the repository root, in WSL, after source "$HOME/.nvm/nvm.sh"; nvm use:
npm run r1:a0:web:typecheck # TypeScript
npm run web:style:check # no raw hex, only the three brand fonts
npx --no-install biome check apps/web/src
npx --no-install playwright install chromium
node --test --test-concurrency=1 tests/implementation/project-browser.test.mjs # also builder-, settings-
npm run hub:local # full Hub at https://hub.conexus.localhost:3443; needs .audit/slice7/hub.env
The browser suites serve this app through Vite and stub the API, so they need no Hub.
Invariants
- Every color is a
var(--cx-*)token frompackages/brand/src/tokens.css. Every font is a--cx-font-*token. src/main.tsxloads@mastra/playground-ui/style.css, then the brand tokens, thensrc/styles.css. Keep that order.- Mastra's palette changes only in
src/mastra-theme.css, by re-pointing its custom properties at tokens. Size and layout go in acx-*class next to the screen. - A hover hint is the playground-ui
Tooltip, never a nativetitle;web:style:checkenforces it. - The client shows server truth. It never decides authorization or invents a state the server did not report.
Review
Review: load the pages areas.json maps your paths to (mostly frontend.md).
