# Execution loop (mandatory — Salon_Assistant) Full SSOT: repository root `AGENTS.md` → **Execution loop (mandatory)** and **Git hygiene (mandatory)**. This rule exists so agents stay on rails **without** the user naming every slash command. ## Default loop ```text Authorize → Plan (if needed) → Build → Review → Check → Local commit (only if asked) → User pushes ``` ## Hard rails 1. **No product implementation** until the user says **build** or **implement**. Docs/design/agent-rules work is fine without that. 2. **Do not require the user to restate process.** If they authorize a slice, run plan (when needed) → build → independent review → check yourself. 3. **Review + check** on multi-file / non-trivial work. Prefer `/review --local` and `/check-work`. Equivalent: read-only reviewer subagent + verifier subagent / `make verify`. Same agent editing and saying “LGTM” is not enough. 4. **Commit only when asked.** **Never push, open/merge PR, or tag** unless the user explicitly orders it. User owns `git push` by default. 5. **Scope lock.** Implement only the authorized slice. No drive-by packages, no silent redesign of `design/` SSOT. 6. **Subagents:** implementers edit; reviewers/explorers/verifiers are read-only. Parallel writers use worktrees. Inject product hard rules into every implementer prompt. 7. **Multi-PR / execute-plan:** only with a PR Plan DAG; `--dry-run` first when using execute-plan; this product → no Graphite default, no auto-PR, no push/merge unless user overrides in writing. Remote MCP = **gitea_vps** only. 8. **Stop** when the slice is done, blocked on a user decision, or would require secrets / destructive git / forge mistakes — report, do not steamroll. 9. **Platform-first:** `nemohermes` / `openshell` only; no parallel control API; no owner terminal/Docker instructions; no agent pay / silent send. ## Tiny exception Trivial one-file typo/docs nit: plan optional; still no unauthorized build; still no push; still no secrets.