appkit-interop

por openai

Decide cuándo y cómo puentear una app de macOS desde SwiftUI hacia AppKit. Úsalo al implementar NSViewRepresentable o NSViewControllerRepresentable, accediendo…

npx skills add https://github.com/openai/plugins --skill appkit-interop

AppKit Interop

Quick Start

Use this skill when SwiftUI is close but not quite enough for native macOS behavior. Keep the bridge as small and explicit as possible. SwiftUI should usually remain the source of truth, while AppKit handles the imperative edge.

Choose The Smallest Bridge

  • Use pure SwiftUI when the required behavior already exists in scenes, toolbars, commands, inspectors, or standard controls.
  • Use NSViewRepresentable when you need a specific AppKit view with lightweight lifecycle needs.
  • Use NSViewControllerRepresentable when you need controller lifecycle, delegation, or presentation coordination.
  • Use direct AppKit window or app hooks when you need NSWindow, responder-chain, menu validation, panels, or app-level behavior.

Workflow

  1. Name the capability gap precisely.

    • Window behavior
    • Text system behavior
    • Menu validation
    • Drag and drop
    • File open/save panels
    • First responder control
  2. Pick the smallest boundary that solves it.

    • Avoid porting a whole screen to AppKit when one wrapped control or coordinator would do.
  3. Keep ownership explicit.

    • SwiftUI owns value state, selection, and observable models.
    • AppKit objects stay inside the representable, coordinator, or bridge object.
  4. Expose a narrow interface back to SwiftUI.

    • Bindings for editable state
    • Small callbacks for events
    • Focused bridge services only when necessary
  5. Validate lifecycle assumptions.

    • SwiftUI may recreate representables.
    • Coordinators exist to hold delegate and target-action glue, not as a second app architecture.

References

  • references/representables.md: choosing between view and view-controller wrappers, plus coordinator patterns.
  • references/window-panels.md: window access, utility windows, and open/save panels.
  • references/responder-menus.md: first responder, command routing, and menu validation.
  • references/drag-drop-pasteboard.md: pasteboard, file URLs, and desktop drag/drop edges.

Guardrails

  • Do not duplicate the source of truth between SwiftUI and AppKit.
  • Do not let Coordinator become an unstructured dumping ground.
  • Do not store long-lived NSView or NSWindow instances globally without a strong ownership reason.
  • Prefer a tiny tested bridge over rewriting the feature in raw AppKit.
  • If a pattern can remain entirely in swiftui-patterns, keep it there.

Output Expectations

Provide:

  • the exact SwiftUI limitation being crossed
  • the smallest recommended bridge type
  • the data-flow boundary between SwiftUI and AppKit
  • the lifecycle or validation risks to watch

Más skills de openai

user-context
openai
Cargar o gestionar las preferencias de enrutamiento de origen duraderas del complemento de Análisis de Datos, la lógica de incorporación, el progreso de configuración y el registro de la capa semántica.
official
notion-research-documentation
openai
Investiga contenido en Notion y sintetízalo en informes estructurados, resúmenes o comparaciones con citas. Busca y obtén páginas de Notion mediante consultas específicas, luego organiza los hallazgos por tema con citas en línea de las fuentes y una sección de referencias. Elige entre cuatro formatos de salida (resumen rápido, síntesis de investigación, comparación, informe completo) según el alcance y el objetivo del usuario. Crea y actualiza páginas de Notion usando plantillas integradas; enlaza las fuentes directamente y registra los cambios a medida que llega nueva información...
official
rcsb-pdb-skill
openai
Envía solicitudes compactas de RCSB PDB para metadatos básicos, consultas de la API de búsqueda y descargas FASTA. Úsalo cuando un usuario desee resúmenes concisos de RCSB; guarda el JSON sin procesar o…
official
pdf
openai
Lectura, creación y validación de PDF con renderizado visual y generación programática. Renderiza páginas PDF a PNG para inspección visual del diseño, espaciado y tipografía antes de la entrega usando Poppler (pdftoppm). Genera PDFs programáticamente con reportlab para un formateo confiable; extrae texto y metadatos con pdfplumber o pypdf. Aplica estándares de calidad: sin texto recortado, elementos superpuestos, tablas rotas ni artefactos de renderizado; solo guiones ASCII, citas legibles para humanos. Usa...
official
test-coverage-improver
openai
Improve test coverage in the OpenAI Agents JS monorepo: run `pnpm test:coverage`, inspect coverage artifacts, identify low-coverage files and branches, propose…
official
playwright
openai
Automatización de navegador desde terminal con instantáneas de elementos y flujos de trabajo interactivos de interfaz de usuario. Opera mediante un script envolvente de playwright-cli (requiere npx); admite modos headless y con interfaz gráfica para depuración visual. Flujo de trabajo principal: abrir página, tomar instantánea para referencias estables de elementos, interactuar usando referencias, volver a tomar instantánea tras navegación o cambios en el DOM. Incluye llenado de formularios, clics, escritura, gestión de múltiples pestañas, captura de pantalla/PDF y grabación de trazas para depuración de flujos. Las referencias de elementos (por ejemplo, e3, e15)...
official
ukb-topmed-phewas-skill
openai
Obtén resúmenes PheWAS compactos de UKB-TOPMed para variantes individuales aceptando entrada de rsID, GRCh37 o GRCh38 y resolviendo a la consulta GRCh38 requerida. Úsalo cuando un…
official
code-review-context
openai
Contexto visible del modelo
official