with one click
new-ipc-channel
Scaffold a new IPC channel with proper TypeScript types
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Scaffold a new IPC channel with proper TypeScript types
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Build and test the Electron app with proper worktree isolation
Audit translation completeness across all language files
Generate release notes from git history between tags
Create or review Qase-ready QA flows for Rocket.Chat Desktop PRs and branches.
Based on SOC occupation classification
| name | new-ipc-channel |
| description | Scaffold a new IPC channel with proper TypeScript types |
Add a new type-safe IPC channel to the Rocket.Chat Electron app. This scaffolds the channel definition, main process handler, and renderer invoke call.
name: Channel name using domain/action format (e.g., downloads/clear-all, notifications/dismiss)args: TypeScript argument types (e.g., (itemId: string) or () for no args)return: TypeScript return type (e.g., void, boolean, { success: boolean })Edit src/ipc/channels.ts and add the new channel to the ChannelToArgsMap type:
type ChannelToArgsMap = {
// ... existing channels ...
'<name>': (<args>) => <return>;
};
Add any needed imports at the top of the file if the types reference domain-specific types.
Identify the correct main process file based on the channel domain:
downloads/* → src/downloads/main.tsnotifications/* → src/notifications/main.tsservers/* → src/servers/main.tsvideo-call-window/* → src/videoCallWindow/main.tsoutlook-calendar/* → src/outlookCalendar/main.tsdocument-viewer/* → src/documentViewer/main.tsAdd the handler using the existing pattern in that file. Look at sibling handlers for the correct pattern - they use ipcMain.handle or the project's handle wrapper from src/ipc/main.ts.
If this channel is called from the renderer process, add the invoke call in the appropriate renderer file or in src/ipc/renderer.ts following the existing pattern.
Run type checking to ensure the new channel compiles:
npx tsc --noEmit
The IPC system uses a centralized type map (ChannelToArgsMap) that enforces type safety between main and renderer processes. The Channel and Handler types are derived from this map:
export type Channel = keyof ChannelToArgsMap;
export type Handler<N extends Channel> = ChannelToArgsMap[N];
All 71+ existing channels follow the 'domain/action' naming convention.