find-in-circleback
Answer "what did we say, decide, or promise" from Circleback meetings — search by attendee, company, tag, or date before keyword,…
Find and merge duplicate Linear issues — group reports of the same underlying bug, pick the survivor, and move the evidence across. Use when the backlog has grown noisy, someone asks whether an issue is already reported, or you are cleaning up before planning.
Claude Code
$ npx -y skills add paradevai/paradev --skill duplicate-sweep --agent claude-code
Codex
$ npx skills add paradevai/paradev --skill duplicate-sweep -a codex -y
Cursor
$ npx skills add paradevai/paradev --skill duplicate-sweep -a cursor -y
Gemini CLI
$ npx skills add paradevai/paradev --skill duplicate-sweep -a gemini-cli -y
GitHub Copilot
$ npx skills add paradevai/paradev --skill duplicate-sweep -a github-copilot -y
OpenCode
$ npx skills add paradevai/paradev --skill duplicate-sweep -a opencode -y
Windsurf
$ npx skills add paradevai/paradev --skill duplicate-sweep -a windsurf -y
name: duplicate-sweep description: Find and merge duplicate Linear issues — group reports of the same underlying bug, pick the survivor, and move the evidence across. Use when the backlog has grown noisy, someone asks whether an issue is already reported, or you are cleaning up before planning. argument-hint: team key, or a single issue to check for duplicates allowed-tools: mcp__linear__*
Two issues for one bug means two people investigate it and neither sees the other's findings. The goal is one issue per underlying problem, holding everything anyone learned.
The same bug gets filed as "export is broken", "CSV download 500s", and "can't get my data out". No shared vocabulary. Run several searches — the error string, the feature name, the user-facing verb — and pool the results rather than trusting one query.
Include closed issues. A closed one is not evidence the bug came back — triage closes far more issues than fixes do. Treat it as a regression only when the issue records a fix that shipped or was reopened; otherwise it is just another report of the same open problem.
Group only when the underlying cause is plausibly identical. Two issues that both say "page is slow" are the same report only if they are slow for the same reason; merging them buries whichever one nobody reproduced.
When you are unsure, link them as related (`save_issue` with `relatedTo`) and say why rather than merging. An incorrect merge loses an issue silently, and nobody goes looking for what they think is already tracked.
Not simply the oldest. Prefer the one with the best reproduction, then the most discussion, then the earliest. If the oldest is a one-line report and a later one has steps, logs, and three participants, the later one survives.
Show the user each group you intend to merge: the survivor, the issues folding into it, and what you will move across. Merging is destructive in the way that matters — an issue closed as a duplicate stops being found by the people watching it, and an incorrect merge is only discovered when someone re-reports the bug months later. Get an explicit go-ahead per group, or on the set if the user prefers, before the first write.
Anything only present on the duplicate — reproduction steps, a customer name, a log line, a subscriber who wants to know when it is fixed — goes onto the survivor first. Then close the duplicate with `save_issue` and `duplicateOf: <survivor>`, plus a comment pointing at it, so someone arriving from a search or an old link lands somewhere useful.
Never delete. A closed issue with a pointer is how the next person's search finds the survivor.
List each group: the survivor, what was merged into it, and what you moved across. Flag the pairs you deliberately did not merge and why — those are the judgment calls someone may want to overturn.
evidence is gone from anywhere anyone will look.
Paradev is an open-source Codex App and Conductor alternative. Orchestrate an army coding agents in parallel with your own subscriptions.
Answer "what did we say, decide, or promise" from Circleback meetings — search by attendee, company, tag, or date before keyword,…
Build a brief for an upcoming meeting from Circleback — the calendar event, the history with the same people and company, open…
Work the action items Circleback captured — find what is assigned to this user, do the ones the workspace can do, and update…
Diagnose a failing GitHub Actions run — find the first real error in the logs, tell a flake apart from a genuine failure, and…
Triage a GitHub issue into something actionable — reproduce the claim, find duplicates, judge severity, and apply labels,…
Answer "what did we say, decide, or promise" from Granola meeting notes — narrow to the meetings that can hold the answer, read…
Direct actions on one Orchestrator session or PR: stop or interrupt, resume, merge a PR, start a review, screenshot a session's…
Your capability catalog — read this at boot. Lists the temporal date-range skills and the external integrations (reached via the…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…