Issue solving
Point AM at your GitHub issues and it fixes them: it discovers open issues, picks the highest‑value one, implements a fix on its own branch, runs the Verification Gate, and opens a PR that closes the issue.
Enable it
In Repo settings → Issue solving (Pro plan or higher):
- Issue solving — toggle on.
- Solutions per issue — how many independent attempts to spawn per issue (Pro = 1; Max = up to 3; Enterprise up to 5). Each solution uses a different approach (minimal → refactored → test‑driven) on its own branch.
A verify command is strongly recommended — it's what makes a generated fix trustworthy.
How it works
- Sync — AM pulls open issues from GitHub into a candidate queue, scored by signal (bug label, help‑wanted, comment activity). Pull requests are skipped; issues closed on GitHub are retired from the queue automatically.
- Select — the scheduler (or you, manually) picks the top‑scored open candidate. A standing repo objective takes priority over issue solving.
- Solve — an agent team implements the fix with the issue context in focus, commits, and the gate must pass.
- PR — a pull request opens with
Fixes #Nin the body, so merging it auto‑closes the issue. The cap (solutions_target) stops AM after the configured number of attempts — no runaway.
Manual control
POST /api/repos/{id}/issues/sync— refresh the candidate queue.GET /api/repos/{id}/issues— list candidates.POST /api/issues/{id}/run— solve one now.POST /api/issues/{id}/reject— skip a candidate.
(Or drive it from the CLI / an agent — see the Agent cheatsheet.)
Issue filter
By default every open issue is a candidate, except those carrying a skip label
(am-skip, am-hold, do-not-treat, wontfix, blocked, on-hold). Open
Repo settings → Automation → Issue candidates → Issue filter to narrow the
queue further (mirrors the PR watcher policy):
- Include labels — keep only issues carrying at least one (e.g.
bug,good first issue). - Exclude labels — drop issues carrying any (on top of the skip labels).
- Authors — keep only issues opened by these logins.
- Min comments — require at least N comments (a rough "has discussion" signal).
- Max age (days) — keep only issues created within the last N days.
Filters are applied at sync time, work the same for GitHub and GitLab, and can
only tighten the queue. An issue that no longer passes is marked skipped; it
returns automatically once it matches again (or the filter is relaxed). The
filter is stored on the repo as the issue_solve_policy JSON field — settable
via PATCH /api/repos/{id} for automation.
Gotchas
- Needs a GitHub token on your account (for sync + opening PRs).
- Solutions cap is per issue. Once
solutions_targetattempts are spawned the candidate is marked done — it won't be re‑solved unless you re‑open/re‑sync. - A red gate yields a draft PR (it never merges unverified work).
- Auto‑merge of the resulting PR follows the trust ladder (Max + repo auto‑merge on).