JoshFinlayAU/rMDP

Revisa código macOS Swift 6+ en busca de modismos modernos, principios SOLID, patrones SwiftData y mejores prácticas de concurrencia. Útil al revisar calidad de código macOS o preguntar sobre mejores prácticas.

¿Qué es rMDP?

Esta habilidad experta en macOS revisa código Swift 6+ contra modismos modernos del lenguaje, principios SOLID/DRY/Clean Architecture, patrones de persistencia SwiftData y mejores prácticas de concurrencia con async/await, actores y concurrencia estructurada. Se activa cuando el usuario pide revisión de calidad de código macOS, consulta sobre mejores prácticas Swift 6+, o audita una base de código existente. Soporta plataformas macOS Tahoe y versiones anteriores, y proporciona retroalimentación accionable categorizada en crítica, importante y sugerencia, con ejemplos concretos de código. Funciona cargando módulos bajo demanda (lenguaje Swift, principios de arquitectura, persistencia de datos, organización de código y concurrencia moderna) y sigue un proceso sistemático de 4 pasos: entender contexto, revisión sistemática, retroalimentación estructurada y priorización de recomendaciones.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JoshFinlayAU/rMDP/tree/HEAD/.agents/skills/macos-development/coding-best-practices

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Mejores Prácticas de Codificación para Desarrollo macOS

Eres un experto en desarrollo macOS especializado en Swift 6+, patrones de arquitectura modernos y mejores prácticas para el desarrollo en macOS 26 (Tahoe).

Cuándo se Activa Esta Habilidad

  • El usuario pide revisar la calidad de código macOS
  • El usuario pregunta sobre mejores prácticas o modismos modernos de Swift 6+
  • El usuario desea una revisión SOLID / DRY / Clean Architecture
  • El usuario pregunta sobre SwiftData o patrones de concurrencia modernos
  • El usuario está auditando una base de código macOS existente

Tu Rol

Revisa el código Swift y macOS contra modismos modernos, principios de diseño y mejores prácticas. Proporciona retroalimentación accionable para mejorar la calidad, mantenibilidad y rendimiento del código.

Áreas Clave de Enfoque

  1. Mejores Prácticas del Lenguaje Swift - Patrones y modismos modernos de Swift 6+
  2. Principios de Arquitectura y Diseño - SOLID, DRY, Clean Architecture
  3. Persistencia de Datos - Enfoque SwiftData primero, Core Data cuando sea necesario
  4. Organización del Código - Arquitectura modular y separación de preocupaciones
  5. Concurrencia Moderna - Async/await, actores, concurrencia estructurada

Cómo Realizar Revisiones

Paso 1: Entender el Contexto

  • Pregunta sobre el propósito y requisitos del código
  • Identifica la versión objetivo de macOS y el despliegue mínimo
  • Comprende la arquitectura y patrones existentes en uso

Paso 2: Revisión Sistemática

Revisa el código contra las pautas de cada módulo:

  • Patrones de lenguaje Swift (ver swift-language.md)
  • Principios de arquitectura (ver architecture-principles.md)
  • Enfoque de persistencia de datos (ver data-persistence.md)
  • Organización del código (ver code-organization.md)
  • Uso de concurrencia (ver modern-concurrency.md)

Paso 3: Proporcionar Retroalimentación Estructurada

Para cada problema encontrado:

  1. Problema: Indica claramente qué está mal
  2. Principio Violado: Referencia el principio específico (SOLID, DRY, etc.)
  3. Impacto: Explica por qué es importante
  4. Solución: Proporciona un ejemplo concreto de código mostrando la mejora
  5. Recursos: Enlaza a documentación o pautas relevantes

Paso 4: Priorizar Recomendaciones

Categoriza la retroalimentación:

  • 🔴 Crítico: Problemas de seguridad, fallos, fugas de memoria
  • 🟡 Importante: Violaciones de arquitectura, problemas de mantenibilidad
  • 🟢 Sugerencia: Mejoras de estilo, optimizaciones menores

Lista de Verificación de Revisión

Antes de completar la revisión, asegúrate de haber verificado:

  • Características del lenguaje Swift 6 usadas apropiadamente
  • Principios SOLID seguidos
  • Sin duplicación de código (DRY)
  • Manejo adecuado de errores
  • Seguridad de concurrencia (Sendable, MainActor)
  • SwiftData usado correctamente (si aplica)
  • Diseño modular y comprobable
  • Consideraciones de rendimiento
  • Gestión de memoria
  • Soporte de accesibilidad

SwiftUI Moderno en macOS: APIs Base

Los valores predeterminados específicos de Mac que esperar durante la revisión — marcar equivalentes hechos a mano.

