skills/community/electron-release/SKILL.md
Expert guide for Electron production builds, code signing, notarization, auto-updates, and release workflows. Use when building, packaging, or releasing Electron applications, configuring electron-builder, setting up CI/CD pipelines for desktop app distribution, or implementing auto-update mechanisms.
npx skillsauth add pedronauck/skills electron-releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides enterprise-grade best practices for building, signing, releasing, and distributing Electron applications with emphasis on security, reliability, performance, and user trust.
pnpm audit, pnpm run typecheck, pnpm run lint, and pnpm run test before builds.Before every production build:
pnpm auditpnpm run typecheck && pnpm run lintpnpm run test && pnpm run test:e2epnpm run build:analyzerconsole.log and debugger statements| Component | Target | |------------------|----------| | Main process | < 2 MB | | Renderer | < 5 MB | | Total package | < 150 MB | | Install size | < 250 MB |
Microsoft requires Extended Validation (EV) certificates since June 2023.
Recommended: Use cloud-based signing (DigiCert KeyLocker or Azure Trusted Signing).
Never use self-signed certificates for distribution.
Two-step process:
Key requirements:
hardenedRuntime: true in electron-builder configSign release artifacts with GPG:
gpg --detach-sign -u YOUR_KEY_ID dist/packages/*.AppImage
gpg --detach-sign -u YOUR_KEY_ID dist/packages/*.deb
Configure publish provider in electron-builder.yml:
publish:
provider: github
owner: your-username
repo: your-repo
releaseType: release
Reduce risk by gradually rolling out updates:
If issues detected:
Use dev-app-update.yml for local testing. Test the full update cycle before releasing.
Before creating release tag:
package.jsonCHANGELOG.mdgit tag -a v1.2.3 -m "Release v1.2.3"
git push origin v1.2.3
GitHub Actions automatically handles:
S3-compatible storage with R2 endpoint. Configure environment variables:
Requires serving latest.yml, latest-mac.yml, and all artifacts via HTTPS.
Before release, verify:
pnpm audit)| Issue | Solution |
|-------|----------|
| Auto-update not triggering | Verify latest.yml exists, check GitHub releases config |
| Code signing fails | Renew certificate, verify fingerprint |
| Windows SmartScreen warning | Distribute widely, file with Microsoft for reputation |
| macOS "cannot verify developer" | Re-notarize, check team ID and certificate |
| Large app download | Analyze with ANALYZE=true pnpm run build, enable compression |
| Blank screen in production | Use relative paths (base: './'), verify build output |
Before finishing a task involving Electron releases:
For detailed configuration examples, code samples, and GitHub Actions workflows, refer to references/patterns.md.
development
Deep review of branch diffs, working trees, or GitHub PRs at any size. Use when the user asks for CodeRabbit-grade review, an incremental re-review after new pushes, publication of findings to a PR, a cross-LLM peer-review verdict round, or conformance review against spec artifacts. Don't use for applying fixes, reviewing specs or PRDs as documents, or quick single-file feedback.
tools
Orchestrate Claude and Codex worker TUIs from a controller agent through herdr panes and the herdr socket CLI. Use when delegating bounded tasks to herdr worker panes, running user-activated plan-first delegations (Claude Code plan mode, Codex Plan mode), waiting on native agent status (idle, working, blocked, done), or verifying worker reports. Workers launch as interactive TUIs via herdr agent start — never through headless runners (compozy exec, claude -p, codex exec). Not for cmux workspaces (see cmux-orchestration) and not for end-user herdr control.
tools
TanStack Query, Router, and Form patterns for React. Use when writing useQuery/queryOptions, mutations, caching, file-based routes, search params, loaders, or TanStack Form validation. Don't use for TanStack Start, TanStack DB/collections, Zustand client state, or non-TanStack routing.
development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.