Merge pull request 'architect: bug-report pipeline — inbound classification + auto-close' (#24) from architect/bug-report-pipeline into main
This commit is contained in:
commit
a66af9246e
1 changed files with 54 additions and 0 deletions
54
sprints/bug-report-pipeline.md
Normal file
54
sprints/bug-report-pipeline.md
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
# Sprint pitch: bug-report pipeline — inbound classification + auto-close
|
||||||
|
|
||||||
|
## Vision issues
|
||||||
|
- #388 — end-to-end bug-report management — inbound classification, reproduction routing, and auto-close loop
|
||||||
|
|
||||||
|
## What this enables
|
||||||
|
|
||||||
|
After this sprint, bug-reports flow through a **cheap classification gate** before reaching the expensive reproduce-agent. Inspection-class bugs (stack trace cited, cause obvious from code) go straight to dev-agent — saving the full Playwright/MCP environment spin-up. The auto-close loop fires reliably, and upstream Codeberg reporters get notified when their bug is fixed.
|
||||||
|
|
||||||
|
Today: every bug-report → reproduce-agent (expensive). After: only ambiguous bugs → reproduce-agent; obvious bugs → dev-agent directly.
|
||||||
|
|
||||||
|
## What exists today
|
||||||
|
|
||||||
|
The pipeline is 80% built:
|
||||||
|
|
||||||
|
| Component | Status | Location |
|
||||||
|
|-----------|--------|----------|
|
||||||
|
| Gardener bug-report detection + enrichment | Complete | `formulas/run-gardener.toml:79-134` |
|
||||||
|
| Reproduce-agent (Playwright MCP, exit gates) | Complete | `formulas/reproduce.toml`, `docker/reproduce/` |
|
||||||
|
| Triage-agent (6-step root cause) | Complete | `formulas/triage.toml` |
|
||||||
|
| Dev-poll label gating (skips `bug-report`) | Complete | `dev/dev-poll.sh` |
|
||||||
|
| Auto-close decomposed parents | Complete (not firing) | `formulas/run-gardener.toml:224-269` |
|
||||||
|
| Issue templates (bug.yaml, feature.yaml) | Complete | `.forgejo/ISSUE_TEMPLATE/` |
|
||||||
|
| Manifest action system | Complete | `gardener/pending-actions.json` |
|
||||||
|
|
||||||
|
Reusable infrastructure: formula-session.sh, agent-sdk.sh, issue-lifecycle.sh label helpers, parse-deps.sh dependency extraction, manifest-driven mutation pattern.
|
||||||
|
|
||||||
|
## Complexity
|
||||||
|
|
||||||
|
- **5-6 sub-issues** estimated
|
||||||
|
- **~8 files touched** across formulas, lib, and gardener
|
||||||
|
- **Mostly gluecode** — extending existing gardener formula, adding a classification step, wiring auto-close reliability, adding upstream notification
|
||||||
|
- **One new formula step** (inbound classifier in run-gardener.toml or a dedicated pre-check)
|
||||||
|
- **No new containers or services** — classification runs inside existing gardener session
|
||||||
|
|
||||||
|
## Risks
|
||||||
|
|
||||||
|
- **Classification accuracy** — the cheap pre-check might route ambiguous bugs to dev-agent, wasting dev cycles on bugs it can't fix without reproduction. Mitigation: conservative skip-reproduction criteria (all four pre-check questions must be clean).
|
||||||
|
- **Gardener formula complexity** — run-gardener.toml is already the most complex formula. Adding classification logic increases cognitive load. Mitigation: classification could be a separate formula step with clear entry/exit gates.
|
||||||
|
- **Upstream Codeberg notification** — requires Codeberg API token in `.env.vault.enc`. Currently in `.netrc` on host but not in containers. Needs vault action for the actual notification (AD-006 compliance).
|
||||||
|
- **Auto-close timing** — if gardener runs are infrequent (every 6h), auto-close feedback loop is slow. Not a sprint problem per se, but worth noting.
|
||||||
|
|
||||||
|
## Cost — new infra to maintain
|
||||||
|
|
||||||
|
- **One new gardener formula step** (inbound classification) — maintained alongside existing grooming step
|
||||||
|
- **Bug taxonomy labels** (bohrbug, heisenbug, mandelbug, schrodinbug or simplified equivalents) — 2-4 new labels
|
||||||
|
- **No new services, cron jobs, or agent roles** — everything runs within existing gardener cycle
|
||||||
|
- **Codeberg notification vault action template** — one new TOML in `vault/examples/`
|
||||||
|
|
||||||
|
## Recommendation
|
||||||
|
|
||||||
|
**Worth it.** The infrastructure is 80% built. This sprint fills the two concrete gaps (classification gate + auto-close reliability) with minimal new maintenance burden. The biggest value is avoiding unnecessary reproduce-agent runs — each one costs a full Claude session with Playwright MCP for bugs that could be triaged by reading code. The auto-close fix is nearly free (the logic exists, just needs the gardener to run reliably). Upstream notification is a small vault action addition.
|
||||||
|
|
||||||
|
Defer the statistical reproduction mode (Heisenbug handling) and bulk deduplication to a follow-up sprint — they add complexity without proportional value at current bug volume.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue