Changemkr: aus vier Systemen wurde eine Plattform
Das Verhältnis des Studios zum Kunden
Changemkr ist eine Plattform, an der Torn Studio beteiligt ist. Das Studio hatte die Produktrolle von Januar 2025 bis Juni 2026 — zuerst als CPO, später anteilig — und hat neben dieser Rolle an der Codebasis gebaut. Arbeit nach Juni 2026 gehört anderen und steht nicht hier.
Kurze Antwort
Torn Studio hatte bei Changemkr die Produktrolle und ist an der Plattform beteiligt. Aus vier geerbten Systemen wurden fünf laufende Dienste um eine Schema-Autorität mit 63 Tabellen, und acht KI-Umgebungen teilen sich einen LangGraph-Dienst mit versionierten Prompts. Die Seite beschreibt die Arbeit bis Juni 2026, wo der Zeitraum des Studios endete.
Der Auftrag
Changemkr brauchte eine Plattform, auf der Befragung, Analyse, Planung und Nachverfolgung zusammenhängen, mit KI durch die ganze Kette. Das Produkt lag damals in vier Codebasen, die getrennt gewachsen waren und dieselben Begriffe unterschiedlich beschrieben.
Was es schwierig machte
- Die Planungshierarchie lag als sieben getrennte Modelle in einer Django-Schnittstelle, und dasselbe Wort bedeutete in den vier Systemen Verschiedenes — eine Änderung verlangte vier Eingriffe von vier Personen, die das Modell je anders lasen.
- Die KI-Schicht sprach ihr eigenes Vokabular, sodass der Assistent Objekte vorschlug, die die Arbeitsfläche nicht annehmen konnte. Das war einer von zwei Blockern vor dem Start.
- Die Datenbankmodelle des Python-Dienstes wurden neben dem in TypeScript definierten Schema von Hand gepflegt, sodass die zwei Beschreibungen derselben Tabellen still auseinanderlaufen konnten.
Zahlen zum Nachzählen
- 4zusammengeführte geerbte Systeme
- Der Migrationsbericht im Repository führt sie einzeln auf, mit dem was jedes besaß und was es ersetzte. Ein Skript im Build hält die Zahl der Importe daraus bei null.
- 63Tabellen unter einer Autorität
- Im Schema-Verzeichnis an der Juni-Grenze zählbar. Die Python-Modelle werden aus derselben Definition erzeugt, und eine Prüfstufe bricht den Build ab, sobald sie auseinanderlaufen.
- 8KI-Umgebungen auf einem Dienst
- Im Prompt-Register zählbar. Jede Umgebung trägt ihr eigenes Modell, ihren eigenen Werkzeugsatz und ihre eigene Prompt-Versionierung mit Rücknahme per Klick.
- 80Spezifikationsdateien für Ende-zu-Ende-Tests
- Im Testverzeichnis an der Juni-Grenze zählbar. Die Seite nennt die Zahl der Dateien, weil das Repository seine damalige Bestehensquote selbst zurückgezogen hat.
So wurde es gemacht
Eine Schema-Autorität, alles andere abgeleitet
Drizzle durfte alle 63 Tabellen definieren, und die Modelle des Python-Dienstes werden per Skript aus derselben Definition erzeugt. Eine Prüfstufe im Build vergleicht Erzeugtes mit Eingechecktem und bricht bei Abweichung ab, sodass zwei Systeme mit unterschiedlicher Beschreibung derselben Tabelle nicht eingecheckt werden können.
Harte Domänengrenzen
NestJS besitzt die Geschäftsdaten — Konten, Organisationen, Befragungen, Pläne. Der Python-Dienst besitzt die KI-Domäne — Threads, Embeddings, Gedächtnis, den Supervisor. Die Web-App ruft beide direkt auf, und die Grenze steht im Klartext in der Anweisungsdatei des Repositorys, was sie zu einer Entscheidung macht, der andere folgen können.
Aus sieben Modellen wurde eines
Die Planungshierarchie wurde zu einer Tabelle mit Typdiskriminator umgeformt, dazu eine Tabelle für Schlüsselergebnisse und eine für Beziehungen. Das Vokabular wurde geschlossen, und die KI-Schicht spricht nun genau die Worte der Arbeitsfläche. Der zugehörige Blocker wurde am zehnten Juni 2026 geschlossen.
Prüfstufen tragen die Grenzen
Ein Skript hält die Zahl der Importe aus den geerbten Systemen bei null und bricht den Build beim ersten Rückfall ab. Ein zweites bricht das Schema ab, sobald die erzeugten Modelle abgewichen sind. Die Zusammenführung hält, weil sie bei jeder Änderung geprüft wird.
Technik
- NestJS
- FastAPI
- Next.js
- Drizzle ORM
- SQLAlchemy
- LangGraph
- PostgreSQL
- pgvector
- BullMQ
- Azure Container Apps
Was dieser Beleg trägt
Das zeigt, dass vier Systeme zu einem zusammengeführt und von Prüfstufen zusammengehalten werden können. Über einen Markt sagt es nichts: die Plattform war an der Juni-Grenze nicht gestartet, das Urteil im Bereitschaftsprotokoll des Repositorys lautete betriebsfähig mit offenen Punkten, und einer davon war eine manuelle Sicherheitsaufgabe, die kein Code schließt.
Belege
Worauf dieser Artikel beruht — eine Messung von uns, eine datierte Quelle oder eine Entscheidung und ihr Preis.
- Messung
Wie viele Tabellen die eine Schema-Autorität definiert
Messobjekt: Das Schema-Verzeichnis von Changemkr an der Juni-Grenze
Methode: Die pgTable-Aufrufe in packages/database/src beim letzten Commit im Juni 2026 zählen.
Ergebnis: 63 Tabellen
- Entscheidung
Ein Schema definiert jede Tabelle, und die Modelle des Python-Dienstes werden daraus erzeugt.
Was sie gekostet hat: Jede Schemaänderung braucht nun einen zusätzlichen Erzeugungsschritt vor dem Einchecken, und ein von Hand bearbeitetes Modell bricht den Build ab, auch wenn es richtig ist.
- Entscheidung
Sieben Modelle der Planungshierarchie in einer Tabelle mit Typdiskriminator zusammenfassen.
Was sie gekostet hat: Die Datenbank kann die Objekttypen nicht mehr über eigene Spalten trennen, sodass die Regeln darüber, was wo liegen darf, in die Anwendung wanderten und eigene Tests brauchen.
Häufige Fragen
- Ist Changemkr ein Kunde von Torn Studio?
- Das Studio ist an der Plattform beteiligt und hatte dort die Produktrolle, was oben auf der Seite steht. Der Unterschied zählt: ein Auftrag für jemand anderen und ein Produkt, an dem das Studio beteiligt ist, sind verschiedene Behauptungen, und Sie sollen wissen, welche davon gilt, bevor Ergebnisse kommen.
- Warum endet der Fall im Juni 2026?
- Die Produktrolle des Studios lief bis dahin. Die Plattform wurde danach von anderen weiterentwickelt, und diese Arbeit mitzuzählen hieße, sich fremde Verdienste zuzuschreiben. Jede Zahl auf der Seite ist an dieser Grenze gemessen und dort überprüfbar.
- Warum steht keine Zahl bestandener Tests auf der Seite?
- Das Repository hat seine Testsuite im August 2026 neu vermessen und die frühere Zahl als ungültig zurückgezogen. Eine Zahl, die die Quelle selbst zurückgenommen hat, gehört nicht hierher, also nennt die Seite, was an der Grenze stabil war: Tabellen, Dienste, KI-Umgebungen und Testdateien.
- Was bedeutet eine Schema-Autorität in der Praxis?
- Dass eine einzige Definition alle 63 Tabellen hält und alles andere daraus abgeleitet wird. Die Modelle des Python-Dienstes erzeugt ein Skript, und eine Prüfstufe bricht den Build ab, sobald Erzeugtes und Eingechecktes auseinanderlaufen. Zwei Systeme mit unterschiedlicher Beschreibung derselben Tabelle lassen sich dann nicht mehr einchecken.
- Wie viel vom Code hat das Studio geschrieben?
- Das Studio hat in diesem Zeitraum große Teile des Produkts gebaut und die meisten Ideen und Funktionen entwickelt, während auch andere an der Codebasis arbeiteten. Deshalb behauptet die Seite eine Rolle und einen Zeitraum, und die Zahlen beschreiben das ausgelieferte System an der Grenze.
Erzählen Sie uns, was Sie bauen wollen
Dreißig Minuten, kostenlos, und eine klare Antwort, ob wir das richtige Studio dafür sind.
Antwort innerhalb eines Tages, ein schriftliches Angebot mit Festpreis innerhalb von drei Tagen, und Sie entscheiden in Ruhe.
Zufriedenheitsgarantie