diff --git a/.roo/rules/rules.md b/.roo/rules/rules.md index 5726770a289..6fb771896a9 100644 --- a/.roo/rules/rules.md +++ b/.roo/rules/rules.md @@ -22,3 +22,27 @@ - Use Tailwind CSS classes instead of inline style objects for new markup - VSCode CSS variables must be added to webview-ui/src/index.css before using them in Tailwind classes - Example: `
` instead of style objects + +4. Marketing Site (web-roo-code) Deployment Quality Gates: + + - The marketing site deployment workflows (`.github/workflows/website-deploy.yml`, `.github/workflows/website-preview.yml`) must include quality checks before deploying to Vercel + - When modifying these workflows, ensure the following checks run before deployment: + - Linting: `pnpm --filter @roo-code/web-roo-code lint` + - Type checking: `pnpm --filter @roo-code/web-roo-code check-types` + - Build validation: `pnpm --filter @roo-code/web-roo-code build` + - Deployment workflows should either: + - Add a `needs:` dependency on the `code-qa` workflow (for PR-based deployments), OR + - Include a dedicated `quality-checks` job that runs before the `deploy`/`preview` jobs + - For PR-based preview deployments (`website-preview.yml`): + - The quality checks job should be a required status check in GitHub branch protection + - This prevents merging PRs with broken previews or failed quality checks + - Ensures reviewers only see working previews + - Deployment concurrency controls: + - Add `concurrency` group to prevent multiple deployments from running simultaneously + - Set `cancel-in-progress: true` to cancel older deployments when new ones start + - Prevents race conditions where older commits could overwrite newer deployments + - Vercel CLI version stability: + - Use `vercel@latest` instead of `vercel@canary` for stable, production deployments + - Canary releases are unstable and could introduce breaking changes unexpectedly + - Pin to specific versions for critical production workflows when possible + - Never deploy broken code to production - quality gates prevent deployment of code that fails linting, type-checking, or build steps