Agent skill

Release

by paperclipai in paperclipai/paperclip

Coordinate a full Paperclip release across engineering verification, npm, GitHub, smoke testing, and announcement follow-up.

MITAuto-check passedDevOps & Cloud

Install Release

skills CLI
$ npx skills add paperclipai/paperclip --skill release -a claude-code

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

GitHub CLI
$ gh skill install paperclipai/paperclip release --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/paperclipai/paperclip.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release .claude/skills/release && 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
release
GitHub stars
99k
Token cost
~2.4k tokens
SKILL.md length
1,063 words
Files
1
Skills in repo
60
Repo updated
First seen
Licence
MIT

At a glance

Coordinate a full Paperclip release across engineering verification, npm, GitHub, smoke testing, and announcement follow-up.

  • Works in 9 steps: Release Model → Choose the Candidate → Draft the Stable Changelog → …
  • Leadership asks to ship a release
  • SKILL.md covers Trigger, Preconditions, Inputs and Step 0 — Release Model, plus 10 more sections
  • Calls git, pnpm and npm; needs PAPERCLIP_API_KEY

What it does

Release is an agent skill from paperclipai/paperclip. Coordinate a full Paperclip release across engineering verification, npm, GitHub, smoke testing, and announcement follow-up. Use when leadership asks to ship a release, not merely to discuss versioning.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Deployment. It works with npm and GitHub. The repository describes itself as: The open-source app everyone uses to manage agents at work. The licence is MIT.

When your agent uses it

  • Leadership asks to ship a release
  • Not merely to discuss versioning

Example prompts

  • “/release”

Requirements

  • Docker
  • A credential in PAPERCLIP_API_KEY

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Release Model
  2. Choose the Candidate
  3. Draft the Stable Changelog
  4. Verify the Candidate SHA
  5. Validate the Canary
  6. Smoke Test the Canary
  7. Preview or Publish Stable
  8. Finish the Other Surfaces
  9. Emit Release-Content Cases

What it can do on your machine

Read from SKILL.md and the folder at commit 5717523. 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

    Shell commands in SKILL.md call:

    • git
    • pnpm
    • npm

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

  • Network

    No URLs in SKILL.md. Its commands use git, pnpm and npm, 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 these keys or tokens, usually read from environment variables:

    • PAPERCLIP_API_KEY

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

Context cost

Release loads about 2.4k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 1,063 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from paperclipai/paperclip at commit 5717523, republished under its MIT licence (© paperclipai). 1,063 words, ~2,374 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Coordinate a full Paperclip release across engineering verification, npm, GitHub, smoke testing, and announcement follow-up. Use when leadership asks to ship a release, not merely to discuss versioning.

Release Coordination Skill

Run the full Paperclip maintainer release workflow, not just an npm publish.

This skill coordinates:

  • stable changelog drafting via release-changelog
  • canary verification and publish status from master
  • Docker smoke testing via scripts/docker-onboard-smoke.sh
  • manual stable promotion from a chosen source ref
  • GitHub Release creation
  • website / announcement follow-up tasks
  • release-content Cases dogfood: a top-level release case with child blog_post and tweet_storm cases, all linked to the release issue/run

Trigger

Use this skill when leadership asks for:

  • "do a release"
  • "ship the release"
  • "promote this canary to stable"
  • "cut the stable release"

Preconditions

Before proceeding, verify all of the following:

  1. .agents/skills/release-changelog/SKILL.md exists and is usable.
  2. The repo working tree is clean, including untracked files.
  3. There is at least one canary or candidate commit since the last stable tag.
  4. The candidate SHA has passed the verification gate or is about to.
  5. If manifests changed, the CI-owned pnpm-lock.yaml refresh is already merged on master.
  6. npm publish rights are available through GitHub trusted publishing, or through local npm auth for emergency/manual use.
  7. If running through Paperclip, you have issue context for status updates and follow-up task creation.

If any precondition fails, stop and report the blocker.

Inputs

Collect these inputs up front:

  • whether the target is a canary check or a stable promotion
  • the candidate source_ref for stable
  • whether the stable run is dry-run or live
  • release issue / company context for website and announcement follow-up

Step 0 — Release Model

Paperclip now uses a commit-driven release model:

  1. every push to master publishes a canary automatically
  2. canaries use YYYY.MDD.P-canary.N
  3. stable releases use YYYY.MDD.P
  4. the middle slot is MDD, where M is the UTC month and DD is the zero-padded UTC day
  5. the stable patch slot increments when more than one stable ships on the same UTC date
  6. stable releases are manually promoted from a chosen tested commit or canary source commit
  7. only stable releases get releases/vYYYY.MDD.P.md, git tag vYYYY.MDD.P, and a GitHub Release

Critical consequences:

  • do not use release branches as the default path
  • do not derive major/minor/patch bumps
  • do not create canary changelog files
  • do not create canary GitHub Releases

Step 1 — Choose the Candidate

For canary validation:

  • inspect the latest successful canary run on master
  • record the canary version and source SHA

For stable promotion:

  1. choose the tested source ref
  2. confirm it is the exact SHA you want to promote
  3. resolve the target stable version with ./scripts/release.sh stable --date YYYY-MM-DD --print-version

Useful commands:

bash
git tag --list 'v*' --sort=-version:refname | head -1
git log --oneline --no-merges
npm view paperclipai@canary version

Step 2 — Draft the Stable Changelog

Stable changelog files live at:

  • releases/vYYYY.MDD.P.md

Invoke release-changelog and generate or update the stable notes only.

Rules:

  • review the draft with a human before publish
  • preserve manual edits if the file already exists
  • keep the filename stable-only
  • do not create a canary changelog file

Step 3 — Verify the Candidate SHA

Run the standard gate:

bash
pnpm -r typecheck
pnpm test:run
pnpm build

If the GitHub release workflow will run the publish, it can rerun this gate. Still report local status if you checked it.

For PRs that touch release logic, the repo also runs a canary release dry-run in CI. That is a release-specific guard, not a substitute for the standard gate.

Step 4 — Validate the Canary

The normal canary path is automatic from master via:

  • .github/workflows/release.yml

Confirm:

  1. verification passed
  2. npm canary publish succeeded
  3. git tag canary/vYYYY.MDD.P-canary.N exists

Useful checks:

bash
npm view paperclipai@canary version
git tag --list 'canary/v*' --sort=-version:refname | head -5

Step 5 — Smoke Test the Canary

Run:

bash
PAPERCLIPAI_VERSION=canary ./scripts/docker-onboard-smoke.sh

Useful isolated variant:

bash
HOST_PORT=3232 DATA_DIR=./data/release-smoke-canary PAPERCLIPAI_VERSION=canary ./scripts/docker-onboard-smoke.sh

Confirm:

  1. install succeeds
  2. onboarding completes without crashes
  3. the server boots
  4. the UI loads
  5. basic company creation and dashboard load work

If smoke testing fails:

  • stop the stable release
  • fix the issue on master
  • wait for the next automatic canary
  • rerun smoke testing
Show full SKILL.md (448 more words)Show less

Step 6 — Preview or Publish Stable

The normal stable path is manual workflow_dispatch on:

  • .github/workflows/release.yml

Inputs:

  • source_ref
  • stable_date
  • dry_run

Before live stable:

  1. resolve the target stable version with ./scripts/release.sh stable --date YYYY-MM-DD --print-version
  2. ensure releases/vYYYY.MDD.P.md exists on the source ref
  3. run the stable workflow in dry-run mode first when practical
  4. then run the real stable publish

The stable workflow:

  • re-verifies the exact source ref
  • computes the next stable patch slot for the chosen UTC date
  • publishes YYYY.MDD.P under dist-tag latest
  • creates git tag vYYYY.MDD.P
  • creates or updates the GitHub Release from releases/vYYYY.MDD.P.md

Local emergency/manual commands:

bash
./scripts/release.sh stable --dry-run
./scripts/release.sh stable
git push public-gh refs/tags/vYYYY.MDD.P
./scripts/create-github-release.sh YYYY.MDD.P

Step 7 — Finish the Other Surfaces

Create or verify follow-up work for:

  • website changelog publishing
  • launch post / social announcement
  • release summary in Paperclip issue context

These should reference the stable release, not the canary.

Step 8 — Emit Release-Content Cases

When Cases are enabled, every stable release-content run must materialize a deterministic case tree. This is part of the release dogfood path, not an optional artifact. If the API returns 403 Cases are disabled, stop and report that the operator must enable experimental.enableCases.

Use the current release issue's PAPERCLIP_COMPANY_ID, PAPERCLIP_API_URL, PAPERCLIP_API_KEY, and PAPERCLIP_RUN_ID. Include X-Paperclip-Run-Id on all writes so the case activity feed can attribute the run back to the issue.

Create or upsert the parent release case first:

http
POST /api/companies/:companyId/cases
{
  "caseType": "release",
  "key": "paperclip-release:vYYYY.MDD.P",
  "title": "Paperclip vYYYY.MDD.P release",
  "summary": "Stable release content package for Paperclip vYYYY.MDD.P.",
  "status": "in_progress",
  "fields": {
    "schema_version": 1,
    "version": "vYYYY.MDD.P",
    "release_date": "YYYY-MM-DD",
    "source_ref": "git-sha-or-ref",
    "stable": true,
    "channels": ["changelog", "blog_post", "tweet_storm"],
    "artifacts": {
      "changelog_path": "releases/vYYYY.MDD.P.md",
      "github_release_url": null
    },
    "verification": {
      "typecheck": "unknown",
      "tests": "unknown",
      "build": "unknown",
      "smoke": "unknown"
    },
    "notes": null
  }
}

The fields schema intentionally uses all generic JSON value types: strings, numbers, booleans, arrays, objects, and nulls. Send the complete fields object on each upsert because case fields replace as a whole object.

Write the parent body document immediately after the upsert:

http
PUT /api/cases/:releaseCaseId/documents/body
{
  "title": "Paperclip vYYYY.MDD.P release body",
  "format": "markdown",
  "body": "# Paperclip vYYYY.MDD.P\n\nRelease summary and links...",
  "changeSummary": "Initial release case body"
}

Then create or upsert these child cases with parentCaseId set to the release case id:

  • blog_post, key paperclip-release:vYYYY.MDD.P:blog-post, status in_progress, body document key body
  • tweet_storm, key paperclip-release:vYYYY.MDD.P:tweet-storm, status in_progress, body document key body

Use deterministic keys exactly so rerunning the release-content flow upserts the same three cases instead of duplicating them. After the child body documents are written, list the resulting case identifiers and links in the release issue and in the parent acceptance issue when one exists.

Failure Handling

If the canary is bad:

  • publish another canary, do not ship stable

If stable npm publish succeeds but tag push or GitHub release creation fails:

  • fix the git/GitHub issue immediately from the same release result
  • do not republish the same version

If latest is bad after stable publish:

bash
./scripts/rollback-latest.sh <last-good-version>

Then fix forward with a new stable release.

Output

When the skill completes, provide:

  • candidate SHA and tested canary version, if relevant
  • stable version, if promoted
  • verification status
  • npm status
  • smoke-test status
  • git tag / GitHub Release status
  • website / announcement follow-up status
  • release-content case tree links: parent release case plus blog_post and tweet_storm children
  • rollback recommendation if anything is still partially complete

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

Files

Just SKILL.md in .agents/skills/release of paperclipai/paperclip.

Open the folder on GitHubat commit 5717523

Compare with similar skills

Release 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.

Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skillpaperclipai/paperclip99k—~2.4kAutomated safety check: PassMIT
Reflexo ReleaseMyriad-Dreamin/typst.ts1.2k—~1.5kAutomated safety check: PassApache-2.0
Release Allpaperboytm/spool592—~1.1kAutomated safety check: PassCustom licence
ClickUp CLI Release Processkrodak/clickup-cli121—~906Automated safety check: WarnMIT
Cloudflare Pagessickn33/agentic-awesome-skills47k2 repos~2.4kAutomated safety check: PassMIT
Release Processbradygaster/squad3.3k—~1.5kAutomated safety check: PassMIT

