桌面应用重启 · Desktop App Relaunch
SkillDev toolsImplement and verify full relaunch for Electron desktop apps, distinguishing renderer reloads, user-initiated restarts, dev-mode restarts, and update-install handoffs. Use when the user mentions relaunching the app, menu restart, Cmd+R, app.relaunch, or restarting Electron.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the 桌面应用重启 · Desktop App Relaunch skill
What this skill tells your AI
The instructions your AI receives, as published by lovstudio/skills in skills/electron-app-relaunch/SKILL.md and read by ahel’s review.
为用户提供真正重启桌面应用的入口,并在开发态、生产态和更新安装时保持正确的进程生命周期。
Triggers
Activate when
- 用户说“在菜单里增加重启 App”“实现重启 Yoda”或“完整重启 Electron”。
- 用户把
Cmd+R、reload、relaunch、退出再打开混在一起,需要修复实际行为。 - User asks to “restart the app from a menu”, “use app.relaunch”, or “make Electron dev restart reliable”.
Do not activate when
- 用户只需要刷新页面或恢复某个 renderer 错误边界;使用 renderer reload。
- 用户要重启某一条 Agent/终端会话;使用会话生命周期或 PTY 工作流。
Workflow (MANDATORY)
You MUST follow these steps in order.
Step 0: Name the intended action
- Map every proposed UI entry to exactly one intent: renderer reload, full app relaunch, or update installation handoff.
- Do not bind a standard reload shortcut to full relaunch by accident. In Electron, the built-in View reload role commonly owns
Cmd+R/Ctrl+R. - Read references/relaunch-contract.md before implementation.
Step 1: Centralize the relaunch path
- Put full-app restart in one main-process function, then invoke it from the native menu or typed IPC.
- In packaged production, call
app.relaunch()followed byapp.quit(). - In development, relaunch the actual dev entrypoint with the Node executable and arguments that started the app; do not assume a packaged executable exists.
- Keep renderer reload separate and label it accordingly in the UI.
Step 2: Preserve process ownership
- Let main-process shutdown hooks complete according to the product's session policy.
- Do not use the ordinary relaunch function to install an update. The updater must take control only after cleanup and staging have completed.
- When child processes, PTYs, local servers, or single-instance locks exist, define whether each survives, shuts down, or is reattached after restart.
Step 3: Verify the real instance
- Add focused tests for the dev command construction and production relaunch path.
- Run the app, record its PID, executable path, working directory, and start time.
- Trigger the native menu item once, then confirm a replacement instance is running with a newer start time and the intended executable.
- Do not accept bundle text, menu existence, renderer reload, or a successful build as proof of full restart.
Dependencies
- Electron main-process access to
appand the target project's development command.
通用反馈闭环
用户在 Skill 驱动任务中提出修改意见时,继续当前产物前必须执行:
- 先判断意见是
task-specific(仅本次)还是reusable(可跨任务复用)。 task-specific只修改当前任务,不改 Skill。reusable先确定作用域:领域规则先更新对应 canonical Skill;适用于所有 Skill 的规则先更新共享规范。- 完成规则更新、版本、lint 与分发核验后,再把修改应用到当前任务。
reusable修改会使此前的“确认”“继续”“发吧”失效;完成当前产物修改和回读后必须停下,等待用户下一步指示,不自动进入发布、提交或其他外部写入。
Signals
- GitHub stars
- 66
- Forks
- 17
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
sgc-electron-app-relaunch- Source
- github.com/lovstudio/skills