diff --git a/AGENTS.md b/AGENTS.md index 1a37452..2fd54af 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,21 +12,21 @@ the loop guards. - You may edit **any file**. **NEVER push to `main`, NEVER merge a PR** — all work goes on a branch and becomes a PR a human reviews and merges. - **Narrow exception — `@qa` autopilot merge:** `@qa` (and only `@qa`) MAY merge a single PR **only** - when the linked issue carries the `fully-automatic` label, the PR is clearly correct, and any CI + when the linked issue carries the `auto` label, the PR is clearly correct, and any CI checks are green. `@qa` triggers the merge by ending its reply with the `MERGE_PR` marker (the workflow performs the merge + closes the issue). On **any** doubt or bug, `@qa` must NOT merge: - it ends with `HALT_AUTOPILOT` instead, which removes the `fully-automatic` label and returns the + it ends with `HALT_AUTOPILOT` instead, which removes the `auto` label and returns the issue to human control. No other agent may merge, and `@qa` may not merge without the label. - **Never print, exfiltrate, or invent secret values.** - Keep changes **minimal** and match the conventions already in the file you're editing. - Do the work on a **branch** — never paste code or diffs into the issue thread. -## Autopilot (`fully-automatic` label) -An issue labeled **`fully-automatic`** runs without the usual human checkpoints: +## Autopilot (`auto` label) +An issue labeled **`auto`** runs without the usual human checkpoints: - `@pm` plans **and** delegates in the same turn (skips the "ready to build? reply yes" gate). - After the dev's PR is opened, `@qa` is auto-triggered to verify it, and merges + closes on success (see the QA merge exception above). -- **Kill switch:** remove the `fully-automatic` label at any time. The label is re-read fresh at the +- **Kill switch:** remove the `auto` label at any time. The label is re-read fresh at the start of every run, so the next agent turn reverts to normal human-approval behavior. `@qa` also removes the label itself whenever it halts on a bug or a failed merge. No label (the default) = today's behavior, unchanged.