Similar skills

  • Reflexo Release

    Myriad-Dreamin/typst.ts

    Guide Reflexo/typst.ts release preparation and operator handoffs.

    1.2k GitHub stars~1.5k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Release All

    paperboytm/spool

    Publish the complete Spool CLI release train: synchronized versions, npm packages, the GitHub release, and the matching production web deployment.

    592 GitHub stars~1.1k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed
  • ClickUp CLI Release Process

    krodak/clickup-cli

    Walks through releasing a new version of clickup-cli: pre-release checks, version bump, tagging, CI watch, release notes and the Homebrew update.

    121 GitHub stars~906 tokensUpdated 2 days ago
    DevOps & CloudAuto-check: warnings
  • Cloudflare Pages

    sickn33/agentic-awesome-skills

    Deploy static sites and full-stack apps on Cloudflare Pages with previews, functions, and custom domains.

    47k GitHub starsUsed in 2 repos~2.4k tokens
    DevOps & CloudAuto-check passed
  • Release Process

    bradygaster/squad

    Operate Squad's automated insider, preview, and stable release channels safely

    3.3k GitHub stars~1.5k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Release Process

    bradygaster/squad

    Prepare, publish, recover, and verify Squad insider, preview, and stable releases

    3.3k GitHub stars~2.4k tokensUpdated today
    DevOps & CloudAuto-check passed

More from paperclipai/paperclip

All 60 skills in this repo
  • Garden Inbox

    paperclipai/paperclip

    Scan a Paperclip user's Mine inbox, classify reversible archive candidates, request checkbox confirmation, and archive only accepted selections.

    99k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Paperclip

    paperclipai/paperclip

    Interact with the Paperclip control plane API for task coordination and governance.

    99k GitHub stars~9.6k tokensUpdated today
    Auto-check passed
  • Paperclip

    paperclipai/paperclip

    A skill your agent uses for Paperclip-managed tasks and heartbeats: reading task context, delivering task documents or files, updating completion or blockers, coordinating or delegating work, and…

    99k GitHub stars~17k tokensUpdated today
    Auto-check passed
  • Design Guide

    paperclipai/paperclip

    Paperclip UI design system guide for building consistent, reusable frontend components.

    99k GitHub starsUsed in 1 repo~3.1k tokens
    Auto-check passed
  • Paperclip Page

    paperclipai/paperclip

    Publish static HTML pages and asset folders to the Paperclip S3/CloudFront page host.

    99k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Paperclip Create Agent

    paperclipai/paperclip

    Create new agents in Paperclip with governance-aware hiring.

    99k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed

Works with

Questions about Release

What does Release do?

Coordinate a full Paperclip release across engineering verification, npm, GitHub, smoke testing, and announcement follow-up. Release is an agent skill from paperclipai/paperclip. Coordinate a full Paperclip release across engineering verification, npm, GitHub, smoke testing, and announcement follow-up.

When should I use Release?

Release fits situations like: leadership asks to ship a release; not merely to discuss versioning.

How do I install Release in Claude Code?

Run `npx skills add paperclipai/paperclip --skill release -a claude-code`. Or copy the skill folder (.agents/skills/release in paperclipai/paperclip) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.

How do I install Release in Codex?

Run `npx skills add paperclipai/paperclip --skill release -a codex`. Or copy the skill folder (.agents/skills/release in paperclipai/paperclip) into .agents/skills/release in your project. Codex loads it when a task matches its description.

Can I use Release 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 paperclipai/paperclip --skill release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, pnpm and npm) and credentials named PAPERCLIP_API_KEY. Our summary lists: Docker; A credential in PAPERCLIP_API_KEY.

Does Release access the network?

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

Is Release 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. Review the folder before installing.

What licence does Release use?

Release 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 Release use?

About 2.4k tokens (SKILL.md is roughly 9.5k 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 Release?

Skills that share tags, products or a category with Release: Reflexo Release (Myriad-Dreamin/typst.ts, 1.2k stars), Release All (paperboytm/spool, 592 stars), ClickUp CLI Release Process (krodak/clickup-cli, 121 stars) and Cloudflare Pages (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

paperclipai (a GitHub organization) maintains it in paperclipai/paperclip, which has 98,537 GitHub stars. The repository holds 60 skills in this directory. The repository was last updated on October 8, 2026.

Source: paperclipai/paperclip on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.