Communitygithub.com

hesprs/synthkernel

🧩 Una arquitectura tipada y componible para el desarrollo de monolitos modulares en TypeScript.

¿Qué es synthkernel?

SynthKernel es una arquitectura de software para TypeScript que permite escribir código eficiente, limpio y modular. Se basa en una clase cargadora de módulos que gestiona los ciclos de vida y orquesta los tipos, mientras que las clases de módulo extienden una clase `BaseModule`, definen APIs, ejecutan lógica y se conectan entre sí mediante inyección de dependencias. Los tipos se resuelven mediante genéricos orquestados, y los módulos se componen en el cargador para formar una aplicación (APP), permitiendo que un cargador también sea un módulo de un cargador padre. Es útil en una amplia variedad de casos, como servicios backend, automatización compleja, aplicaciones CLI y motores de renderizado de canvas, y se recomienda en etapas tempranas de desarrollo, durante refactorizaciones o al añadir nuevas funcionalidades donde no exista una convención de arquitectura clara.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add hesprs/synthkernel

Preguntar en tu IA favorita

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

Documentación

Acerca de SynthKernel

SynthKernel es una arquitectura de software en TypeScript que te ayuda a escribir código eficiente, limpio y modular.

La práctica típica de SynthKernel consiste en una clase cargadora de módulos y clases de módulo:

  • La clase cargadora de módulos gestiona los ciclos de vida de los módulos, orquesta los tipos y actúa como una fachada en la superficie de la lógica de tu aplicación.
  • Todas las clases de módulo extienden una clase BaseModule, definen APIs, ejecutan la lógica real, aumentan la clase cargadora y se conectan entre sí mediante inyección de dependencias.
  • Los tipos se resuelven mediante orquestación de genéricos.
  • Los módulos se componen en el cargador para formar una APP. Un cargador de módulos también puede ser un módulo de un cargador padre.
  • Es aplicable a casi todos los casos de uso, incluyendo pero no limitado a servicios backend, automatización compleja, aplicaciones CLI y motores de renderizado de canvas.

Convenciones del Sistema de Archivos

SynthKernel debe estructurarse en un patrón de árbol.

Un cargador junto con el módulo base y todos sus módulos directos deben colocarse planos en una carpeta:

  • el archivo que contiene el cargador debe llamarse index.ts
  • el módulo base llamado BaseModule.ts
  • los tipos llamados types.ts
  • todos los módulos se nombran (nombre del módulo en PascalCase).ts
  • no hay restricción para el nombre de otros archivos

Es una práctica estándar convertir un módulo demasiado grande en una nueva estructura de cargador-módulo, y luego simplemente convertir el módulo en una carpeta con los mismos requisitos anteriores.

Cuándo Usar

  • En la etapa temprana del desarrollo, cuando tienes indicios de lógica pero aún no has escrito ningún código.
  • No tienes una convención de arquitectura clara.
  • Durante refactorizaciones cuando buscas dividir algunos módulos grandes o hacer el proyecto modular.
  • Estás añadiendo nuevas funcionalidades y consideras crear un nuevo módulo, deseando entender SynthKernel.

Cuándo No Usar

  • No se supone que debas crear o cambiar la arquitectura.
  • Estás desarrollando una interfaz web UI que tiene sus propias convenciones.
  • Estás trabajando en un proyecto simple (loc < 200) donde un monolito clásico es más conveniente.

Acciones

  • Si estás implementando SynthKernel desde cero o refactorizando código existente para adoptar SynthKernel, ve a inicio.
  • Si estás añadiendo un nuevo módulo o dividiendo módulos, ve a mantenimiento.
  • Puedes encontrar un ejemplo de práctica estándar en ./example.

Skills relacionados