Communitygithub.com

hesprs/synthkernel

🧩 Eine typsichere und komponierbare Architektur für modulare Monolithen-Entwicklung in TypeScript.

Was ist synthkernel?

SynthKernel ist eine TypeScript-Softwarearchitektur, die Entwicklern hilft, effizienten, sauberen und modularen Code zu schreiben. Im Kern besteht sie aus einem Modullader, der die Lebenszyklen der Module verwaltet und als Fassade nach außen fungiert, sowie Modulklassen, die die `BaseModule`-Klasse erweitern und die Geschäftslogik kapseln. Module werden über Dependency Injection verdrahtet und Typen werden durch Generics orchestriert. Der Modullader kann selbst wieder ein Modul eines übergeordneten Laders sein, was eine baumartige Struktur ermöglicht. SynthKernel eignet sich für eine Vielzahl von Anwendungsfällen, darunter Backend-Dienste, komplexe Automatisierung, CLI-Anwendungen und Canvas-Rendering-Engines. Die Architektur folgt einem Dateisystemkonventionen (z. B. `index.ts` für den Lader, `BaseModule.ts` für die Basisklasse), sodass überladene Module einfach in eigene Unterstrukturen ausgelagert werden können. Entwickler sollten SynthKernel früh im Entwicklungsprozess oder bei Refactoring-Projekten einsetzen, nicht jedoch bei reinen Web-Oberflächen oder Projekten unter 200 LOC.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add hesprs/synthkernel

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Über SynthKernel

SynthKernel ist eine TypeScript-Softwarearchitektur, die dir hilft, effizienten, sauberen und modularen Code zu schreiben.

Die typische Praxis von SynthKernel besteht aus einer Modullader-Klasse und Modulklassen:

  • Die Modullader-Klasse verwaltet die Lebenszyklen der Module, orchestriert Typen und agiert als Fassade an der Oberfläche deiner App-Logik.
  • Alle Modulklassen erweitern eine BaseModule-Klasse, definieren APIs, führen die eigentliche Logik aus, erweitern die Lader-Klasse und verdrahten sich gegenseitig über Dependency Injection.
  • Typen werden über Generics-Orchestrierung aufgelöst.
  • Module werden zum Lader zusammengesetzt, um eine APP zu bilden. Ein Modullader kann auch ein Modul eines übergeordneten Laders sein.
  • Es ist für fast alle Anwendungsfälle geeignet, einschließlich, aber nicht beschränkt auf Backend-Service, komplexe Automatisierung, CLI-Anwendung und Canvas-Rendering-Engine.

Dateisystem-Konventionen

SynthKernel sollte in einer Baumstruktur organisiert sein.

Ein Lader zusammen mit der Basisklasse und allen direkten Modulen sollte flach in einem Ordner abgelegt werden:

  • die Datei, die den Lader enthält, sollte index.ts heißen
  • Basis-Modul heiße BaseModule.ts
  • Typen heißen types.ts
  • alle Module heißen (Modulname in PascalCase).ts
  • es gibt keine Einschränkung für die Namen anderer Dateien

Es ist eine Standardpraxis, ein überfrachtetes Modul in eine neue Lader-Modul-Struktur umzuwandeln und das Modul dann einfach in einen Ordner mit denselben Anforderungen wie oben zu verwandeln.

Wann verwenden

  • In der frühen Phase der Entwicklung, wenn du Hinweise auf Logik hast, aber noch keinen Code geschrieben hast.
  • Du hast keine klare Architekturkonvention.
  • Während Refactorings, wenn du große Module aufteilen oder das Projekt modularisieren möchtest.
  • Du fügst neue Funktionen hinzu und erwägst, ein neues Modul zu erstellen, und möchtest SynthKernel verstehen.

Wann nicht verwenden

  • Du sollst die Architektur weder erstellen noch ändern.
  • Du entwickelst eine Web-UI, die ihre eigenen Konventionen hat.
  • Du arbeitest an einem einfachen Projekt (LOC < 200), bei dem ein klassischer Monolith bequemer ist.

Aktionen

  • Wenn du SynthKernel von Grund auf implementierst oder bestehenden Code refaktorierst, um SynthKernel zu übernehmen, gehe zu Start.
  • Wenn du ein neues Modul hinzufügst oder Module aufteilst, gehe zu Wartung.
  • Ein Beispiel für die Standardpraxis findest du in ./example.

Verwandte Skills