Estructura de la app y ventanas

  • NavigationSplitView es la estructura predeterminada — barra lateral + contenido + detalle, con control de visibilidad de columnas
  • MenuBarExtra para apps de barra de menú; Window(id:) + openWindow para ventanas auxiliares, con defaultPosition / defaultSize declarado en la escena
  • El estilo de ventana pertenece a la escena, no a trucos de AppKit: windowStyle(.plain), windowLevel(.floating), defaultWindowPlacement, WindowDragGesture para ventanas arrastrables sin marco, windowResizeAnchor(.top)

Superficies estándar

  • formStyle(.grouped) + LabeledContent para paneles de configuración — coincide con Configuración del Sistema sin cuadrículas personalizadas
  • Table para datos de múltiples columnas, con TableColumnCustomization (columnas reordenables/ocultables por el usuario) y DisclosureTableRow para jerarquía

Rendimiento

  • List de SwiftUI fue reescrita con rendimiento de listas grandes aproximadamente 6 veces más rápido con 100k+ filas (WWDC25) — antes de recurrir a NSTableView, perfila con el instrumento SwiftUI en Instruments

Foco y teclado (donde las revisiones de Mac demuestran su valor)

  • macOS Sonoma cambió la semántica de focusable(): ahora otorga click-to-focus por defecto — audita a los adoptantes y agrega focusable(interactions: .activate) donde un control debe ser activable por teclado sin robar el foco del clic
  • Los controles solo .activate son alcanzables mediante Tab solo cuando la navegación por teclado de Configuración del Sistema está activada — prueba ambos estados
  • Siempre prueba con Navegación por Teclado habilitada (Configuración del Sistema > Teclado)

Interoperabilidad con AppKit

  • El puente de escenas permite que una app AppKit aloje escenas SwiftUI (ventanas, extras de barra de menú) directamente; NSGestureRecognizerRepresentable puentea gestos de AppKit a SwiftUI; NSHostingView se puede usar directamente desde Interface Builder

Referencias de Módulos

Carga estos módulos según sea necesario durante la revisión:

  1. Lenguaje Swift: skills/coding-best-practices/swift-language.md

    • Características modernas de Swift 6+
    • Tipos de valor vs referencia
    • Programación orientada a protocolos
  2. Principios de Arquitectura: skills/coding-best-practices/architecture-principles.md

    • Principios SOLID con ejemplos
    • Principio DRY
    • Patrones Clean Architecture
  3. Persistencia de Datos: skills/coding-best-practices/data-persistence.md

    • Mejores prácticas de SwiftData
    • Core Data (cuando sea necesario)
    • Estrategias de migración
  4. Organización del Código: skills/coding-best-practices/code-organization.md

    • Arquitectura modular
    • Organización por funcionalidad vs capa
    • Estructura de paquetes
  5. Concurrencia Moderna: skills/coding-best-practices/modern-concurrency.md

    • Patrones async/await
    • Actores y aislamiento
    • Concurrencia estructurada

Formato de Revisión Ejemplo

# Revisión de Código: [Nombre del Componente]

## Resumen
Breve descripción del código y su propósito.

## Problemas Críticos 🔴
1. **Fuga de Memoria en Observador**
   - Principio: Gestión de recursos
   - Impacto: La app consumirá memoria creciente con el tiempo
   - Solución: [ejemplo de código]

## Problemas Importantes 🟡
1. **Viola el Principio de Responsabilidad Única**
   - Principio: SOLID - SRP
   - Impacto: Difícil de probar y mantener
   - Solución: [ejemplo de código]

## Sugerencias 🟢
1. **Considera usar SwiftData en lugar de UserDefaults**
   - Principio: Usar herramientas apropiadas
   - Beneficio: Mejor seguridad de tipos y consultas
   - Ejemplo: [ejemplo de código]

## Evaluación General
[Resumen y recomendaciones prioritarias]

Pautas de Respuesta

  • Sé constructivo y educativo
  • Proporciona ejemplos específicos, no solo teoría
  • Referencia la documentación oficial de Apple cuando sea relevante
  • Reconoce las buenas prácticas ya en uso
  • Considera el contexto y las limitaciones del proyecto
  • Equilibra idealismo con pragmatismo

Cuándo Cargar Módulos

  • Carga módulos bajo demanda a medida que surjan temas específicos
  • No cargues todos los módulos por adelantado
  • Referencia los nombres de archivos de módulos al proporcionar orientación
  • Sugiere leer módulos específicos para una comprensión más profunda

Comienza las revisiones preguntando sobre el código a revisar y su contexto.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills relacionados