Codebase
Formatting and linting
Oxfmt owns formatting and Oxlint owns linting. ESLint and Prettier are deliberately absent — do not add them.
Oxfmt owns formatting and Oxlint owns linting. ESLint and Prettier are deliberately absent — do not add them.
Commands
aube run format # format the repository with Oxfmt
aube run format:check # verify formatting without writing
aube run lint # type-aware Oxlint across the workspace
aube run lint:fix # type-aware Oxlint across the workspace, applying fixes
aube run knip # find unused files, exports, and dependencies
aube run lint:ci # format:check + lint + knip, the CI gate
aube run typecheck # TypeScript checks across the project graph
aube run check:repo # community files and Agent Skills conventions
Use the smallest relevant check while iterating, then run the complete set before opening a pull request:
aube run check:repo
aube run lint:ci
aube run typecheck
aube test
aube run build
Tools
- Oxfmt formats every source and markdown file, configured by
tooling/oxc/.oxfmtrc.json. Avoid unrelated formatting churn in pull requests. - Oxlint runs with type-aware checks, configured by
tooling/oxc/base.oxlintrc.json(shared rules) and extended per workspace scope bytooling/oxc/packages.oxlintrc.json(adds thenodeplugin) andtooling/oxc/apps.oxlintrc.json(adds thevueplugin); both extend the base and are referenced from each package's ownlint/lint:fixscripts. The base config is extended with@e18e/eslint-pluginfor modernization, module-replacement, and performance rules, plus the vendoredanti-sloprules undertools/oxlint/anti-slopfor low-evidence TypeScript patterns. - Knip detects unused files, exports, and dependencies; per-workspace entry points are declared in
knip.jsonc.
Git hooks
aube install installs Git hooks through the prepare script (skipped in CI and production):
- pre-commit runs
nano-staged, which formats staged files with Oxfmt and re-stages them. If it fails, fix the reported error and commit again; formatting fixes are applied automatically. - commit-msg runs
commitlint, which enforces Conventional Commit messages.
Conventional Commits
Use Conventional Commit-style messages and pull-request titles:
feat(cli): add machine-readable doctor output
fix(runner): reject paths outside the checkout
docs(contributing): document release verification
test(agent): cover failed verification transition