The problem
Engineers were losing significant time on the first fifteen minutes of every bug ticket: re-reading the report, searching for related code, and pulling logs to confirm what was actually happening before real debugging could start. That triage overhead repeated on every ticket, regardless of how simple or complex the underlying fix turned out to be.
What I built
A triage agent that runs the moment a new bug ticket lands. It pulls the ticket via the Atlassian MCP server, searches a pgvector knowledge base built from Confluence documentation and S3-stored source references, and cross-references relevant application logs through the New Relic API. It then assembles a structured triage report: likely root cause, related code paths, relevant log excerpts, and a recommended starting point for investigation — all attached directly to the ticket before an engineer picks it up.
How it works
- Ingest: New ticket triggers the agent via a Jira webhook.
- Retrieve: The agent embeds the ticket description and searches pgvector for semantically related documentation and prior incidents.
- Cross-reference: Relevant service names and timestamps are used to pull matching New Relic log windows.
- Synthesize: Claude combines ticket context, retrieved knowledge, and log evidence into a structured report, written directly back to the ticket as a comment.
Impact
Triage reports now exist before an engineer opens the ticket, which meaningfully shortened the time between a bug being filed and a fix actually starting. It also made triage quality more consistent — every ticket gets the same systematic first pass, regardless of who’s on call.
Stack
Claude, Atlassian MCP, PostgreSQL + pgvector, OpenAI embeddings, New Relic API.