agentleFS
ForgeyClapForgeyClap/claude-forge/.claude/skills/forge-electron/SKILL.md

forge-electron

Skill2 starsChanged 34 days agoMITView on GitHub

Forge: Electron desktop apps: electron, desktop app, .exe, installer, IPC, contextBridge, contextIsolation, nodeIntegration, code signing, auto-update.

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Validated IPC: Every IPC channel validates its payload and (where relevant) sender.

    line 14
  2. Distinctive:

    No secrets in the bundle; secure OS storage used for sensitive data.

    line 35
  3. Very specific:

    No test/demo/mock data in the shipped artifact.

    line 38

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Forge playbook — Electron / desktop app

The electron-pro specialist (.claude/agents/electron-pro.md) leads the Electron-specific work under Build Boss or Integration Boss. Renderer UI defers to forge-website (real content, responsive, a11y); anything that talks to a gateway/API defers to forge-integration / forge-payments. Forge context: the an accounting desktop app (accounting) desktop app — offline-first, safe IPC, an installer that opens on a clean machine. Modern Electron ships these secure defaults; the rule is to never regress them, and to prove they hold.

Hard rules (verify, don't assume — cite the exact config line)

  • contextIsolation: true on every BrowserWindow — no exceptions. Required even with nodeIntegration off; it is what separates preload/renderer JS contexts from Electron internals.
  • nodeIntegration: false in all renderers. Node reaches the renderer only through a preload contextBridge.exposeInMainWorld with an explicit, minimal API — never a raw ipcRenderer passthrough on window. (Enabling nodeIntegration:true also disables the sandbox for that renderer.)
  • sandbox: true where feasible; webSecurity left enabled; remote module disabled; allowRunningInsecureContent: false.
  • Validated IPC. Every IPC channel validates its payload and (where relevant) sender; the exposed API surface is a small allow-list, not the whole ipcRenderer.
  • Strict CSP — no 'unsafe-eval', no wildcard remote script sources. (CSP limits, not cures, XSS — defense in depth on top of context isolation.)
  • No secrets baked into the bundle. Sensitive data uses OS-appropriate secure storage (Keychain/DPAPI/libsecret — in Electron the built-in safeStorage API, no extra package), not plain files; secrets in env / secure store, never in the packaged asar.
  • A real, signed installer that actually opens. The build produces the intended artifact (e.g. Windows NSIS), the installer installs and launches on a clean machine (verify — don't assume), and auto-update (if in scope) verifies signatures + supports rollback. Never ship an unsigned silent updater.
  • No test/demo/mock/placeholder data in the shipped build (Forge desktop rule).

Team (conditional)

Lead: build-boss (app) or integration-boss (desktop wrapper over a service). Desktop work: electron-pro specialist. Support: typescript-reviewer (main/preload/renderer), security-reviewer (IPC surface + CSP — desktop is a reasonable Codex/security trigger), database-reviewer (local store, e.g. SQLite for an offline app). Renderer UI: forge-website team.

Skills / commands / MCP

Electron + electron-builder docs via Context7 for exact API/config; forge-website for the renderer UI; forge-integration / forge-payments if the app calls external services or handles money; systematic-debugging for build/native-dep failures. Reuse electron-builder's signing config — don't hand-roll packaging.

Fan-out & flow

L2 single-window app; L3 multi-window + native integration + installer + auto-update. Parallel: main-process services ∥ preload API surface ∥ renderer UI (independent once the IPC contract is fixed — the preload API is the contract). Serial: process architecture (main/preload/renderer) → hardened BrowserWindow options → contextBridge IPC API → renderer UI → build config → signed installer → clean-machine launch test.

Domain gates

  • contextIsolation:true, nodeIntegration:false, sandbox:true (where feasible), webSecurity:true verified on every window (cite the file:line).
  • Preload exposes a minimal, validated API; no raw ipcRenderer on window; IPC payloads validated.
  • Strict CSP set; no unsafe-eval/wildcard script sources.
  • No secrets in the bundle; secure OS storage used for sensitive data.
  • Build produces the intended installer and it actually installs + launches on a clean machine (evidence, not assumption).
  • Cold-start + idle-memory numbers reported are observed, not guessed; listeners/watchers/intervals cleaned up on window close.
  • No test/demo/mock data in the shipped artifact.

Ship-readiness (unique)

Renderer hardening flags verified with cited config lines; IPC surface minimal + validated; CSP strict; secrets in secure storage not the bundle; installer built AND launched on a clean machine (real output attached); auto-update (if any) signature-verified + rollback-capable; offline behavior works where promised; no mock data shipped; observed startup/memory numbers reported honestly. Advisory checklist; optionally run security-reviewer / codex-reviewer on the IPC + CSP surface — not a blocker; label anything not run (no signing cert / no clean-machine test) as not-run.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.