# Quasar Repository Agent Guide Applies repo-wide; a nested `AGENTS.md` takes precedence for its directory (most packages have one — check). When editing any `AGENTS.md` (this one included), keep it to commands, package-specific gotchas and pointers into code. State repo-wide mechanics once — here, not per package; leave design rationale to code comments; drop whatever an agent can discover from the code or never acts on. Exception: procedures that must be followed exactly (e.g. /ui's Specs workflow) earn their length. ## Workflow - pnpm workspace; run commands from the repo root unless a package's docs say otherwise. - Formatting `oxfmt`, linting `oxlint` (root `lint`/`lint:check` scripts, lint-staged pre-commit). Never introduce Prettier, ESLint or any other formatter/linter. - Before changing a package, inspect its `package.json`, nearby tests and READMEs. - Keep changes focused; don't modify, discard or commit unrelated work already in the worktree. - Follow existing code/test patterns. Any user-observable change (options, defaults, requirements, behavior, performance, setup) is incomplete until related tests, types, API JSON and the covering `docs/src/pages` pages — including their `docs/src/examples` components — (search there for the option/feature name) are updated in the same change set. ## Code style - Never compare a native method's guaranteed-strict-boolean result (`RegExp.test()`, `some()`/`every()`/`includes()`, `has()`, `startsWith()`/`endsWith()`, `Object.hasOwn()`, `Number.isNaN()`, `existsSync()`, …) against `=== true`/`=== false`; use it directly or negate with `!`. - DO keep explicit comparisons for non-guaranteed booleans: user-provided options, possibly-`undefined` values, project functions (their implementation can drift to non-boolean returns and silently break truthiness-based call sites). - A ref that holds a DOM element or a component instance/definition is never a `ref()`: `shallowRef(null)` in render-function code, `useTemplateRef()` in SFCs (`