release — core-audio release, wispr-duck, community, core-audio, ide skills, ducking, macos-app, menu-bar, microphone, open-source, Claude Code

v1.0.0
GitHub

About this Skill

Perfect for Deployment Agents needing automated GitHub release management with signed, notarized, and stapled .app files. Shhh... Ducking volume. Auto-duck background audio when your mic is active. A lightweight macOS menu bar utility.

# Core Topics

kalepail kalepail
[1]
[0]
Updated: 2/3/2026

Agent Capability Analysis

The release skill by kalepail is an open-source community AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance. Optimized for core-audio, ducking, macos-app.

Ideal Agent Persona

Perfect for Deployment Agents needing automated GitHub release management with signed, notarized, and stapled .app files.

Core Value

Empowers agents to publish macOS menu bar utilities as GitHub releases, leveraging git tags and handling re-releases with cleanup, all while ensuring a clean working tree and confirming target version existence.

Capabilities Granted for release

Publishing WisprDuck releases
Automating .app packaging and notarization
Managing GitHub releases with versioning

! Prerequisites & Limits

  • Requires macOS environment
  • GitHub access needed
  • Clean working tree required
Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

release

Install release, an AI agent skill for AI agent workflows and automation. Works with Claude Code, Cursor, and Windsurf with one-command setup.

SKILL.md
Readonly

Release WisprDuck

Build a signed, notarized, and stapled .app, then publish it as a GitHub release.

Target version: $ARGUMENTS

Pre-flight

  1. Confirm the working tree is clean (git status). Abort if there are uncommitted changes.
  2. Check whether $ARGUMENTS already has a git tag or GitHub release.
    • If it does not exist, proceed normally.
    • If it already exists and the user explicitly asked to overwrite/re-release, run the re-release cleanup before continuing:
      bash
      1gh release delete v$ARGUMENTS --repo kalepail/wispr-duck --yes --cleanup-tag 2git tag -d v$ARGUMENTS 2>/dev/null || true
    • If it already exists and the user did not ask to overwrite, abort and ask for confirmation.
  3. If not on main, merge the current branch into main and switch to it:
    git checkout main
    git merge <branch> --no-edit
    

Step 1 — Bump version numbers

Update all of the following to $ARGUMENTS:

FileFieldFormat
WisprDuck.xcodeproj/project.pbxprojMARKETING_VERSION (both Debug and Release)Short: 1.4 (no patch)
site/index.html"softwareVersion" in the Schema.org JSON-LDSemver: 1.4.0
site/package.json"version"Semver: 1.4.0

MARKETING_VERSION uses Xcode's short version format (e.g., 1.4 not 1.4.0). The other files use full semver.

Do not touch CURRENT_PROJECT_VERSION (build number) — leave it as-is.

After updating, verify with grep that no stale version strings remain in those files.

Step 2 — Commit and push

git add WisprDuck.xcodeproj/project.pbxproj site/index.html site/package.json
git commit -m "Bump version to $ARGUMENTS"
git push origin main

Step 3 — Archive

Run as a single line (multiline backslash escaping can break in some shell environments):

bash
1xcodebuild archive -project WisprDuck.xcodeproj -scheme WisprDuck -configuration Release -archivePath /tmp/WisprDuck.xcarchive "CODE_SIGN_IDENTITY=Developer ID Application: Tiny Anvil, LLC (T4GBHCYB7P)" DEVELOPMENT_TEAM=T4GBHCYB7P CODE_SIGN_STYLE=Manual

Note: CODE_SIGN_IDENTITY must be quoted because the value contains spaces and a comma.

Confirm output ends with ** ARCHIVE SUCCEEDED **.

Step 4 — Export

Write this ExportOptions.plist to /tmp:

xml
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3<plist version="1.0"> 4<dict> 5 <key>method</key> 6 <string>developer-id</string> 7 <key>teamID</key> 8 <string>T4GBHCYB7P</string> 9 <key>signingStyle</key> 10 <string>manual</string> 11 <key>signingCertificate</key> 12 <string>Developer ID Application</string> 13</dict> 14</plist>

Then export:

bash
1xcodebuild -exportArchive -archivePath /tmp/WisprDuck.xcarchive -exportPath /tmp/WisprDuckExport -exportOptionsPlist /tmp/ExportOptions.plist

Confirm ** EXPORT SUCCEEDED **.

Step 5 — Verify signing

bash
1codesign -dv --verbose=2 /tmp/WisprDuckExport/WisprDuck.app

Confirm:

  • Authority=Developer ID Application: Tiny Anvil, LLC (T4GBHCYB7P)
  • flags=0x10000(runtime) (hardened runtime)

If signing is wrong, stop and diagnose.

Step 6 — Notarize

