TICKET MANAGEMENT

Linear Duplicate-Cluster Merge Proposer with Confidence Gate

When a new Linear issue is created, find its closest sibling tickets by embedding similarity, and if confidence is high enough, propose linking them all to one canonical issue.

CategoryTicket Management
Enginesim
Difficultyadvanced
Triggerevent
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerNew Linear issue createdLinearLinear
  • ActionEmbed issue + query pgvector for nearest siblingsPostgreSQLPostgres
  • LogicGate on cluster confidence threshold
  • ActionPick canonical issue + draft merge rationaleOpenAI
  • OutputPost merge proposal with Approve/Reject to SlackSlack
  • ActionOn approval, link siblings as duplicates in LinearLinearLinear

What it does

Every new Linear issue is compared against recent open issues to detect duplicate clusters. When a cluster crosses a confidence threshold, the workflow nominates a canonical issue (the oldest or highest-priority sibling) and drafts a merge proposal that links the rest to it. A human approves in Slack before any links are written.

When to use it

For support or triage teams drowning in repeat reports of the same bug. Use it when you want automatic clustering but refuse to auto-merge blindly — the confidence gate plus human approval keeps false merges out.

How it works

  1. 1A new Linear issue fires the trigger.
  2. 2OpenAI embeds the title and body, and a Postgres pgvector query returns the nearest open siblings with cosine scores.
  3. 3A logic gate checks whether the top cluster exceeds the configured confidence threshold; below it, the run exits silently.
  4. 4OpenAI picks the canonical issue and writes a plain-English rationale for the merge.
  5. 5A Slack message presents the proposed canonical issue, its siblings, and Approve/Reject buttons.
  6. 6On approval, Linear marks each sibling as a duplicate of the canonical issue and posts a closing comment.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect LinearIssues, projects, cycles, triage.
  2. 2
    Connect OpenAIModels, embeddings, files.
  3. 3
    Connect PostgresAny Postgres URL — query, write, migrate.
  4. 4
    Connect SlackChannels, DMs, threads, mentions.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.