ai-project-management duplicate-tickets pope-graph mcp-gateway deduplication

How do I handle an AI that keeps creating duplicate tickets?

Dedupe in the graph, not the ticketing system. bRRAIn's POPE layer identifies semantically equivalent work items across Jira, Linear, and Asana and flags duplicates before creation.

The ticketing tool is the wrong place to dedupe

Ticket dedup logic inside Jira or Linear is shallow — it matches on titles and maybe labels. An agent asked to file "add rate limiting to the auth endpoint" on Monday and "protect the login API from abuse" on Thursday will create two tickets the tool considers distinct. The real dedupe layer has to sit above the ticketing tools, not inside any one of them. bRRAIn puts that layer in the POPE graph, where work items are nodes with semantic embeddings and relationships, not just strings.

How semantic dedup actually works

When an agent or human prepares to create a new ticket, the MCP Gateway intercepts the request and runs it through the Handler. The Handler embeds the proposed ticket and searches the POPE graph for semantically close nodes — open tickets, recently closed tickets, existing commitments in NextSteps.md. If a match above threshold exists, the Handler surfaces it to the creator and asks: is this a duplicate, a related item, or genuinely new? The decision feeds back into the graph, training the threshold over time.

Cross-tool coverage

The real power is cross-tool. Most orgs run Jira for engineering, Linear for product, and Asana for marketing. A security agent filing a risk ticket in Jira does not know the product team already filed the same concern in Linear. bRRAIn's Consolidator ingests work items from all three through the MCP Gateway and represents them as unified nodes in the graph. Dedup happens across the unified view, catching duplicates that any single-tool dedupe would miss. The creator sees "related item exists in Linear" before they hit submit.

When duplicates are okay

Not every duplicate should be blocked. Sometimes two teams legitimately need their own tracking item for the same underlying work. bRRAIn's Handler distinguishes true duplicates (same owner, same scope) from parallel trackers (different owners, intentional overlap) and handles them differently. True duplicates get blocked; parallel trackers get linked in the graph so updates on one surface to the other. The PM sees the link in the Ontology Viewer and can decide whether to consolidate. Book a demo to watch a duplicate get caught live.

Relevant bRRAIn products and services

  • POPE Graph RAG — the semantic layer where work items are unified nodes across Jira, Linear, and Asana.
  • MCP Gateway — intercepts ticket creation requests and runs dedup checks before the ticket lands.
  • Handler — embeds proposed tickets, searches for semantic matches, and decides true-duplicate vs parallel-tracker.
  • Consolidator — ingests work items from all connected tools into a unified graph view.
  • Ontology Viewer — PM surface for reviewing linked parallel trackers and consolidating when needed.

bRRAIn Team

Contributor at bRRAIn. Writing about institutional AI, knowledge management, and the future of work.

Enjoyed this post?

Subscribe for more insights on institutional AI.