bash
1ditto -c -k --keepParent /tmp/WisprDuckExport/WisprDuck.app /tmp/WisprDuck-$ARGUMENTS.zip 2 3xcrun notarytool submit /tmp/WisprDuck-$ARGUMENTS.zip --keychain-profile "WisprDuck-Notarize" --wait

If the keychain profile is missing, ask the user to run:

xcrun notarytool store-credentials "WisprDuck-Notarize" --key ~/Desktop/wispr-duck-certs/AuthKey_4MM3YQXN45.p8 --key-id 4MM3YQXN45 --issuer 69a6de83-bf58-47e3-e053-5b8c7c11a4d1

Then retry. Confirm status is Accepted.

Step 7 — Staple

bash
1xcrun stapler staple /tmp/WisprDuckExport/WisprDuck.app 2xcrun stapler validate /tmp/WisprDuckExport/WisprDuck.app

Confirm The staple and validate action worked!.

Re-create the zip with the stapled app:

bash
1rm /tmp/WisprDuck-$ARGUMENTS.zip 2ditto -c -k --keepParent /tmp/WisprDuckExport/WisprDuck.app /tmp/WisprDuck-$ARGUMENTS.zip

Step 8 — Draft release notes and create GitHub release

Do not use --generate-notes — it only produces a bare changelog link with no useful content.

Instead, draft proper release notes:

  1. Run git log <previous-tag>..HEAD --oneline to review all commits since the last release.
  2. Read the previous release's notes (gh release view <previous-tag> --repo kalepail/wispr-duck) to match the established tone and format.
  3. Write a release body. Scale the detail to the release size:

Patch releases (x.y.Z) — just categorized bullets, no intro paragraph:

markdown
1### <Category> 2 3- **Bold summary** — detail of each meaningful change. 4 5**Full Changelog**: https://github.com/kalepail/wispr-duck/compare/<previous-tag>...v$ARGUMENTS

Minor/major releases (x.Y.0 / X.0.0) — intro paragraph + categorized bullets:

markdown
1## What's New in v$ARGUMENTS 2 3<1-2 sentence summary of the theme of this release.> 4 5### <Category> (e.g. Bug Fixes, UI, Audio, Internal) 6 7- **Bold summary** — detail of each meaningful change. 8 9**Full Changelog**: https://github.com/kalepail/wispr-duck/compare/<previous-tag>...v$ARGUMENTS

Do not repeat boilerplate every release. Installation instructions, system requirements, and signing info belong in the README and on wisprduck.com — not in release notes. Only mention these if something about them changes (e.g., certificate rotation, new OS requirement, changed install steps).

  1. Create the release, passing the body via a HEREDOC:
bash
1gh release create v$ARGUMENTS /tmp/WisprDuck-$ARGUMENTS.zip --repo kalepail/wispr-duck --title "WisprDuck v$ARGUMENTS" --notes "$(cat <<'EOF' 2<drafted release notes here> 3EOF 4)"

Print the release URL when done.

Step 9 — Clean up

bash
1rm -rf /tmp/WisprDuck.xcarchive /tmp/WisprDuckExport /tmp/ExportOptions.plist /tmp/WisprDuck-$ARGUMENTS.zip

Troubleshooting

ProblemFix
No Keychain password item found for profile: notarytoolRe-run the store-credentials command from Step 6
Developer ID Application identity not foundOpen Keychain Access and verify the cert is in the login keychain. Import from ~/Desktop/wispr-duck-certs/ if needed.
Notarization status InvalidRun xcrun notarytool log <submission-id> --keychain-profile "WisprDuck-Notarize" and fix the reported issues
ARCHIVE FAILED with signing errorsEnsure CODE_SIGN_STYLE=Manual and the full identity string matches security find-identity -v -p codesigning output
Unknown build action '' from xcodebuildMultiline backslash escaping broke — use single-line commands instead
No App Category is set warning during archiveNon-blocking. Can be fixed by adding LSApplicationCategoryType to Info.plist if desired.

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is release?

Perfect for Deployment Agents needing automated GitHub release management with signed, notarized, and stapled .app files. Shhh... Ducking volume. Auto-duck background audio when your mic is active. A lightweight macOS menu bar utility.

How do I install release?

Run the command: npx killer-skills add kalepail/wispr-duck/release. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for release?

Key use cases include: Publishing WisprDuck releases, Automating .app packaging and notarization, Managing GitHub releases with versioning.

Which IDEs are compatible with release?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for release?

Requires macOS environment. GitHub access needed. Clean working tree required.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add kalepail/wispr-duck/release. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use release immediately in the current project.

Related Skills

Looking for an alternative to release or another community skill for your workflow? Explore these related open-source skills.

View All

widget-generator

Logo of f
f

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

149.6k
0
AI

flags

Logo of vercel
vercel

flags is a Next.js feature management skill that enables developers to efficiently add or modify framework feature flags, streamlining React application development.

138.4k
0
Browser

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI