<!-- AUTOGENERATED: Run `node scripts/sync-ai-workflow.mjs --write`. -->

# Copenhagen Truck Wash API Development Guidelines

This file is generated from the canonical AI workflow and is the supported Junie-facing reference for the backend repository.

## Build And Run

- Project root: `services/nginx/app` is the effective PHP application root.
- Setup: use `./scripts/setup.sh` on POSIX or `powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1` on Windows.
- Start local API stack: `docker compose up -d traefik redis mysql-debug php1 caddy`.
- Tail logs with `docker compose logs -f --tail=200 php1`.

## Testing

- Supported backend validation runs in `php1`.
- Unit tests: `docker compose exec -T php1 sh -lc "cd /var/www/html && composer test:unit"`.
- Integration tests: `docker compose exec -T php1 sh -lc "cd /var/www/html && composer test:integration"`.
- API tests: `docker compose exec -T php1 sh -lc "cd /var/www/html && composer test:api"`.
- Prefer the narrowest suite that proves the change, then run the broader suite that matches the risk.

## Workflow Notes

- Generated assistant metadata is checked with `node scripts/sync-ai-workflow.mjs --check`.
- Route and schema changes require matching updates to `openapi.yaml`.
- Runtime OpenAI product behavior is out of scope for this workflow bundle unless a task explicitly changes product code.

Canonical workflow reference: `.ai-workflow/workflow.md`.
