Agent Skillsmuratgur/ordinus › ipc-contract-design

ipc-contract-design

GitHub

用于设计和维护 Ordinus IPC 契约,确保接口类型安全、明确且稳定。涵盖频道命名、共享类型定义、Zod 校验、主进程处理及预加载桥接方法的规范与工作流程。

.claude/skills/ipc-contract-design/SKILL.md muratgur/ordinus

Trigger Scenarios

新增或修改 window.ordinus API 调整 ipcMain 处理器 变更 IPC 通道名称 更新共享请求/响应类型或 Zod 模式 修改预加载桥接方法 重构渲染器到主进程的调用

Install

npx skills add muratgur/ordinus --skill ipc-contract-design -g -y
More Options

Non-standard path

npx skills add https://github.com/muratgur/ordinus/tree/master/.claude/skills/ipc-contract-design -g -y

Use without installing

npx skills use muratgur/ordinus@ipc-contract-design

指定 Agent (Claude Code)

npx skills add muratgur/ordinus --skill ipc-contract-design -a claude-code -g -y

安装 repo 全部 skill

npx skills add muratgur/ordinus --all -g -y

预览 repo 内 skill

npx skills add muratgur/ordinus --list

SKILL.md

Frontmatter
{
    "name": "ipc-contract-design",
    "description": "Design and maintain Ordinus typed IPC contracts. Use when adding or changing window.ordinus APIs, ipcMain handlers, ipc channel names, shared request\/response types, Zod schemas, preload bridge methods, or renderer calls into main process."
}

IPC Contract Design

Objective

Keep Ordinus IPC small, typed, explicit, and stable enough for the renderer to act as a safe UI over main-process capabilities.

Contract Shape

  • Define channel names in src/shared/ipc.ts.
  • Define shared request/response schemas and types in src/shared/contracts.ts.
  • Register handlers in main process modules, not renderer.
  • Expose renderer-facing methods through window.ordinus in preload.
  • Use feature-shaped methods such as workspace.selectFolder() instead of generic transport methods.

Workflow

  1. Name the user-facing capability before creating an IPC method.
  2. Add or update shared types and Zod schemas.
  3. Add the IPC channel constant.
  4. Implement the main handler and validate untrusted input.
  5. Add the narrow preload method that invokes that channel.
  6. Consume the method in renderer through window.ordinus.
  7. Run typecheck, lint, and build.

Guidelines

  • Keep method names domain-oriented: app.getInfo, db.getStatus, workspace.selectFolder.
  • Prefer one explicit method over a generic catch-all channel.
  • Keep renderer errors user-readable and main errors diagnostic enough to debug.
  • When IPC responses drive renderer status, empty states, or error copy, align user-visible naming with DESIGN.md.
  • Do not add IPC for future features until there is an immediate caller.
  • Do not return secrets, raw environment details, or unrestricted local paths unless the UI truly needs them.

Anti-Patterns

  • window.ordinus.invoke(channel, payload).
  • Passing raw command strings from renderer to main.
  • Duplicating response shapes separately in main and renderer.
  • Letting renderer decide privileged policy such as workspace boundaries or executable paths.

Version History

  • f507122 Current 2026-07-05 18:19

Same Skill Collection

.agents/skills/lavish/SKILL.md
.claude/skills/code-review-and-quality/SKILL.md
.claude/skills/code-simplification/SKILL.md
.claude/skills/documentation-and-adrs/SKILL.md
.claude/skills/electron-secure-boundary/SKILL.md
.claude/skills/grill-me/SKILL.md
.claude/skills/idea-discovery/SKILL.md
.claude/skills/ordinus-ui-system/SKILL.md
.claude/skills/provider-runtime-adapter/SKILL.md
.claude/skills/shadcn-project-workflow/SKILL.md
.claude/skills/sqlite-minimal-persistence/SKILL.md
.codex/skills/code-review-and-quality/SKILL.md
.codex/skills/code-simplification/SKILL.md
.codex/skills/documentation-and-adrs/SKILL.md
.codex/skills/electron-secure-boundary/SKILL.md
.codex/skills/grill-me/SKILL.md
.codex/skills/idea-discovery/SKILL.md
.codex/skills/ipc-contract-design/SKILL.md
.codex/skills/ordinus-ui-system/SKILL.md
.codex/skills/provider-runtime-adapter/SKILL.md
.codex/skills/shadcn-project-workflow/SKILL.md
.codex/skills/sqlite-minimal-persistence/SKILL.md

Metadata

Files
0
Version
f507122
Hash
12d81031
Indexed
2026-07-05 18:19

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-14 11:51
浙ICP备14020137号-1 $Map of visitor$