Best for
- Use when leadership asks to ship a release, not merely to discuss versioning.
paperclipai/paperclip/.agents/skills/release/SKILL.md
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.
Decision brief
Run the full Paperclip maintainer release workflow, not just an npm publish.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/paperclipai/paperclip --skill ".agents/skills/release"Inspect the Agent Skill "release" from https://github.com/paperclipai/paperclip/blob/77979950381a99271e4690c581a7440b73807b11/.agents/skills/release/SKILL.md at commit 77979950381a99271e4690c581a7440b73807b11. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Paperclip now uses a commit-driven release model:
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
Stable changelog files live at:
If the GitHub release workflow will run the publish, it can rerun this gate. Still report local status if you checked it.
The normal canary path is automatic from master via:
Permission review
The documentation asks the agent to run terminal commands or scripts.
git tag --list 'v*' --sort=-version:refname | head -1The documentation asks the agent to run terminal commands or scripts.
git log --oneline --no-mergesThe documentation asks the agent to create, modify, or delete local files.
do not create a canary changelog fileEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 83/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 74,938 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Run the full Paperclip maintainer release workflow, not just an npm publish.
This skill coordinates:
release-changelogmasterscripts/docker-onboard-smoke.shrelease case with child
blog_post and tweet_storm cases, all linked to the release issue/runUse this skill when leadership asks for:
Before proceeding, verify all of the following:
.agents/skills/release-changelog/SKILL.md exists and is usable.pnpm-lock.yaml refresh is already merged on master.If any precondition fails, stop and report the blocker.
Collect these inputs up front:
source_ref for stablePaperclip now uses a commit-driven release model:
master publishes a canary automaticallyYYYY.MDD.P-canary.NYYYY.MDD.PMDD, where M is the UTC month and DD is the zero-padded UTC dayreleases/vYYYY.MDD.P.md, git tag vYYYY.MDD.P, and a GitHub ReleaseCritical consequences:
For canary validation:
masterFor stable promotion:
./scripts/release.sh stable --date YYYY-MM-DD --print-versionUseful commands:
git tag --list 'v*' --sort=-version:refname | head -1
git log --oneline --no-merges
npm view paperclipai@canary version
Stable changelog files live at:
releases/vYYYY.MDD.P.mdInvoke release-changelog and generate or update the stable notes only.
Rules:
Run the standard gate:
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.
The normal canary path is automatic from master via:
.github/workflows/release.ymlConfirm:
canary/vYYYY.MDD.P-canary.N existsUseful checks:
npm view paperclipai@canary version
git tag --list 'canary/v*' --sort=-version:refname | head -5
Run:
PAPERCLIPAI_VERSION=canary ./scripts/docker-onboard-smoke.sh
Useful isolated variant:
HOST_PORT=3232 DATA_DIR=./data/release-smoke-canary PAPERCLIPAI_VERSION=canary ./scripts/docker-onboard-smoke.sh
Confirm:
If smoke testing fails:
masterThe normal stable path is manual workflow_dispatch on:
.github/workflows/release.ymlInputs:
source_refstable_datedry_runBefore live stable:
./scripts/release.sh stable --date YYYY-MM-DD --print-versionreleases/vYYYY.MDD.P.md exists on the source refThe stable workflow:
YYYY.MDD.P under dist-tag latestvYYYY.MDD.Preleases/vYYYY.MDD.P.mdLocal emergency/manual commands:
./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
Create or verify follow-up work for:
These should reference the stable release, not the canary.
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:
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:
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 bodytweet_storm, key paperclip-release:vYYYY.MDD.P:tweet-storm, status
in_progress, body document key bodyUse 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.
If the canary is bad:
If stable npm publish succeeds but tag push or GitHub release creation fails:
If latest is bad after stable publish:
./scripts/rollback-latest.sh <last-good-version>
Then fix forward with a new stable release.
When the skill completes, provide:
release case plus blog_post and
tweet_storm childrenAlternatives
K-Dense-AI/scientific-agent-skills
Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.
github/awesome-copilot
Build, scaffold, and deploy Power Automate cloud flows using the FlowStudio MCP server. Your agent constructs flow definitions, wires connections, deploys, and tests — all via MCP without opening the portal. Load this skill when asked to: create a flow, build a new flow, deploy a flow definition, scaffold a Power Automate workflow, construct a flow JSON, update an existing flow's actions, patch a flow definition, add actions to a flow, wire up connections, or generate a workflow definition from
github/awesome-copilot
Apex code quality guardrails for Salesforce development. Enforces bulk-safety rules (no SOQL/DML in loops), sharing model requirements, CRUD/FLS security, SOQL injection prevention, PNB test coverage (Positive / Negative / Bulk), and modern Apex idioms. Use this skill when reviewing or generating Apex classes, trigger handlers, batch jobs, or test classes to catch governor limit risks, security gaps, and quality issues before deployment.
griffinwork40/agent-afk
Release pipeline for already-done local work. Dispatches /ground-state pre-flight, runs the project test suite, drafts a commit message, pushes, and opens a PR with a structured verification summary. Use when local changes are ready to hand off to review — e.g. 'ship this', 'push and open a PR', 'release this work'. Add --verify to trigger an adversarial verifier wave on the diff before a human reads the PR.