SKILL.md
$2b
export default class NewFeatureCtr extends ControllerModule {
static override readonly groupName = 'newFeature';
@IpcMethod()
async doSomething(params: SomeParams): Promise {
// Implementation
return { success: true };
}
}
Register in `apps/desktop/src/main/controllers/registry.ts`.
### 2. Define IPC Types
Location: `packages/electron-client-ipc/src/types.ts`
export interface SomeParams {
/ ... /
}
export interface SomeResult {
success: boolean;
error?: string;
}
### 3. Create Renderer Service
Location: `src/services/electron/`
import { ensureElectronIpc } from '@/utils/electron/ipc';
const ipc = ensureElectronIpc();
export const newFeatureService = async (params: SomeParams) => {
return ipc.newFeature.doSomething(params);
};