diff --git a/AGENTS.md b/AGENTS.md index d5a0636..8239c9d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -120,6 +120,7 @@ Issues flow: `backlog` → `in-progress` → PR → CI → review → merge → | `blocked` | Issue is stuck — agent session failed, crashed, timed out, or CI exhausted. Diagnostic comment on the issue has details. Also used for unmet dependencies. | dev-agent.sh, dev-poll.sh (on failure) | | `tech-debt` | Pre-existing issue flagged by AI reviewer, not introduced by a PR. | review-pr.sh (auto-created follow-ups) | | `underspecified` | Dev-agent refused the issue as too large or vague. | dev-poll.sh (on preflight `too_large`), dev-agent.sh (on mid-run `too_large` refusal) | +| `bug-report` | Issue describes user-facing broken behavior with reproduction steps. Separate triage track for reproduction automation. | Gardener (bug-report detection in grooming) | | `vision` | Goal anchors — high-level objectives from VISION.md. | Planner, humans | | `prediction/unreviewed` | Unprocessed prediction filed by predictor. | predictor-run.sh | | `prediction/dismissed` | Prediction triaged as DISMISS — planner disagrees, closed with reason. | Planner (triage-predictions step) | diff --git a/formulas/run-gardener.toml b/formulas/run-gardener.toml index 58eb82b..4a92d61 100644 --- a/formulas/run-gardener.toml +++ b/formulas/run-gardener.toml @@ -76,6 +76,23 @@ Pre-checks (bash, zero tokens — detect problems before invoking Claude): 6. Tech-debt promotion: list all tech-debt labeled issues — goal is to process them all (promote to backlog or classify as dust). +7. Bug-report detection: for each open unlabeled issue (no backlog, no + bug-report, no in-progress, no blocked, no underspecified, no vision, + no tech-debt), check whether it describes a user-facing bug with + reproduction steps. Criteria — ALL must be true: + a. Body describes broken behavior (something that should work but + doesn't), NOT a feature request or enhancement + b. Body contains steps to reproduce (numbered list, "steps to + reproduce" heading, or clear sequence of actions that trigger the bug) + c. Issue is not already labeled + + If all criteria match, write an add_label action to the manifest: + echo '{"action":"add_label","issue":NNN,"label":"bug-report"}' >> "$PROJECT_REPO_ROOT/gardener/pending-actions.jsonl" + echo "ACTION: labeled #NNN as bug-report — " >> "$RESULT_FILE" + + Do NOT also add the backlog label — bug-report is a separate triage + track that feeds into reproduction automation. + For each issue, choose ONE action and write to result file: ACTION (substantial — promote, close duplicate, add acceptance criteria): @@ -167,8 +184,9 @@ Sibling dependency rule (CRITICAL): Processing order: 1. Handle PRIORITY_blockers_starving_factory first — promote or resolve 2. Quality gate — strip backlog from issues missing acceptance criteria or affected files - 3. Process tech-debt issues by score (impact/effort) - 4. Classify remaining items as dust or route to vault + 3. Bug-report detection — label qualifying issues before other classification + 4. Process tech-debt issues by score (impact/effort) + 5. Classify remaining items as dust or route to vault Do NOT bundle dust yourself — the dust-bundling step handles accumulation, dedup, TTL expiry, and bundling into backlog issues.