Files

2.2 KiB

ADDED Requirements

Requirement: oxfmt replaces Prettier

The project SHALL use oxfmt for all code formatting, with a root .oxfmtrc.json configuration that replicates the existing Prettier conventions.

Scenario: Format check passes

  • WHEN npm run format is executed at root
  • THEN all TypeScript/JavaScript/JSON source files are formatted according to .oxfmtrc.json rules

Scenario: CI format gate

  • WHEN npm run format -- --check is executed in CI
  • THEN it exits with non-zero code if any file is not formatted correctly

Requirement: Frontend oxlint replaces ESLint

The admin application (apps/admin/) SHALL use oxlint for linting, with a configuration that covers TypeScript and React rules equivalent to the existing ESLint setup.

Scenario: Admin lint passes

  • WHEN npm run lint is executed at root
  • THEN admin source files are linted with oxlint and pass without errors

Scenario: Rules-of-hooks violations detected

  • WHEN a React hook is called conditionally in admin source
  • THEN oxlint reports a rules-of-hooks violation

Requirement: Backend retains ESLint

The server application (apps/server/) SHALL retain its existing ESLint configuration due to NestJS-specific rules that oxlint does not support.

Scenario: Server lint passes

  • WHEN npm run lint is executed at root
  • THEN server source files are linted with ESLint and pass without errors

Scenario: NestJS decorator checks work

  • WHEN ESLint runs on server source
  • THEN @typescript-eslint/no-unsafe-* rules and NestJS-specific patterns are enforced

Requirement: Pre-existing Prettier/ESLint cleanup

All Prettier configuration files (.prettierrc, eslint-plugin-prettier references) SHALL be removed, and ESLint configurations SHALL be updated to remove Prettier integration.

Scenario: No Prettier remnants

  • WHEN the migration is complete
  • THEN grep -r "prettier" across config files returns no results (excluding oxfmt config which is separate)

Scenario: No Prettier dependencies

  • WHEN npm ls prettier eslint-plugin-prettier eslint-config-prettier is run
  • THEN no Prettier-related packages are installed in any workspace