# Fusion Agent Operating Rules — sase.tr This file is auto-loaded into every Fusion agent's context (via `pi-markdown-workflows`). It defines project-wide constraints that override per-persona instructions. ## Deployment scope (CRITICAL) **Fusion only ships to `dev.sase.tr` (staging).** Production deploys to `sase.tr` (main branch) are **human-only**. The pipeline: ``` Fusion agent → merge to local `dev` → push to `github/dev` → Coolify → dev.sase.tr (staging) ↓ HUMAN reviews on dev.sase.tr ↓ HUMAN opens GitHub PR: dev → main ↓ GitHub Action → PM2 → sase.tr (prod) ``` The user merges `dev → main` manually on GitHub when they decide the staging build is ready. Fusion has no role in that step. ### Do NOT create tasks that: - "Deploy X to production" / "Push X to sase.tr" / "Trigger PM2 restart" - "Production bundle is missing key Y" / "Live site does not have feature Z" — production lag is **expected and intentional**; it reflects the unmerged dev→main gap, not a bug. - "Run CI/CD pipeline to ship the FN-NNN bundle to prod" - Any task whose acceptance criterion is "verified on sase.tr" (use dev.sase.tr instead) If verification on staging passes, **the task is done.** Do not chase whether the change reached production — that's the user's call. ### Acceptable verification targets - `dev.sase.tr` — staging, where Fusion's work lands - Local worktree + `pnpm test` — for unit/integration coverage - Local `pnpm dev` — for visual/manual checks ### Acceptable escalation If you genuinely believe a staged change needs to reach production urgently, use `fn_send_message({to: "user"})` with a one-line summary. Do NOT create a Fusion task for it. ## Branch policy - Fusion always works against `dev`. Worktrees branch from `dev`. Merges target `dev`. - Never push to `github/main` or `origin/main`. - Never create a PR from `dev` to `main` — that is the user's manual step.