Agent skill

Update Dedupe

by warpdotdev in warpdotdev/oz-for-oss

Update the repo-local dedupe-issue-local companion skill using closed-as-duplicate signals.

MITAuto-check passedDevelopment

Install Update Dedupe

skills CLI
$ npx skills add warpdotdev/oz-for-oss --skill update-dedupe -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install warpdotdev/oz-for-oss update-dedupe --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/warpdotdev/oz-for-oss.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/update-dedupe .claude/skills/update-dedupe && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
update-dedupe
GitHub stars
313
Token cost
~927 tokens
SKILL.md length
453 words
Files
2 (incl. scripts)
Skills in repo
17
Repo updated
First seen
Licence
MIT

At a glance

Update the repo-local dedupe-issue-local companion skill using closed-as-duplicate signals.

  • Works in 2 steps: Verify GitHub CLI auth → Aggregate closed-as-duplicate signals…
  • Development work in your project
  • SKILL.md covers Write surface, Inputs, Workflow and Evidence Rules, plus 1 more section
  • Runs Python scripts from its folder; calls gh, python3 and git

What it does

Update Dedupe is an agent skill from warpdotdev/oz-for-oss. Update the repo-local dedupe-issue-local companion skill using closed-as-duplicate signals. Use when maintainers repeatedly close issues as duplicates of the same canonical thread and that pattern should feed back into triage duplicate detection.

