Install the backend development dependencies and frontend packages. Install Playwright Chromium once:
cd frontend
corepack pnpm@9.15.9 exec playwright install chromium
cd ..-
Open a terminal in the repository root.
-
On Windows, run:
.\backend\.venv311\Scripts\python.exe check.py -
On macOS or Linux, run:
backend/.venv/bin/python check.py
The validation runner reports ColorCraft validation passed.
If a step fails, correct the first reported failure. Run the complete validation again.
The complete gate runs:
- Prettier format verification
- ESLint
- TypeScript checking
- Vitest unit and integration tests with V8 coverage
- Vite production build
- Ruff format verification
- Ruff lint
- mypy on stable backend contracts and the validation runner
- pytest with backend and launcher coverage
- Playwright Chromium workflows and axe accessibility checks
check.cmd selects a known Windows backend virtual environment and runs
check.py.
cd frontend
corepack pnpm@9.15.9 format:check
corepack pnpm@9.15.9 lint
corepack pnpm@9.15.9 typecheck
corepack pnpm@9.15.9 test
corepack pnpm@9.15.9 build
corepack pnpm@9.15.9 test:e2e
cd ..
.\backend\.venv311\Scripts\python.exe -m pytest tests
.\backend\.venv311\Scripts\python.exe -m compileall -q backend dev.py check.py
git diff --checkUse python check.py --skip-e2e for a fast local iteration. CI runs the complete
gate.
- Persistence tests cover version-3 validation, legacy HEX-role migration, duplicate-role remapping, update identity, sorting, rename, duplicate, and delete.
- Frontend tests cover navigation, palette state, stale analysis, Save states, Review, Export, and API contract validation.
- Backend tests cover upload defenses, extraction, relationship analysis, suggestions, contrast, metadata, readiness, configuration, and launcher supervision.
- Browser tests cover create, save, analyze, stable duplicate-color role assignment, semantic export, portable round trips, reopen, delete, and representative accessibility states.
- Documentation tests verify local Markdown links and curated screenshot names.