diff --git a/README.md b/README.md index 19babb9..73939b9 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,16 @@ Laravel production database and does not merge changes automatically. ## Workflow -1. LAI creates one Gitea issue for a wrong-answer report and labels it `ai:queued`. -2. This worker replaces the label with `ai:running`, clones `main`, and creates `ai/issue-N`. -3. mini-SWE-agent 2.4.6 implements the issue in a credential-free, unprivileged command environment. -4. The worker rejects protected paths, symlinks, empty patches, and oversized diffs. -5. Deterministic setup and test commands run with isolated test database credentials. -6. A pull request containing `Fixes #N`, the original problem, changed files, and checks is opened. -7. The issue is labeled `ai:ready` or `ai:failed` and receives a status comment. +1. LAI creates one unlabeled Gitea issue for a wrong-answer report. +2. An administrator reviews it and explicitly applies `ai:queued`, either through the LAI admin dashboard or directly in Gitea. +3. This worker replaces the label with `ai:running`, clones `main`, and creates `ai/issue-N`. +4. mini-SWE-agent 2.4.6 implements the issue in a credential-free, unprivileged command environment. +5. The worker rejects protected paths, symlinks, empty patches, and oversized diffs. +6. Deterministic setup and test commands run with isolated test database credentials. +7. A pull request containing `Fixes #N`, the original problem, changed files, and checks is opened. +8. The issue is labeled `ai:ready` or `ai:failed` and receives a status comment. + +Normal reports are never selected automatically. The manual `ai:queued` label is the explicit approval and the only worker trigger. Human review and merge are always required.