Cutting A Release
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
Investigate a cluster of GitHub issues and PRs, determine canonical candidates, post duplicate/related status, preserve contributor credit, and execute cleanup actions.
$ npx skills add vincentkoc/dotskills --skill openclaw-github-dedupe -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vincentkoc/dotskills openclaw-github-dedupe --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vincentkoc/dotskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/openclaw-github-dedupe .claude/skills/openclaw-github-dedupe && rm -rf skills-srcUse ~/.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/
Install the "openclaw-github-dedupe" agent skill from https://github.com/vincentkoc/dotskills/tree/main/skills/openclaw-github-dedupe into .claude/skills/openclaw-github-dedupe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-github-dedupe", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vincentkoc/dotskills/tree/main/skills/openclaw-github-dedupeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vincentkoc/dotskills --skill openclaw-github-dedupe -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vincentkoc/dotskills openclaw-github-dedupe --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vincentkoc/dotskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/openclaw-github-dedupe .agents/skills/openclaw-github-dedupe && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openclaw-github-dedupe" agent skill from https://github.com/vincentkoc/dotskills/tree/main/skills/openclaw-github-dedupe into .agents/skills/openclaw-github-dedupe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-github-dedupe", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vincentkoc/dotskills --skill openclaw-github-dedupe -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vincentkoc/dotskills openclaw-github-dedupe --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vincentkoc/dotskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/openclaw-github-dedupe .cursor/skills/openclaw-github-dedupe && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "openclaw-github-dedupe" agent skill from https://github.com/vincentkoc/dotskills/tree/main/skills/openclaw-github-dedupe into .cursor/skills/openclaw-github-dedupe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-github-dedupe", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vincentkoc/dotskills.git --path skills/openclaw-github-dedupe--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vincentkoc/dotskills --skill openclaw-github-dedupe -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vincentkoc/dotskills openclaw-github-dedupe --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vincentkoc/dotskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/openclaw-github-dedupe .gemini/skills/openclaw-github-dedupe && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "openclaw-github-dedupe" agent skill from https://github.com/vincentkoc/dotskills/tree/main/skills/openclaw-github-dedupe into .gemini/skills/openclaw-github-dedupe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-github-dedupe", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vincentkoc/dotskills openclaw-github-dedupeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vincentkoc/dotskills --skill openclaw-github-dedupe -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vincentkoc/dotskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/openclaw-github-dedupe .github/skills/openclaw-github-dedupe && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "openclaw-github-dedupe" agent skill from https://github.com/vincentkoc/dotskills/tree/main/skills/openclaw-github-dedupe into .github/skills/openclaw-github-dedupe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-github-dedupe", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vincentkoc/dotskills --skill openclaw-github-dedupe -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vincentkoc/dotskills openclaw-github-dedupe --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vincentkoc/dotskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/openclaw-github-dedupe .opencode/skills/openclaw-github-dedupe && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "openclaw-github-dedupe" agent skill from https://github.com/vincentkoc/dotskills/tree/main/skills/openclaw-github-dedupe into .opencode/skills/openclaw-github-dedupe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-github-dedupe", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
openclaw-github-dedupeInvestigate a cluster of GitHub issues and PRs, determine canonical candidates, post duplicate/related status, preserve contributor credit, and execute cleanup actions.
Openclaw GitHub Dedupe is an agent skill from vincentkoc/dotskills. Investigate a cluster of GitHub issues and PRs, determine canonical candidates, post duplicate/related status, preserve contributor credit, and execute cleanup actions. Supports autonomous mode for provided-link-only closeout, merge/fix follow-through, changelog, and post-merge issue/PR cleanup.
Its SKILL.md is about 6.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including scripts, reference files and assets (for example `agents/cluster-decision-agent.md`, `agents/cluster-evidence-agent.md` and `agents/cluster-intake-agent.md`).
It sits in Development, covering Changelog and release notes. It works with GitHub. The repository describes itself as: 🐙 A curated set of Codex and OpenClaw skills for workflow automation, technical debugging, and agent-assisted development patterns. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b83ca13. It shows what the files ask for, not the result of running them.
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.
Ships 2 files in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Openclaw GitHub Dedupe loads about 6.3k tokens when it runs, and up to ~6.8k if it reads all its reference files. Until then it costs about 80 tokens; SKILL.md has 3,202 words of instructions outside code blocks.
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.
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.
The full file from vincentkoc/dotskills at commit b83ca13, republished under its MIT licence (© vincentkoc). 3,202 words, ~6,279 tokens.
.claude/skills/openclaw-github-dedupe/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.Use this skill when a cluster of GitHub issues and pull requests has been reported for a common failure mode (Slack, iMessage, support threads, or manual list), and you need an evidence-based dedupe recommendation, execution pass, or autonomous closeout run.
Provide a consistent, evidence-driven triage pass for issue and PR clusters so duplicate work is folded, contributor credit is preserved, and cleanup actions stay auditable.
Execution is command-led and conservative: drive decisions from gh readbacks plus deterministic file/metadata checks only, and avoid speculative local analysis beyond triage logic.
Autonomous mode is different from broad dedupe: it starts from user-provided links/refs, follows only links found inside those refs, first decides whether the cluster is still viable and needed against current main, then drives the selected fix/merge/closure path to completion when repo policy allows.
Primary goal: make every run action-ready with explicit per-item actions, links, and command outcomes.
Treat each cluster as a triage system, not a documentation exercise. The expected behavior is deterministic classification, auditable comment text, safe mutation flow, and fast operator comprehension.
These are defined in principles.md:
dry-run and blockers)Read constitution.md for governance requirements and decision quality rules before choosing final outcomes.
This workflow is designed for high-velocity maintainers and external contributors:
cluster_refs (required): list of issue/PR references as IDs or URLs.mode (optional): plan (default), execute, or autonomous.channel (optional): source context like slack, imessage, support, etc.repo (optional): explicit owner/repo when not using current checkout.canonical_hint (optional): explicit preference when ambiguity exists.merge_guard (optional): high|medium mergeability strictness; default high.max_changed_files_for_canonical (optional): default 30.max_delta_lines_for_canonical (optional): default 2500.min_greptile_score (optional): default 65 when available.body_noise_mode (optional): strict|medium for junk body tolerance; default medium.reuse_copy_detection (optional): off|on with default on for bot/copied-work checks.bot_author_pattern (optional): list of substrings for suspicious authors.merge_tool_pref (optional): auto, gh, merge-skill, or land-skill; default auto.dry_run (optional): 0|1 to force non-mutating mode.output_mode (optional): compact|detailed; default detailed.triage_report (optional): path to a triage report file (like /path/to/triage-report.md) to seed initial cluster candidates.search_limit (optional): max similar items per item from GH search; default 12.search_queries (optional): explicit query terms (space-separated).Trigger this path only when the user explicitly says autonomous mode or sets mode=autonomous. This is closeout work, not exploration.
Before editing, merging, or closing anything, prove the cluster is still actionable against current main:
origin/main and identify whether the reported behavior is already fixed, obsolete, or still reproduces from code/tests.gh issue view or gh pr view; include bodies, comments, labels, state, checks, review threads, and linked closing refs.needed, covered, stale, or independent.main, run targeted local gates, push, wait for relevant checks, and merge per repo policy.main already contains the fix: use that merged PR/commit as canonical and close only high-confidence covered duplicates.origin/main, patch the smallest implicated surface, add focused tests/changelog when user-facing, open a draft PR, drive it through review/CI where permitted, then merge when clean.gh issue view / gh pr view after actions.Autonomous mode final output may be compact, but it must include: canonical URL, landed commit/PR state, validation performed, closed refs, and items intentionally left open.
KEEP_OPEN_CANONICAL, CLOSE_DUPLICATE, KEEP_OPEN_RELATED, KEEP_OPEN_UNRELATED, MANUAL_REVIEW_REQUIRED) and each row showing title + author.manual-review-required outcomes, with confidence score and hard-stop reason.Use sub-agents in this chain for higher consistency and lower mistakes:
agents/cluster-intake-agent.mdagents/cluster-similarity-agent.mdagents/cluster-evidence-agent.mdagents/cluster-decision-agent.mdagents/cluster-synthesis-agent.mdRun in sequence and feed each output to the next.
triage_report expansion.If any sub-agent blocks, continue only with explicit manual-review-required and keep execution safe.
When orchestrator support exists, run them as a chain and pass structured outputs between steps:
cluster-intake-agentcluster-similarity-agentcluster-evidence-agentcluster-decision-agentcluster-synthesis-agentIf sub-agents are unavailable, execute the same steps manually in this file order and keep output format intact.
Use update_plan at runtime and keep one in-progress step at a time.
Discover → Assess → Plan → Execute (if requested) → Verify.in_progress and completed.Execute as pending and return manual-review-required.Cluster intake and normalization
manual-review-required.Similarity sweep (required except autonomous mode)
cluster-intake-agent summary as the primary seed.gh issue list --search "<query> in:title" --state all --repo <repo> --json number,title,url,state,author,updatedAt,labelsgh pr list --search "<query> in:title" --state all --repo <repo> --json number,title,url,state,author,updatedAt,isDraft,mergeableFetch evidence from GitHub
gh pr view <ref> --json number,title,body,state,author,labels,createdAt,updatedAt,mergedAt,closedAt,mergeable,mergeStateStatus,isDraft,changedFiles,additions,deletions,statusCheckRollup,commits,urlgh issue view <ref> --json number,title,body,state,labels,author,createdAt,updatedAt,url,commentsgh pr diff <ref> --name-onlygh pr checks <ref>gh issue view <ref> --json commentsNormalize guardrails
changedFiles, additions, deletions.manual-review-required and blocks automatic close.Review candidate canonicals
gh pr view <id> --json files and gh pr diff <id>.Decide outcomes
manual-review-required with explicit blockers.5a. Autonomous viability decision
origin/main.Merge and changelog follow-up
gh pr merge <id> --auto --merge (or repo policy --squash / --rebase)### Fixes and do not duplicate existing entries.Emit outcomes
plan mode: only draft comments, labels, close commands, and blockers.execute mode: run only safe GH mutations after all guardrails pass.autonomous mode: run safe GH mutations, code edits, PR updates, merges, and closeout actions after the viability gate passes.Review for governance drift
AGENTS.md and CONTRIBUTING.md for scope changes or repo policy changes.See the workflow chart for mode selection, viability, and guarded closeout paths.
<url-or-id or none><url-or-id or none><ready|blocked|merged><foundational work ref(s) + final fix ref> (default 1 credited contributor in 95%+ cases; max 2 only by explicit exception)<on|off>Render this as a table:
| item | action | title | author | artifact | rationale | target |
|---|---|---|---|---|---|---|
pr:xxxxx | KEEP_OPEN_CANONICAL | Streaming recipient-id root-cause fix | @canonical_author | https://github.com/openclaw/openclaw/pull/xxxxx | canonical remediation path | - |
issue:yyyyy | CLOSE_DUPLICATE | Slack stream stop race condition | @duplicate_author | https://github.com/openclaw/openclaw/issues/yyyyy | covered by canonical PR | #zzzzz |
issue:aaaaa | KEEP_OPEN_RELATED | Block-mode emission behavior mismatch | @related_author | https://github.com/openclaw/openclaw/issues/aaaaa | adjacent area: block-path semantics | - |
Required matrix fields: item, action, title, author, artifact link, short rationale, and canonical target/duplicate mapping target where applicable.
Render command outcomes as a table:
| status | command | state |
|---|---|---|
planned/executed/blocked | gh issue view ... | passed / applied / blocked by checks |
Include exact command text and resulting state for each operation.
Render evidence per item as a table:
| item | title | author | root-cause marker | scope delta | merge risk | confidence |
|---|---|---|---|---|---|---|
pr:xxxxx | Streaming recipient-id root-cause fix | @canonical_author | recipient IDs + stream pipeline | touches stream API + block pipeline | low | high |
Blockers must be explicit.
manual-review-required if any.high|med|low) and hard-stop reason.Use template intent only; do not replay exact wording across issues/PRs.
Prefer sentence variation over strict block copying. Keep grammar natural and avoid repetitive phrasing.
Style rule: use the intent below, then vary wording naturally for each message. Do not output a single fixed text.
`Great progress here.
The final fix is in #<canonical_pr> by @<canonical_author>. This is the version we're keeping because it is the most stable and complete path.
If you think there's a gap, tell me and I'll reopen review right away.`
Default single-credit template: `Thanks for the earlier contribution.
The final fix is in #<canonical_pr> by @<canonical_author>. Your earlier contribution is preserved in the canonical history.
If this looks off, tell me and I can reopen review right away.`
Exceptional dual-credit template: `I appreciate the earlier pass.
The final fix is in #<canonical_pr> by @<canonical_author> and @<foundational_author>. The earlier path in #<prior_pr> built strong groundwork, and the later PR completed a merge-safe continuation.
If this needs correction, tell me and I can re-check credit and closure right away.`
`Thanks for the earlier contribution.
I'm going to close this as a duplicate of #<canonical_pr>. Great attempt here, but this PR is stale and a newer, stable PR is handling the same root-cause path. Your work is preserved in the canonical attribution trail.
If this is a mistake, tell me and I can reopen review right away.`
Single-credit close template: `I appreciate you pushing this.
I'm going to close this as a duplicate of #<canonical_pr>. This was an earlier step, and the newer canonical fix now includes the covered scope.
If this feels wrong, tell me and I can reopen review right away.`
Exceptional dual-credit close template: `Thank you for taking this on.
I'm going to close this as a duplicate of #<canonical_pr>. #<prior_pr> created the initial path, and the later PR carried it into a merge-safe continuation. Both contributions are retained in the canonical credit trail.
If this is a mistake, tell me and I can reopen review right away.`
`Keeping this open as canonical for this cluster.
This appears to be the shared issue shape for the channel cluster we are solving.
If this should be reassigned, tell me what you're seeing and I'll reassess the boundary.`
`Thanks for the report.
I'm closing this as duplicate of #<canonical>.
The same failure pattern and behavior map to the canonical fix path there.
If this is a mistake, tell me and I can reopen review right away.`
`Good call raising this.
This appears related, but this is not a duplicate. It diverges at {reason}, so it stays as a separate track.
If this feels like a miss, tell me and I can re-check it quickly.`
`Thanks for flagging this.
This appears separate from this cluster and will stay in its own thread.
If this looks related, point to the shared failure step and I can rerun dedupe right away.`
Use a starter bank (never replay the same opener twice in one run):
`Great call on this one.
I’m closing this as a duplicate of #xxxxx. The same failure pattern is now covered in the canonical fix, and this path is fully superseded there.
Your earlier work is still part of the attribution trail. If this is a miss, tell me what changed and I can reopen review right away.`
`Nice work surfacing this with clear context.
I reviewed the overlap and confirmed the final fix is in #xxxxx by @canonical_author. We’re keeping that one because it has the most complete root-cause coverage.
If this looks off in your repro, tell me and I can re-check the boundary quickly.`
`Thanks for pushing this.
This appears related, not a duplicate. It diverges at {reason} and belongs in a separate track for now.
If you think that boundary is wrong, point me to the shared failure step and I’ll reassess it right away.`
`I appreciate the early pass here.
I’m treating #xxxxx as canonical because it is the safest and most complete path for this cluster.
If I should rerun this split, share the exact overlap and I can do that immediately.`
pr:xxxxx by @canonical_authorissue:yyyyy by @first_author, issue:zzzzz by @second_authorpr:xxxxxpr:yyyyy (not mergeable, direct continuation proven by diff overlap and clean follow-up checks)KEEP_OPEN_RELATED.{reason} describing vector divergence.Run commands from repo checkout unless explicitly using full
owner/repoURLs.
gh issue edit <id> --add-label dedupe:child --add-label close:duplicategh issue edit <canonical_id> --add-label dedupe:parentgh issue comment <id> --body "..."gh issue close <id> --reason not plannedgh pr close <id> --comment "..." (preferred with canonical close message).gh pr merge <id> --merge --autogh pr merge <id> --squash --autogh pr merge <id> --rebase --autogh pr view <id> --json mergeable,mergeStateStatus,isDraft,statusCheckRollupgh pr view <id> --json changedFiles,additions,deletionsgh issue view <id> --json commentsRun the helper from this skill directory for batch-driven dedupe actions:
./scripts/alias.sh run-cluster /path/to/cluster.txt
./scripts/alias.sh --dry-run run-cluster /path/to/cluster.txt
Supported cluster format:
<type>:<id>|<action>|<target>
Supported actions:
inspectclose-pr-duplicateclose-issue-duplicatenoopExample:
pr:xxxxx|inspect|
pr:yyyyy|close-pr-duplicate|xxxxx
issue:bbbbb|close-issue-duplicate|aaaaa
issue:ccccc|noop|Use placeholder IDs in examples only:
pr:xxxxx|inspect|
Prefer using scripts/cluster-example.txt as your starting template for reusable cluster runs.
git branch -D <branch>git push origin --delete <branch>--reason duplicate).© vincentkoc, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 12 other files (scripts, references, assets) in skills/openclaw-github-dedupe of vincentkoc/dotskills.
Open the folder on GitHubat commit b83ca13
Openclaw GitHub 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Openclaw GitHub Dedupe this skillvincentkoc/dotskills | 107 | — | ~6.3k | Automated safety check: Pass | MIT | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| Mole CLI Release Flowtw93/Mole | 69k | — | ~2.5k | Automated safety check: Pass | GPL-3.0 | |
| Draft Release Notesjamiepine/voicebox | 57k | — | ~941 | Automated safety check: Pass | MIT | |
| Mole Release Notes Publishertw93/Mole | 69k | — | ~1.9k | Automated safety check: Pass | GPL-3.0 | |
| Release Bumpjamiepine/voicebox | 57k | — | ~1.1k | Automated safety check: Pass | MIT |
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
jamiepine/voicebox
Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.
tw93/Mole
Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
jfernandez/bpftop
Cut a new versioned release of bpftop — pick the version, open a version-bump PR, sign-tag the merge commit on main, and draft GitHub release notes in the project's established format.
vincentkoc/dotskills
Select, review, repair, validate, and land batches of up to 20 low-risk OpenClaw contributor pull requests using Vincent's maintainer preferences and bounded sub-agent lanes.
vincentkoc/dotskills
Monitor and coordinate one tmux agent lane, reconstruct worker state from panes and recent Codex logs, classify progress and blockers, and produce concise manager summaries.
vincentkoc/dotskills
Resolve canonical Git checkouts, index and verify codebase-memory-mcp graphs through the guarded CLI, and safely audit duplicate worktree caches.
vincentkoc/dotskills
Audit and safely prune stale branches across a GitHub organization with immutable snapshots, conservative merged-PR classification, live SHA/protection/open-PR revalidation, resumable deletion…
vincentkoc/dotskills
Prepare a concise session handoff when the user asks to wrap up, capture continuation context, or use /done.
vincentkoc/dotskills
Mine structured Codex /goal history locally or across a configured machine fleet, measure active goal time and resumed thread spans, identify unfinished and recurring semantic runs, and turn them…
Works with
Categories
Investigate a cluster of GitHub issues and PRs, determine canonical candidates, post duplicate/related status, preserve contributor credit, and execute cleanup actions. Openclaw GitHub Dedupe is an agent skill from vincentkoc/dotskills. Investigate a cluster of GitHub issues and PRs, determine canonical candidates, post duplicate/related status, preserve contributor credit, and execute cleanup actions.
Openclaw GitHub Dedupe fits situations like: tasks that involve Changelog and release notes.
Run `npx skills add vincentkoc/dotskills --skill openclaw-github-dedupe -a claude-code`. Or copy the skill folder (skills/openclaw-github-dedupe in vincentkoc/dotskills) into .claude/skills/openclaw-github-dedupe in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vincentkoc/dotskills --skill openclaw-github-dedupe -a codex`. Or copy the skill folder (skills/openclaw-github-dedupe in vincentkoc/dotskills) into .agents/skills/openclaw-github-dedupe in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vincentkoc/dotskills --skill openclaw-github-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/openclaw-github-dedupe, .gemini/skills/openclaw-github-dedupe, .github/skills/openclaw-github-dedupe and .opencode/skills/openclaw-github-dedupe in your project.
Going by SKILL.md and its folder, Openclaw GitHub Dedupe needs a shell for the scripts in its folder and the command-line tools its instructions call (gh and git). Our summary lists: A Bash shell.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
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.
Openclaw GitHub Dedupe is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.3k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 491 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Openclaw GitHub Dedupe: Cutting A Release (TriliumNext/Trilium, 38k stars), Mole CLI Release Flow (tw93/Mole, 69k stars), Draft Release Notes (jamiepine/voicebox, 57k stars) and Mole Release Notes Publisher (tw93/Mole, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vincentkoc (a GitHub user) maintains it in vincentkoc/dotskills, which has 107 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 2, 2026.
Source: vincentkoc/dotskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.