eltmon/overdeck/sync-sources/skills/pan-release/SKILL.md
pan-release
Overdeck-specific stable vs canary release workflow from main
- Source repository stars
- 14
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-04
- Source checked
- 2026-08-04
Decision brief
What it does—and where it fits
Use this skill when the user asks how to release Overdeck, whether they should use a develop branch, or how stable vs canary publishing works.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| 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
Inspect first. Install second.
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/eltmon/overdeck --skill "sync-sources/skills/pan-release"Inspect the Agent Skill "pan-release" from https://github.com/eltmon/overdeck/blob/b6d7106f7044de1a243a38b3f2d43b5bbe9b0aaf/sync-sources/skills/pan-release/SKILL.md at commit b6d7106f7044de1a243a38b3f2d43b5bbe9b0aaf. 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
What the source asks the agent to do
- 01
Core policy
Overdeck develops directly on main.
Overdeck develops directly on main.main is the active development branch, not the stable channel by itself. A release only happens when someone intentionally cuts and pushes a tag.Do not recommend GitFlow or a long-lived develop branch unless the user explicitly asks for a different workflow. - 02
Release channels
Version format: X.Y.Z
Version format: X.Y.ZTag format: vX.Y.Znpm dist-tag: latest - 03
Stable
Version format: X.Y.Z
Version format: X.Y.ZTag format: vX.Y.Znpm dist-tag: latest - 04
Canary
Version format: X.Y.Z-canary.N
Version format: X.Y.Z-canary.NTag format: vX.Y.Z-canary.Nnpm dist-tag: canary - 05
Preferred operator flow
2. Create a stable or canary release:
Run:Create a stable or canary release:Push intentionally:
Permission review
Static risk signals and limitations
Runs scripts
The documentation asks the agent to run terminal commands or scripts.
git push origin mainRuns scripts
The documentation asks the agent to run terminal commands or scripts.
git push origin v0.7.1Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 85/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 14 | 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
Provenance and original SKILL.md
- Repository
- eltmon/overdeck
- Skill path
- sync-sources/skills/pan-release/SKILL.md
- Commit
- b6d7106f7044de1a243a38b3f2d43b5bbe9b0aaf
- License
- MIT
- Collected
- 2026-08-04
- Default branch
- main
View the original SKILL.md
Overdeck Release Workflow
Use this skill when the user asks how to release Overdeck, whether they should use a develop branch, or how stable vs canary publishing works.
Core policy
Overdeck develops directly on main.
main is the active development branch, not the stable channel by itself. A release only happens when someone intentionally cuts and pushes a tag.
Do not recommend GitFlow or a long-lived develop branch unless the user explicitly asks for a different workflow.
Release channels
Stable
- Version format:
X.Y.Z - Tag format:
vX.Y.Z - npm dist-tag:
latest - GitHub Release: normal release
Canary
- Version format:
X.Y.Z-canary.N - Tag format:
vX.Y.Z-canary.N - npm dist-tag:
canary - GitHub Release: prerelease
Preferred operator flow
- Run:
pan release check - Create a stable or canary release:
pan release stable --version 0.7.1 pan release canary --version 0.8.0-canary.1 - Push intentionally:
git push origin main git push origin v0.7.1
What the CLI does
pan release stable and pan release canary:
- validate the version format
- require release-from-
main - require a clean working tree
- run preflight verification
- update
package.json - create a release commit
- create an annotated tag
- print push commands instead of pushing automatically
Publishing (how a pushed tag actually ships)
Pushing a vX.Y.Z tag triggers .github/workflows/release.yml, which publishes
@overdeck/core, @overdeck/contracts, and @overdeck/desktop to npm and cuts
the GitHub Release with desktop binaries — automatically. There is no manual
npm publish, no token, and no OTP:
- CI authenticates via npm Trusted Publishing (OIDC) — the workflow's
id-token: writeplus a Trusted Publisher configured on each package. The publish steps are retry-safe (skip a package if that version already exists). - Do NOT add
registry-urlor aNODE_AUTH_TOKENto the npm job'ssetup-node.registry-urlwrites a dummy_authTokeninto.npmrcthat shadows OIDC and makesnpm publishfail with a 404. (This broke the v0.30.0/v0.30.1 publishes; removing it was the fix.)
Prerequisites that must stay true or publishing breaks:
- Each
@overdeck/*package has a Trusted Publisher on npmjs.com (GitHub Actions ·eltmon/overdeck·release.yml). - No
workspace:*in runtimedependencies— bundled workspace packages (e.g.@overdeck/contracts) belong indevDependencies, or consumers'npm installfails withEUNSUPPORTEDPROTOCOL. publishConfig.access: "public"on every publishable package.
First-time setup for a brand-new package (npm org creation, the one-time
bootstrap publish, configuring the Trusted Publisher) and full publish
troubleshooting live in docs/RELEASING.md.
Releasing as an agent (guards you will hit)
An agent cutting a release trips guards a human operator never sees. All three
have sanctioned levers — never reach for --no-verify, which is a one-way
door.
1. The commit path guard. scripts/guard-flywheel-orchestrator-commit.sh
(via .husky/pre-commit) refuses a flywheel-orchestrator commit that touches
anything outside docs/FLYWHEEL-STATE.md and the state paths — and a release
commit necessarily touches three package.json files. The guard's own
operator-directed escape hatch is:
OVERDECK_OPERATOR_COMMIT=1 pan release stable --version X.Y.Z
It mirrors OVERDECK_OPERATOR_PUSH=1 for the push guard. Use it only when the
operator has actually directed the release.
2. The push guard. scripts/guard-agent-main-push.sh exempts conv-
prefixed agent ids but not pipeline roles, so pushing main and the tag needs:
OVERDECK_OPERATOR_PUSH=1 git push origin main
OVERDECK_OPERATOR_PUSH=1 git push origin vX.Y.Z
3. Preflight tests failing for the wrong reason (PAN-3081 / PAN-3189). The
per-agent ~/.overdeck/agents/<id>/git-guard shim used to intercept
git reset --hard and git rebase inside test fixtures that legitimately run
them against their own temp repos, so preflight reported failures that did not
exist — 10 failures with the shim on PATH, 0 without.
PAN-3189 fixed both halves at the source: the guard now fires only for git
commands targeting the agent's own worktree, and each launcher strips any
inherited guard directory from PATH before installing its own. A session
spawned since that landed needs no workaround.
A session started before it — or any shell that inherited an old shim — can still see the artifact. Check first, and only reach for the workaround if the shim is actually there:
echo $PATH | tr ':' '\n' | grep git-guard # expect: your own agent's dir, or nothing
CLEAN=$(echo $PATH | tr ':' '\n' | grep -v git-guard | paste -sd:)
PATH="$CLEAN" npm test # must be genuinely green
pan release stable --version X.Y.Z --skip-tests
--skip-tests is legitimate only when you have run the suite clean and seen
it pass. It skips a corrupted measurement, not the verification itself.
Ordering note. If git push origin main is rejected because the remote moved
ahead, merge rather than rebase (git rebase is blocked by the agent git guard)
and push again. Push the tag even if main is momentarily behind — the tag is
its own ref and triggers the publish workflow independently.
Notes
- Stable is for “ship this to normal users now.”
- Canary is for “publish a real prerelease without moving latest yet.”
- The GitHub workflow decides whether to publish
latestorcanarybased on the tag format. - If asked for docs, point to
docs/RELEASING.md.
Alternatives
Compare before choosing
prisma/prisma
prisma-8-migration-review
Review what Prisma Next migrations will run on merge or deploy, render the migration graph, resolve concurrent / diamond-convergence conflicts, and configure environment refs for CI. Use for "what migrations are going to run", "what runs on deploy", merge conflict, diamond convergence, concurrent migrations, migration status, ref management, staging, production, MIGRATION.DIVERGED, MIGRATION.NO_MARKER, MIGRATION.MARKER_NOT_IN_HISTORY, prisma migrate status, prisma migrate diff, prisma migrate re
teng-lin/notebooklm-py
notebooklm
Complete API for Google NotebookLM - full programmatic access including features not in the web UI. Create notebooks, add sources, generate all artifact types, download in multiple formats. Activates on explicit /notebooklm or intent like "create a podcast about X"
wanshuiyin/Auto-claude-code-research-in-sleep
grant-proposal
Use it for deployment and design tasks; the detail page covers purpose, installation, and practical steps.
huggingface/skills
huggingface-lora-space-builder
Build and publish a Gradio demo on Hugging Face Spaces for a user-provided LoRA. Use when someone asks to create, generate, ship, or publish a Space, demo, Gradio app, or playground for a LoRA — including LoRAs for Qwen-Image, Qwen-Image-Edit, LTX-Video, Wan, FLUX, SDXL, or other diffusion base models. Also triggers when someone describes a LoRA they trained or hosts on the Hub and wants to share it. Covers picking the right base pipeline and `diffusers` inference recipe, designing a UI tailored