Shared spell
Cline rules for Electron
This configuration is stored in the URL. Change a setting and copy a new link. Nothing is saved on a server.
Loading the generator…
Shared spell
This configuration is stored in the URL. Change a setting and copy a new link. Nothing is saved on a server.
Loading the generator…
# Cline and Roo rules
Project rules for Cline and Roo Code in this Electron repository.
Use the project's commands. Do not invent a package manager, and do not run destructive shell commands.
## Tool use
- Read the files you will change before editing them.
- Prefer a focused patch over rewriting a whole file.
- Run the test command from this file after a behavior change, or say why you could not.
- Do not delete generated folders, lockfiles, or migrations unless the task says so.
## Stack
This repository is an Electron app. The main process owns Node and the system. The renderer is a web page. They talk through a preload bridge, not through nodeIntegration.
## Layout
- Main-process code stays out of the renderer bundle.
- The preload script is the only place that touches ipcRenderer.
- Renderer UI lives in the frontend folder the project already has.
## Commands
- Dev: `npm run dev`
- Tests: `npm test`
- Package: `npm run package`
Use the script the repo already defines when it differs from the command above.
## Conventions
- Keep `nodeIntegration` off and `contextIsolation` on.
- Expose a small typed API through `contextBridge`. Do not expose ipcRenderer.
- Validate IPC payloads in the main process.
- Use the project's secure defaults for new BrowserWindows.
- Do not enable remote module patterns.
- Native dependencies stay in the main process.
## Testing
Add or update tests when behavior changes.
Unit-test the payload validator without launching Electron. Add a smoke launch only if you changed window setup.
## Style
- Optimize for the next reader over the shortest diff.
- Comment only when the why is non-obvious.
- Name things the way neighboring files already do.
- Do not reformat code you did not change.
## Errors
- Fail at the boundary. Do not swallow errors.
- Reject a bad IPC payload with an error the renderer can show. Do not crash the main process for bad input.
## Scope
- Do the requested task. Do not refactor unrelated code.
- Treat every instruction here as a constraint, not a suggestion.
- Ask one clarifying question only when the task cannot be finished without it. Otherwise state the assumption and continue.
## Avoid
- Do not require('fs') from the renderer.
- Do not load remote content in the main window without a strict CSP.
- Do not trust a path sent from the renderer. Resolve it against an allowed root.
- Do not disable webSecurity to make a request work.
## Done when
- The requested behavior works.
- The app boots in dev and the IPC you added rejects a malformed payload.
- The diff stays inside the task.
- You list anything you could not run.