Source profileQuality 85/100Review permissions

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.

Best for

    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

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    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.

    Source-detected install commandSource
    npx skills add https://github.com/eltmon/overdeck --skill "sync-sources/skills/pan-release"
    Safe inspection promptEditorial

    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

    1. 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.
    2. 02

      Release channels

      Version format: X.Y.Z

      Version format: X.Y.ZTag format: vX.Y.Znpm dist-tag: latest
    3. 03

      Stable

      Version format: X.Y.Z

      Version format: X.Y.ZTag format: vX.Y.Znpm dist-tag: latest
    4. 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
    5. 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

    medium · line 41

    The documentation asks the agent to run terminal commands or scripts.

    git push origin main

    Runs scripts

    medium · line 42

    The documentation asks the agent to run terminal commands or scripts.

    git push origin v0.7.1

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score85/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars14SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated 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

    1. Run:
      pan release check
      
    2. Create a stable or canary release:
      pan release stable --version 0.7.1
      pan release canary --version 0.8.0-canary.1
      
    3. 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: write plus 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-url or a NODE_AUTH_TOKEN to the npm job's setup-node. registry-url writes a dummy _authToken into .npmrc that shadows OIDC and makes npm publish fail 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 runtime dependencies — bundled workspace packages (e.g. @overdeck/contracts) belong in devDependencies, or consumers' npm install fails with EUNSUPPORTEDPROTOCOL.
    • 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 latest or canary based on the tag format.
    • If asked for docs, point to docs/RELEASING.md.

    Alternatives

    Compare before choosing

    Computed 9647,525

    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

    Computed 9618,447

    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"

    Computed 9614,225

    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.

    Computed 9610,895

    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