ipc-development
スター11
フォーク0
更新日2026年3月2日 14:18
IPC 채널 추가/수정 시 안전 규칙과 절차
インストール
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SKILL.md
readonlyメニュー
IPC 채널 추가/수정 시 안전 규칙과 절차
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Prowl 앱을 격리 환경에서 실행하고 UI 동작을 E2E 검증. 작업 완료 후 회귀 확인용.
에이전트 간 상호작용 구조와 워크플로우 정의
컨벤션에 맞춰 커밋 생성
PR 템플릿에 맞춰 Pull Request 생성
TanStack Query 기반 데이터 페칭 패턴
Prowl 앱의 디자인 시스템 (Liquid Glass + 골드 액센트)
| name | ipc-development |
| description | IPC 채널 추가/수정 시 안전 규칙과 절차 |
| user-invocable | false |
모든 IPC 채널은 src/shared/ipc-schema.ts에 정의. 이 스키마에서 타입이 자동 추론되므로 별도 타입 정의 불필요.
새 IPC 채널 추가 시 3곳 수정:
src/shared/ipc-schema.ts — 채널 + params + return 타입 정의src/main/ipc.ts — handleIpc() 핸들러 추가src/preload/index.ts — invokeIpc() 메서드 추가→ Renderer 타입은 자동 반영
| 채널 유형 | 반환 타입 | 예시 |
|---|---|---|
| 데이터 조회 | 구체적 타입 | LaunchdJob[], AppSettings |
| 데이터 변경 (mutation) | IpcResult | { success: true } |
| Fire-and-forget | void | quit, resize, navigate |
handleIpc 래퍼가 try/catch 자동 적용:
{ success: false, error: message } 반환string) 사용.toISOString() 호출 후 전달new Date(isoString) 으로 파싱형식: {domain}:{action} (액션은 kebab-case)
jobs:list # 조회
jobs:toggle # 액션
settings:get # 단일 조회
calendar:add-local-event # 복합 액션
컴포넌트에서 window.electronAPI 직접 호출 금지. 반드시 hooks를 통해 접근:
// Bad
const jobs = await window.electronAPI.listJobs();
// Good
const { jobs } = useLaunchdJobs();
외부 데이터(plist)는 Zod safeParse로 런타임 검증:
// Bad
const data = plist.parse(content) as PlistData;
// Good
const result = PlistDataSchema.safeParse(plist.parse(content));
if (!result.success) { /* handle error */ }