claude-desktop-extra: Skill for Claude Code

.claude/skills/deploy/SKILL.md

deploy is a skill for Claude Code from patrickjaja/claude-desktop-extra. It costs 54 tokens per session (1,125 once invoked), scanned A, original, MIT.

A release procedure for the modified Claude Desktop application. It checks recent changes and starts the project's GitHub Actions build-and-release workflow, which automatically handles release numbering.

In plain words
What is it for?
Use it after code or packaging changes when you need to create a normal release or force another release at the same upstream version.
Why use it?
It reduces the manual work and mistakes involved in deciding how to package and publish a new release.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

This is patrickjaja/claude-desktop-extra's own configuration. It tells Claude Code how to work on claude-desktop-extra itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything claude-desktop-extra configures →

Reuse

Borrowing it

Nothing to install: this file belongs to patrickjaja/claude-desktop-extra. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/patrickjaja/claude-desktop-extra/master/.claude/skills/deploy/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/patrickjaja/claude-desktop-extra

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for deploy

README.md
[![agentmods](https://agentmods.dev/badge/skills/patrickjaja/claude-desktop-extra/deploy.svg)](https://agentmods.dev/skills/patrickjaja/claude-desktop-extra/deploy)
Your own site
<a href="https://agentmods.dev/skills/patrickjaja/claude-desktop-extra/deploy"><img src="https://agentmods.dev/badge/skills/patrickjaja/claude-desktop-extra/deploy.svg" alt="Measured on agentmods" height="20"></a>
Per session 54 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,125 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00054 $0.01125
Opus 5 $0.00027 $0.00562
Sonnet 5 $0.00011 $0.00225
Haiku 4.5 $0.00005 $0.00112

Measured 7d ago against content hash e63179a991d5, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

deploy scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/deploy/SKILL.md · 49 lines

How it starts

The opening of the file, as written. The whole thing — 49 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Deploy - trigger Build & Release

Args: $ARGUMENTS (force / no-force override the auto-decision; empty = decide automatically).

Context

  • Repo: patrickjaja/claude-desktop-extra · Workflow: build-and-release.yml · default branch: master.
  • Current branch: !git branch --show-current
  • Tracked upstream version: !cat .upstream-version 2>/dev/null
  • Last release: !gh -R patrickjaja/claude-desktop-extra release list --limit 1 2>/dev/null || echo "(gh not ready)"
  • Recent runs: !gh -R patrickjaja/claude-desktop-extra run list --workflow=build-and-release.yml --limit 3 2>/dev/null || echo "(gh not ready)"

Versioning semantics (format: {upstream}-{pkgrel})

  • New upstream version (.upstream-version was bumped by /update): pkgrel resets to 1 automatically. This is the plain non-force run.
  • Re-release at the same upstream version: pkgrel auto-increments (CI counts existing releases). This needs force_rebuild=true. It does not matter whether the change was a patch (new patched payload) or packaging-only (launcher, .desktop, packaging scripts) - both simply bump pkgrel; the kind of change belongs in the CHANGELOG entry and the release notes, not in the version.
  • pkgrel is never chosen by hand. CI computes it (counts existing releases) and, after publishing, stamps it into packaging/nix/package.nix alongside version and the tarball hash - Nix consumers fetch from the release's own immutable tag (v<upstream> for pkgrel 1, v<upstream>-<pkgrel> otherwise; assets are never overwritten, issue #214). The pkgrel/hash literals in package.nix are CI-managed; never edit them manually.

Steps

  1. Resolve the last release tag (from the Last release context above; v<upstream> or v<upstream>-<pkgrel>).
  2. Decide FORCE (skip if $ARGUMENTS says force or no-force - explicit wins):
    • If .upstream-version on HEAD differs from the upstream part of the last release tag → FORCE=false (new-upstream release, pkgrel resets to 1).
    • Else look at what changed: git fetch --tags origin then git diff --name-only <last-tag>..origin/master. Classify:
      • any patches/ or js/ file → payload update → FORCE=true
      • else any scripts/, packaging/, PKGBUILD.template, *.install, flake.nix, .github/workflows/ file → packaging-only update → FORCE=true
      • else (docs/site/skills/CHANGELOG/baseline only) → STOP: nothing shippable changed; tell the user a release would publish identical packages and ask if they really want /deploy force.
  3. Print a one-line plan including the classification, e.g. "Triggering build-and-release.yml on master (force_rebuild=true - packaging-only update, pkgrel will bump)". Mention the classification so the CHANGELOG/release notes wording can say "payload update" vs "packaging-only".
  4. Fire it (no interactive confirmation - the user already typed /deploy):
    gh -R patrickjaja/claude-desktop-extra workflow run build-and-release.yml -f force_rebuild=<FORCE>
    
  5. Wait ~3s, then resolve the run and report its URL:
    gh -R patrickjaja/claude-desktop-extra run list --workflow=build-and-release.yml --limit 1 \
      --json databaseId,url,status,event,createdAt
    
    Report the run URL and status. Offer: "Watch with gh -R patrickjaja/claude-desktop-extra run watch <id>".

Read the full file on GitHub · 49 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago First seen · 49 lines · 54 tokens per session scan A e63179a991d5

Subscribe to this mod's changes

deploy is a skill published in the GitHub repository patrickjaja/claude-desktop-extra (620 stars, last pushed 2d ago), licensed MIT. It adds 54 tokens to every session and 1,125 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.