Skip to content

Add the perf-triage agent - #7349

Open
pslawless wants to merge 4 commits into
mozilla:masterfrom
pslawless:perf-triage
Open

pslawless wants to merge 4 commits into
mozilla:masterfrom
pslawless:perf-triage

Conversation

@pslawless

Copy link
Copy Markdown

Adds perf-triage, a Hackbot agent that rates a Firefox performance bug's Performance Impact with the Performance Impact Calculator and writes the result to the bug. A companion bugbot rule (mozilla/bugbot, separate PR) triggers it when cf_performance_impact is set to ? or a bug lands in Core :: Performance: General.

What it writes

Bug state Writes
Unrated (---/?) One comment; cf_performance_impact; the calculator's keywords (add only); a needinfo to the perf reviewer on a high rating
Rated by a person One comment, only if the agent disagrees. Never touches the field

Writes are recorded during the run and applied afterwards by hackbot-api. A run applies unattended only when the calculator, re-scored over every input the bug leaves open and every platform choice, stays in one band. Otherwise it waits for a person. hooks.py refuses any other write as it is recorded.

Deployment prerequisites

  • The hackbot Bugzilla account needs membership in the perf-triage-team Bugzilla group, with edit rights to cf_performance_impact. Without the membership, every update on an unrated bug is rejected. We'll confirm with one real write on a test bug after the first deploy.
  • Deploy the agent before the bugbot rule is enabled. The rule's first run uses --backlog; after that it looks back one day.
  • Open: the agents.json entry in mozilla/webservices-infra. Who adds it: the hackbot team or the agent author?

🤖 Generated with Claude Code

pslawless and others added 4 commits October 30, 2026 17:02
Runs the triage-perf-bug skill from mozilla/performance-triage-calculator in
agent mode and returns its Performance Impact rating, severity, the inputs
the bug did not establish, the related bugs it took inputs from, and an
optional profile finding.

The stability check re-scores the vendored calculator over every value of
the unestablished inputs, plus platforms; a rating is confident only when the
band never changes. Reproducibility is out of scope for this phase and is
never varied.

blind.py lets the broker hide a bug's engineer triage (BLIND_BUG_ID), for
evaluating the agent against ratings people already made.

The skill, the profiler-analysis skill and perf_triage.py are vendored
verbatim (see skills/PINNED.md) and excluded from pre-commit so they stay
byte-identical to their pinned revisions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Triages a performance bug with libs/performance-tools and records a comment
plus cf_performance_impact and keywords. Writes auto-apply only when the
rating is stable; otherwise they are held for review. On a bug a person
already rated it comments only when it disagrees and never changes the
field. A high rating needinfos the performance triage reviewer, and every
comment names them as the contact for disagreements. Fails closed when the
bug lookup fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cleaned up README

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant