Skip to content

Phase 5: Code - Generierung ausführbarer Code

Was Sie nach Abschluss können

  • Ein-Klick-Generierung von Full-Stack-Code: Automatische Generierung von ausführbaren Front- und Backend-Anwendungen aus UI-Schema und Tech-Design
  • Verständnis des Code-Generierungsprozesses: Beherrschung, wie der Code Agent Entwurfsdokumente in produktionsbereiten Code umwandelt
  • Validierung der Codequalität: Lernen Sie, die Vollständigkeit, Testabdeckung und Sicherheitsstandards des generierten Codes zu prüfen
  • Debugging häufiger Probleme: Lösung von Abhängigkeitsinstallationen, Typprüfungen und API-Verbindungsproblemen

Ihre aktuelle Herausforderung

Sie haben die Strukturierung der Produktidee, die PRD-Generierung, das UI-Design und das technische Architekturdesign abgeschlossen. Jetzt stehen Sie vor den größten Herausforderungen:

  • Wie verwandeln Sie Designs in Code: UI-Schema und Tech-Design sind in Dokumenten, aber wie implementieren Sie sie?
  • Full-Stack-Entwicklung ist zu komplex: Backend benötigt Express + Prisma, Frontend benötigt React Native – wo fangen Sie an?
  • Schwierige Qualitätssicherung: Wie stellen Sie sicher, dass der generierte Code Tests, Dokumentation und Sicherheitsstandards hat?
  • Nicht genügend Zeit: Die Entwicklung eines MVP dauert mehrere Tage – gibt es einen schnelleren Weg?

Die Phase Code wurde entwickelt, um genau diese Probleme zu lösen – sie generiert automatisch produktionsbereiten Full-Stack-Code basierend auf den Designs der vorangegangenen Phasen.

Wann Sie diesen Ansatz verwenden

Wenn Sie:

  • Ideen schnell validieren möchten: Validieren Sie Produktideen mit Code, anstatt direkt in die Entwicklung zu investieren
  • Anwendungsgerüste erstellen möchten: Stellen Sie eine ausführbare Grundlage für die zukünftige Entwicklung bereit, anstatt bei Null anzufangen
  • Einheitlichen Technologie-Stack gewährleisten möchten: Stellen Sie sicher, dass Front- und Backend-Code einer einheitlichen Architektur und den gleichen Standards folgt
  • Entwicklungszeit sparen möchten: Vom Design zum Code – in wenigen Minuten das MVP-Framework

Kernkonzept

Der Code Agent ist ein Full-Stack-Ingenieur, dessen Aufgabe es ist, Entwurfsdokumente der vorangegangenen Phasen in ausführbaren Code umzuwandeln. Seine Kernmerkmale:

Eingabe und Ausgabe

TypInhalt
EingabeUI-Schema (Benutzeroberflächenstruktur), Tech-Design (technische Lösung), Prisma-Schema (Datenmodell)
Ausgabeartifacts/backend/ (Backend-Code), artifacts/client/ (Frontend-Code)

Technologie-Stack

BereichTechnologie-Stack
BackendExpress + Prisma + TypeScript
FrontendReact Native Web + Expo + TypeScript
DatenbankSQLite (Entwicklung) / PostgreSQL (Produktion)

Ausführungsbeschränkungen

Strikter Umfang

Der Code Agent implementiert nur die Funktionen, die im PRD und UI-Schema bestätigt sind. Er fügt nicht hinzu:

  • Authentifizierungs- und Autorisierungssysteme
  • Komplexe Zustandsverwaltung (wie Redux)
  • Nicht-Kern-Funktionsmerkmale

Lernen Sie mit

Schritt 1: Eintritt in die Code-Phase

Angenommen, Sie haben die Tech-Phase abgeschlossen und möchten jetzt mit der Code-Generierung beginnen.

bash
# Wenn Sie sich in der Pipeline befinden, gehen Sie direkt zur nächsten Phase
factory run code

# Oder starten Sie von einer bestimmten Phase neu
factory run code

Was Sie sehen sollten: Die CLI zeigt Informationen zur Code-Phase an, einschließlich Eingabedateien und erwarteter Ausgabe.

Schritt 2: AI-Assistent führt Code Agent aus

Der AI-Assistent lädt agents/code.agent.md und skills/code/skill.md und beginnt mit der Ausführung.

Der Ausführungsablauf des Code Agent:

mermaid
graph TD
    A[Eingabedateien lesen] --> B[Template-Dateien lesen]
    B --> C[Backend-Code generieren]
    C --> D[Frontend-Code generieren]
    D --> E[Validierungs-Checkliste]
    E --> F[Ausgabe-Produkte]

Was der AI-Assistant tun wird:

  1. Template-Dateien lesen (skills/code/references/backend-template.md und frontend-template.md)

    • Verständnis der Projektstruktur und Code-Organisation
    • Lernen, wie Verzeichnisse und Konfigurationsdateien organisiert werden
  2. Eingabedateien analysieren

    • Verständnis der Seitenstruktur und Komponenten aus ui.schema.yaml
    • Verständnis der technischen Architektur und API-Designs aus tech.md
    • Verständnis des Datenmodells aus schema.prisma
  3. Backend-Code generieren

    • Erstellung der Express + Prisma-Projektstruktur
    • Generierung von API-Routen und Controllern
    • Implementierung der Datenvalidierung und Fehlerbehandlung
    • Hinzufügen von Tests und Dokumentation
  4. Frontend-Code generieren

    • Erstellung der React Native + Expo-Projektstruktur
    • Generierung von Seitenkomponenten und UI-Komponenten
    • Implementierung der Datenzustandsverwaltung und API-Aufrufe
    • Hinzufügen von Tests und Navigationskonfiguration
  5. Validierungs-Checkliste

    • Abgleich mit der Checkliste im Code Skill
    • Sicherstellen, dass alle Pflichtelemente abgeschlossen sind
  6. Ausgabe-Produkte

    • Generierung der Verzeichnisse artifacts/backend/ und artifacts/client/

Schritt 3: Validierung des generierten Codes

Nach Abschluss des Code Agent wird eine vollständige Verzeichnisstruktur generiert.

Backend-Verzeichnisstruktur:

backend/
├── package.json          # Abhängigkeiten und Skripte
├── tsconfig.json         # TypeScript-Konfiguration
├── .env.example          # Umgebungsvariablen-Template
├── .gitignore            # Git-Ignore-Datei
├── README.md             # Projektbeschreibung
├── GETTING_STARTED.md    # Schnellstart-Anleitung
├── prisma/
│   ├── schema.prisma     # Datenmodell (aus der Tech-Phase kopiert)
│   └── seed.ts           # Seed-Daten
└── src/
    ├── index.ts          # Anwendungseinstieg
    ├── app.ts            # Express-Anwendungskonfiguration
    ├── config/           # Umgebungsvariablen-Konfiguration
    ├── lib/              # Prisma-Client
    ├── middleware/       # Fehlerbehandlung, Logging
    ├── routes/           # API-Routen
    ├── controllers/      # Controller
    ├── services/         # Geschäftslogik
    ├── validators/       # Eingabevalidierung (Zod)
    └── __tests__/        # Testdateien

Frontend-Verzeichnisstruktur:

client/
├── package.json          # Abhängigkeiten und Skripte
├── tsconfig.json         # TypeScript-Konfiguration
├── app.json              # Expo-Konfiguration
├── babel.config.js       # Babel-Konfiguration
├── .env.example          # Umgebungsvariablen-Template
├── .gitignore            # Git-Ignore-Datei
├── README.md             # Projektbeschreibung
├── GETTING_STARTED.md    # Schnellstart-Anleitung
├── App.tsx               # Anwendungseinstieg
└── src/
    ├── config/           # Umgebungsvariablen-Konfiguration
    ├── api/              # API-Client
    ├── components/       # UI-Komponenten
    ├── hooks/            # Custom Hooks
    ├── navigation/       # Navigationskonfiguration
    ├── screens/          # Seitenkomponenten
    ├── styles/           # Theme und Styles
    └── types/            # Typdefinitionen

Kontrollpunkt ✅: Bestätigen Sie, dass folgende Dateien vorhanden sind:

DateiBackendFrontend
package.json
tsconfig.json
.env.example
README.md
GETTING_STARTED.md
Testdateien
Prisma Schema-

Schritt 4: Backend-Dienst starten

Befolgen Sie die Anleitung in backend/GETTING_STARTED.md, um den Dienst zu starten.

bash
# Backend-Verzeichnis betreten
cd artifacts/backend

# Abhängigkeiten installieren
npm install

# Umgebungsvariablen konfigurieren
cp .env.example .env

# Datenbank initialisieren
npx prisma generate
npx prisma migrate dev
npm run db:seed

# Entwicklungsserver starten
npm run dev

Was Sie sehen sollten:

Server running on http://localhost:3000
Environment: development
Database connected

Kontrollpunkt ✅: Greifen Sie auf den Health-Check-Endpunkt zu, um den Dienst zu bestätigen.

bash
curl http://localhost:3000/health

Sollte zurückgeben:

json
{
  "status": "ok",
  "timestamp": "2024-01-29T12:00:00.000Z"
}

Schritt 5: Frontend-Anwendung starten

Befolgen Sie die Anleitung in client/GETTING_STARTED.md, um die Anwendung zu starten.

bash
# Öffnen Sie ein neues Terminal, betreten Sie das Frontend-Verzeichnis
cd artifacts/client

# Abhängigkeiten installieren
npm install

# Umgebungsvariablen konfigurieren
cp .env.example .env

# Entwicklungsserver starten
npm start

Was Sie sehen sollten: Metro Bundler startet und zeigt Ausführungsoptionen an.

› Metro waiting on exp://192.168.x.x:19000
› Scan the QR code above with Expo Go (Android) or the Camera app (iOS)
› Press a │ open Android
› Press i │ open iOS simulator
› Press w │ open web

Logs for your project will appear below.

Wählen Sie die Ausführungsplattform:

  • Drücken Sie w - Öffnen im Browser (am einfachsten zum Testen)

Kontrollpunkt ✅: Die Anwendung kann im Browser geöffnet werden und zeigt die Frontend-Benutzeroberfläche an.

Schritt 6: Frontend-Backend-Integration testen

  1. API-Dokumentation aufrufen: http://localhost:3000/api-docs

    • Swagger UI-Dokumentation anzeigen
    • Bestätigen, dass alle Endpunkte definiert sind
  2. Frontend-Funktionalität testen:

    • Neue Daten erstellen
    • Daten bearbeiten
    • Daten löschen
    • Listenaktualisierung
  3. Konsolenprotokolle prüfen:

    • Gibt es API-Aufruffehler im Frontend?
    • Gibt es Anfrageprotokolle im Backend?
    • Gibt es unbehandelte Ausnahmen?

Schritt 7: Kontrollpunkte bestätigen

Wenn der AI-Assistent bestätigt, dass die Code-Phase abgeschlossen ist, sehen Sie:

✅ Code-Phase abgeschlossen

Generierte Dateien:
- Backend: artifacts/backend/ (Express + Prisma + TypeScript)
- Frontend: artifacts/client/ (React Native + Expo + TypeScript)

Kontrollpunktoptionen:
[1] Weiter - Weiter zur Validation-Phase
[2] Wiederholen - Code neu generieren
[3] Pausieren - Aktuellen Status speichern

Wählen Sie Weiter, um zur nächsten Phase zu gelangen.

Kontrollpunkte ✅

Nach Abschluss der Code-Phase sollten Sie:

  • [ ] Backend-Code kann normal gestartet werden (npm run dev)
  • [ ] Frontend-Anwendung kann im Browser geöffnet werden
  • [ ] Health-Check-Endpunkt gibt normale Antwort zurück
  • [ ] API-Dokumentation ist zugänglich (/api-docs)
  • [ ] Frontend kann Backend-API aufrufen
  • [ ] Frontend verarbeitet Loading- und Error-Zustände
  • [ ] Testdateien sind vorhanden und können ausgeführt werden (npm test)

Häufige Probleme

Problem 1: Abhängigkeitsinstallation fehlgeschlagen

Symptom: npm install meldet Fehler

Lösung:

bash
# Cache löschen und erneut versuchen
rm -rf node_modules package-lock.json
npm cache clean --force
npm install

Problem 2: Prisma-Migration fehlgeschlagen

Symptom: npx prisma migrate dev meldet Fehler

Lösung:

bash
# Datenbank zurücksetzen
npx prisma migrate reset

# Oder Datenbankdatei manuell löschen
rm prisma/dev.db
npx prisma migrate dev

Problem 3: Frontend kann Backend nicht verbinden

Symptom: Frontend meldet Network Error oder ECONNREFUSED

Checkliste:

  1. Bestätigen Sie, dass Backend gestartet ist: curl http://localhost:3000/health
  2. Prüfen Sie die .env-Konfiguration des Frontends: EXPO_PUBLIC_API_URL=http://localhost:3000/api
  3. Wenn Sie mit echtem Gerät testen, ändern Sie auf LAN-IP (z.B. http://192.168.1.100:3000/api)

Problem 4: Tests fehlgeschlagen

Symptom: npm test meldet Fehler

Lösung:

  • Bestätigen Sie, dass Testdateien vorhanden sind: src/__tests__/
  • Prüfen Sie, ob Testabhängigkeiten installiert sind: npm install --save-dev vitest @testing-library/react-native
  • Sehen Sie die Fehlermeldungen an und beheben Sie die Probleme im Code

Spezielle Anforderungen des Code Agent

Der Code Agent hat einige besondere Einschränkungen und Anforderungen, die besonders beachtet werden müssen:

1. Template-Dateien müssen gelesen werden

Vor der Code-Generierung muss der Code Agent vollständig lesen:

  • skills/code/references/backend-template.md
  • skills/code/references/frontend-template.md

Diese beiden Template-Dateien zeigen die produktionsbereite Projektstruktur und Beispielcode.

2. Authentifizierung und Autorisierung verboten

Umfangsbeschränkung

Der Code Agent verbietet strikt das Hinzufügen von:

  • Login/Registrierungsfunktionen
  • Token-Authentifizierung
  • Berechtigungssteuerung
  • Komplexe Zustandsverwaltung (wie Redux)

Diese Funktionen werden in zukünftigen Iterationen hinzugefügt. In der MVP-Phase konzentrieren wir uns nur auf die Kerngeschäftslogik.

3. Code-Qualitätsanforderungen

Der generierte Code muss folgende Anforderungen erfüllen:

AnforderungBeschreibung
TypeScriptStrikter Modus, kein any-Typ
TestsHealth-Check, CRUD-Endpunkte, Eingabevalidierungs-Tests
API-DokumentationSwagger/OpenAPI-Spezifikation (/api-docs)
FehlerbehandlungEinheitliche Fehlerbehandlungs-Middleware
LoggingStrukturiertes Logging (winston/pino)
SicherheitZod-Validierung, helmet, CORS-Whitelist
DokumentationREADME und Schnellstart-Anleitung

Checkliste für Code-Generierung

Der Code Agent generiert Code unter Berücksichtigung folgender Checkliste.

Backend-Pflichtelemente

  • [ ] Umgebungsvariablen-Unterstützung (dotenv)
  • [ ] Abhängigkeitsversionsfixierung (Prisma 5.x)
  • [ ] Typdefinitionen (JSON-Feld-Verarbeitung)
  • [ ] Kernabhängigkeiten: Express + Prisma + Zod + Helmet
  • [ ] API-Endpunkte: Health-Check + CRUD
  • [ ] Einheitliches Antwortformat
  • [ ] Eingabevalidierung (Zod Schema)
  • [ ] Fehlerbehandlungs-Middleware
  • [ ] Testdateien (Health-Check + CRUD + Validierung)
  • [ ] Swagger API-Dokumentation
  • [ ] Seed-Daten (prisma/seed.ts)

Frontend-Pflichtelemente

  • [ ] Kernabhängigkeiten: React Native Web + Expo + React Navigation
  • [ ] Persistenter Speicher (AsyncStorage)
  • [ ] Navigationskonfiguration (React Navigation 6+)
  • [ ] Sichere Bereiche (SafeAreaView)
  • [ ] API-Client (Axios + Interceptors)
  • [ ] Custom Hooks (Datenmanagement)
  • [ ] Basis-UI-Komponenten (Button, Input, Card, Loading)
  • [ ] Seitenkomponenten (mindestens Hauptseite und Detailseite)
  • [ ] Loading- und Error-Zustandsbehandlung
  • [ ] Pull-to-Refresh (RefreshControl)
  • [ ] Testdateien (Seitenrendering + Komponenten + Hooks)

Testen und Qualitätssicherung

Auch in der MVP-Phase generiert der Code Agent grundlegende Testcodes.

Backend-Testbeispiel

typescript
// src/__tests__/items.test.ts
import { describe, it, expect } from 'vitest';
import request from 'supertest';
import app from '../app';

describe('Items API', () => {
  it('should return health check', async () => {
    const res = await request(app).get('/health');
    expect(res.status).toBe(200);
  });

  it('should create a new item', async () => {
    const res = await request(app)
      .post('/api/items')
      .send({ title: 'Test Item', amount: 100 });

    expect(res.status).toBe(201);
    expect(res.body.data).toHaveProperty('id');
  });

  it('should reject invalid item', async () => {
    const res = await request(app)
      .post('/api/items')
      .send({ title: '' }); // Fehlendes Pflichtfeld

    expect(res.status).toBe(400);
  });
});

Frontend-Testbeispiel

typescript
// src/screens/__tests__/HomeScreen.test.tsx
import React from 'react';
import { render, screen } from '@testing-library/react-native';
import HomeScreen from '../HomeScreen';

describe('HomeScreen', () => {
  it('should render without crashing', () => {
    render(<HomeScreen />);
    expect(screen.getByText(/home/i)).toBeTruthy();
  });

  it('should show loading state initially', () => {
    render(<HomeScreen />);
    expect(screen.getByTestId('loading-indicator')).toBeTruthy();
  });
});

Schnellstart-Anleitung

Jedes generierte Projekt enthält GETTING_STARTED.md, das Ihnen hilft, das Projekt innerhalb von 5 Minuten auszuführen.

Backend-Schnellstart

bash
# 1. Projekt klonen
cd artifacts/backend

# 2. Abhängigkeiten installieren
npm install

# 3. Umgebungsvariablen konfigurieren
cp .env.example .env

# 4. Datenbank initialisieren
npx prisma generate
npx prisma migrate dev
npm run db:seed

# 5. Dienst starten
npm run dev

Frontend-Schnellstart

bash
# 1. Projekt klonen
cd artifacts/client

# 2. Abhängigkeiten installieren
npm install

# 3. Umgebungsvariablen konfigurieren
cp .env.example .env

# 4. Anwendung starten
npm start

Hinweis: Stellen Sie sicher, dass das Backend bereits gestartet ist, sonst kann das Frontend die API nicht verbinden.

Zusammenfassung dieser Lektion

Die Code-Phase ist eine der Kernphasen der Pipeline. Sie wandelt die Designs der vorangegangenen Phasen in ausführbaren Code um.

Wichtige Punkte:

  1. Eingabe und Ausgabe: Der Code Agent generiert Front- und Backend-Code basierend auf UI-Schema, Tech-Design und Prisma-Schema
  2. Technologie-Stack: Backend verwendet Express + Prisma, Frontend verwendet React Native Web + Expo
  3. Umfangssteuerung: Implementieren Sie nur die Funktionen aus PRD und UI-Schema, fügen Sie keine Authentifizierung und Autorisierung hinzu
  4. Qualitätssicherung: Generieren Sie Tests, API-Dokumentation und Schnellstart-Anleitungen
  5. Validierungsstandards: Backend kann gestartet werden, Frontend kann gerendert werden, API kann aufgerufen werden

Ausblick auf die nächste Lektion

In der nächsten Lektion lernen wir die Validation-Phase.

Sie werden lernen:

  • Wie Sie die Qualität des generierten Codes validieren
  • Abhängigkeitsinstallation und Typprüfung
  • Prisma-Schema-Validierung
  • Generierung von Validierungsberichten

Anhang: Quellcode-Referenz

Klicken Sie hier, um Quellcode-Positionen anzuzeigen

Aktualisiert am: 2026-01-29

FunktionDateipfadZeilennummer
Code Agent-Definitionagents/code.agent.md1-82
Code Skillskills/code/skill.md1-1488
Backend-Templateskills/code/references/backend-template.md1-670
Frontend-Templateskills/code/references/frontend-template.md1-1231
Pipeline-Definitionpipeline.yaml63-77

Wichtige Einschränkungen:

  • Implementieren Sie nur Funktionen aus PRD und UI-Schema (code.agent.md:25)
  • Verboten Sie das Hinzufügen von Authentifizierung, Autorisierung oder komplexer Zustandsverwaltung (code.agent.md:28)
  • Lesen Sie Template-Dateien vollständig (code/skill.md:1476)
  • Alle Datenbankoperationen durch Service-Schicht (backend-template.md:665)
  • Alle Eingaben müssen durch Zod validiert werden (backend-template.md:666)

Wichtige Checklisten:

  • Backend-Pflichtelemente: Umgebungsvariablen, Abhängigkeitsfixierung, Typdefinitionen (code.agent.md:37-47)
  • Frontend-Pflichtelemente: Kernabhängigkeiten, Importpfade, Konfigurationsdateien (code.agent.md:50-64)
  • Prävention häufiger Fehler (code.agent.md:65-74)