Its SKILL.md is about 930 tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/aggregate_dedupe_feedback.py`).

It sits in Development. The repository describes itself as: Workflows and skills to help people and agents collaborate on open-source software with the power of Oz! The licence is MIT.

When your agent uses it

  • Development work in your project

Example prompts

  • “/update-dedupe”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Verify GitHub CLI auth
  2. Aggregate closed-as-duplicate signals for recently closed issues with the bundled script

What it can do on your machine

Read from SKILL.md and the folder at commit a2bb45f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • gh
    • python3
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Update Dedupe loads about 927 tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 453 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~927

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from warpdotdev/oz-for-oss at commit a2bb45f, republished under its MIT licence (© warpdotdev). 453 words, ~927 tokens.

Download SKILL.mdSave it as .claude/skills/update-dedupe/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
update-dedupe
description
Update the repo-local dedupe-issue-local companion skill using closed-as-duplicate signals. Use when maintainers repeatedly close issues as duplicates of the same canonical thread and that pattern should feed back into triage duplicate detection.

Update Dedupe

Use this skill to improve .agents/skills/dedupe-issue-local/SKILL.md from real closed-as-duplicate signals. The core skill at .agents/skills/dedupe-issue/SKILL.md is the cross-repo contract and is read-only from this loop.

This loop is focused exclusively on closed-as-duplicate signals. Other maintainer signals (re-labels, re-opens, follow-up comments) are handled by the separate update-triage loop.

Write surface

This self-improvement loop may only write to:

  • .agents/skills/dedupe-issue-local/ (and SKILL.md inside it)

It must NOT touch:

  • .agents/skills/dedupe-issue/SKILL.md (the core contract)
  • .agents/skills/triage-issue-local/SKILL.md (owned by update-triage)
  • any other core skill

The self-improvement runner enforces this via a git diff check against allowed prefixes before pushing. A violation aborts the run.

Inputs

  • Optional repository override if you are not running from the target checkout.
  • Optional time window override when you need something other than the default seven-day lookback.

Workflow

  1. Verify GitHub CLI auth:
bash
gh auth status
  1. Aggregate closed-as-duplicate signals for recently closed issues with the bundled script:
bash
python3 .agents/skills/update-dedupe/scripts/aggregate_dedupe_feedback.py

By default this targets the current repo and looks back 7 days. It collects only issues GitHub itself recorded as closed with the duplicate close reason (state_reason == "duplicate") and looks up the canonical issue each was closed against via the issue timeline's marked_as_duplicate event. Ad-hoc maintainer comments that merely mention another issue are intentionally ignored to avoid false positives. The script writes structured JSON to a temporary file and prints the path.

  1. Read the generated JSON and look for repeated clusters:
  • two or more different reporters filed similar issues that maintainers closed as duplicates of the same canonical thread
  • an explicit maintainer statement that a class of issue should always be treated as a duplicate of a canonical thread
  1. Propose the smallest edit that explains the cluster. Add or update a bullet under the "Known-duplicate clusters" section of .agents/skills/dedupe-issue-local/SKILL.md summarizing the canonical thread and the distinguishing signals maintainers use to identify duplicates.

  2. Keep the core dedupe contract stable — never edit dedupe-issue/SKILL.md, never weaken the 2-candidate minimum, never change the similarity thresholds or the output shape.

Show full SKILL.md (131 more words)Show less

Evidence Rules

  • Only encode a cluster when at least two independent closed-as-duplicate events point at the same canonical issue, or a maintainer explicitly asks for one.
  • Skip the PR when there is no repeated signal.
  • Do not weaken precision-over-recall for dedupe.

Final Checks

  • Re-read the updated dedupe-issue-local companion skill and confirm any new clusters are explicit.
  • Keep the companion concise; prefer canonical links and short distinguishing notes over long prose.
  • Commit any changes on a local branch named oz-agent/update-dedupe. Do NOT push the branch; the Python entrypoint will run a write-surface guard and push only when the guard passes.
  • If the updates warrant a PR, it will be opened from the pushed branch. Tag @captainsafia as a reviewer on that PR.
  • Validate any temporary JSON with jq before relying on it.

© warpdotdev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in .agents/skills/update-dedupe of warpdotdev/oz-for-oss.

  • SKILL.md
  • scripts/aggregate_dedupe_feedback.py

Open the folder on GitHubat commit a2bb45f

Compare with similar skills

Update Dedupe next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Update Dedupe compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Update Dedupe this skillwarpdotdev/oz-for-oss313—~927Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k24 repos~4.2kAutomated safety check: PassMPL-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
Greplooponyx-dot-app/onyx32k4 repos~3.3kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 24 repos~4.2k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed
  • Guidelines

    akash-network/node

    Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.

    1.1k GitHub starsUsed in 22 repos~577 tokens
    DevelopmentAuto-check passed

More from warpdotdev/oz-for-oss

All 17 skills in this repo
  • Update PR Review

    warpdotdev/oz-for-oss

    Update the repo-local review-pr-local and review-spec-local companion skills using human feedback left on pull request conversations.

    313 GitHub stars~1.6k tokensUpdated 20 days ago
    Auto-check passed
  • Bootstrap Issue Config

    warpdotdev/oz-for-oss

    Bootstrap the issue triage configuration for a repository by analyzing existing issues, labels, and contributors to generate .github/issue-triage/config.json and .github/STAKEHOLDERS.

    313 GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Update Triage

    warpdotdev/oz-for-oss

    Update the repo-local triage-issue-local companion skill using signals from recently triaged issues (maintainer re-labels, re-opens, follow-up comments).

    313 GitHub stars~1k tokensUpdated 20 days ago
    Auto-check passed
  • Implement Issue

    warpdotdev/oz-for-oss

    Implement a GitHub issue in this repository by applying the shared implement-specs workflow with Oz-specific issue, spec-context, and summary-file handling.

    313 GitHub stars~2k tokensUpdated 20 days ago
    Auto-check passed
  • Review Spec

    warpdotdev/oz-for-oss

    Review a spec/plan pull request diff and write structured feedback to review.json for the workflow to publish.

    313 GitHub stars~1.9k tokensUpdated 20 days ago
    Auto-check passed
  • Create Product Spec

    warpdotdev/oz-for-oss

    Create a product spec from a GitHub issue in this repository by applying the shared write-product-spec workflow with Oz-specific issue context and output paths.

    313 GitHub stars~1.2k tokensUpdated 20 days ago
    Auto-check passed

Categories

Questions about Update Dedupe

What does Update Dedupe do?

Update the repo-local dedupe-issue-local companion skill using closed-as-duplicate signals. Update Dedupe is an agent skill from warpdotdev/oz-for-oss. Update the repo-local dedupe-issue-local companion skill using closed-as-duplicate signals.

When should I use Update Dedupe?

Update Dedupe fits situations like: development work in your project.

How do I install Update Dedupe in Claude Code?

Run `npx skills add warpdotdev/oz-for-oss --skill update-dedupe -a claude-code`. Or copy the skill folder (.agents/skills/update-dedupe in warpdotdev/oz-for-oss) into .claude/skills/update-dedupe in your project. Claude Code loads it when a task matches its description.

How do I install Update Dedupe in Codex?

Run `npx skills add warpdotdev/oz-for-oss --skill update-dedupe -a codex`. Or copy the skill folder (.agents/skills/update-dedupe in warpdotdev/oz-for-oss) into .agents/skills/update-dedupe in your project. Codex loads it when a task matches its description.

Can I use Update Dedupe in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add warpdotdev/oz-for-oss --skill update-dedupe -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-dedupe, .gemini/skills/update-dedupe, .github/skills/update-dedupe and .opencode/skills/update-dedupe in your project.

What does Update Dedupe need to run?

Going by SKILL.md and its folder, Update Dedupe needs Python for the scripts in its folder and the command-line tools its instructions call (gh, python3 and git). Our summary lists: Python 3.

Does Update Dedupe access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Update Dedupe safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Update Dedupe use?

Update Dedupe is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Update Dedupe use?

About 927 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Update Dedupe?

Skills that share tags, products or a category with Update Dedupe: Finishing a Development Branch (obra/superpowers, 296k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars) and Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Update Dedupe?

warpdotdev (a GitHub organization) maintains it in warpdotdev/oz-for-oss, which has 313 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on September 17, 2026.

Source: warpdotdev/oz-for-oss on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.