{
  "overview": "AGENA ist eine **agentische KI-Plattform**, die autonom Code generiert, Pull Requests erstellt und Ihren Softwareentwicklungs-Workflow verwaltet. Sie wurde für Entwicklungsteams konzipiert, die ihre Liefergeschwindigkeit erhöhen möchten, ohne Kompromisse bei der Codequalität einzugehen.\n\n### Was AGENA leistet\n- **Übernimmt eine Aufgabe** aus Ihrem Backlog (Azure DevOps, Jira oder manuell erstellt)\n- **Führt eine KI-Agenten-Pipeline aus**: PM → Developer → Reviewer → Finalizer\n- **Generiert produktionsreifen Code**, erstellt einen Branch, committet und eröffnet einen PR\n- **Überprüft die eigene Ausgabe** mit einem dedizierten Reviewer-Agenten vor der Einreichung\n- **Benachrichtigt Ihr Team** über Slack, Teams oder Telegram\n- **Lernt aus Ihrer Codebasis** mittels Vektorspeicher für kontextbewusste Generierung\n\n### Kernkonzepte\n| Konzept | Beschreibung |\n|---------|-------------|\n| **Task** | Ein Arbeitselement, importiert aus Jira/Azure DevOps oder manuell erstellt. Enthält Titel, Beschreibung, Akzeptanzkriterien und Kontext. |\n| **Agent** | Eine KI-Rolle (PM, Developer, Reviewer, QA, Finalizer) mit eigenem LLM-Modell, System-Prompt und Verhalten. Pro Organisation konfigurierbar. |\n| **Flow** | Eine visuelle Automatisierungspipeline (n8n-Stil), die Agenten, Bedingungen, HTTP-Aufrufe und Integrationen zu benutzerdefinierten Workflows verbindet. |\n| **Pixel Agent** | Der animierte visuelle Arbeitsbereich, der Agenten als Pixel-Charaktere zeigt, die in Echtzeit an Aufgaben arbeiten. |\n| **Organization** | Ein mandantenfähiger Arbeitsbereich. Jede Organisation verfügt über eigene Integrationen, Teammitglieder, Aufgaben und Abrechnung. |\n| **Repo Mapping** | Verknüpft ein GitHub/Azure DevOps-Repository mit Ihrer Organisation, damit AGENA weiß, wo Branches und PRs erstellt werden sollen. |\n| **Playbook** | Organisationsweite Programmierregeln und Konventionen. Agenten referenzieren das Playbook bei der Codegenerierung. |\n| **Sprint** | Aktiver Sprint aus Azure DevOps oder Jira. Aufgaben können aus dem Sprint importiert und auf dem Sprint Board verfolgt werden. |\n\n### So funktioniert es — Ende zu Ende\n1. Sie erstellen eine Aufgabe (manuell, aus Jira/Azure oder per ChatOps: \\",
  "signup": "### Konto erstellen\n\n1. Gehen Sie zu [agena.dev/signup](${SITE}/signup)\n2. Geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein\n3. Sie werden automatisch einer neuen Organisation zugewiesen\n4. Schließen Sie den Onboarding-Assistenten ab, um Ihre erste Integration zu konfigurieren\n\n### Nach der Registrierung\n- Sie sind der **Eigentümer** Ihrer Organisation\n- Laden Sie Teammitglieder über **Dashboard → Team** ein\n- Konfigurieren Sie Integrationen unter **Dashboard → Integrations**",
  "quickstart-saas": "### AGENA SaaS verwenden (agena.dev)\n\n**Schritt 1 — Registrieren** unter [agena.dev/signup](${SITE}/signup)\n\n**Schritt 2 — Integrationen konfigurieren** (Dashboard → Integrations)\n- **AI-Tab**: Fügen Sie Ihren OpenAI-API-Schlüssel hinzu (erforderlich) und optional Gemini\n- **Task-Tab**: Verbinden Sie GitHub (für PR-Erstellung) und optional Azure DevOps / Jira\n\n**Schritt 3 — Repository zuordnen** (Dashboard → Mappings)\n- Wählen Sie Ihren GitHub-Eigentümer und Ihr Repository aus\n- Dies teilt AGENA mit, wo Branches und PRs erstellt werden sollen\n\n**Schritt 4 — Aktiven Sprint festlegen** (Dashboard → Profile)\n- Wählen Sie Ihr Azure/Jira-Projekt, Team und Sprint aus\n- Der aktive Sprint wird automatisch erkannt\n\n**Schritt 5 — Erste Aufgabe erstellen**\n- Gehen Sie zu **Dashboard → Tasks** → Create Task\n- Geben Sie einen Titel und eine Beschreibung ein (seien Sie konkret bei Ihren Anforderungen)\n- Klicken Sie auf **Assign to AI** — AGENA reiht die Aufgabe ein, führt die Pipeline aus und erstellt einen PR\n\n**Schritt 6 — Fortschritt überwachen**\n- Verfolgen Sie den Aufgabenstatus in der Aufgabenliste oder der **Office**-Ansicht\n- Nach Abschluss sehen Sie den PR-Link",
  "quickstart-selfhost": "### Selbst gehostete Bereitstellung\n\n#### Voraussetzungen\n- Docker & Docker Compose\n- Ein Server mit mindestens 4 GB RAM\n- Domain mit SSL (für Webhook-Callbacks)\n\n#### Installation\n\n\\",
  "office": "### Office — Pixel Agent Arbeitsbereich\n\nDas **Office** ist AGENAs visueller Arbeitsbereich, in dem Ihre KI-Agenten als animierte Pixel-Charaktere erscheinen. Jeder Agent hat einen Schreibtisch, bewegt sich umher und zeigt visuell an, woran er arbeitet.\n\n#### Was Sie sehen\n- **Agenten-Charaktere** — Jede KI-Rolle (PM, Developer, Reviewer usw.) ist ein Pixel-Charakter an seinem Schreibtisch\n- **Aktivitätsindikatoren** — Agenten leuchten oder animieren sich, wenn sie aktiv eine Aufgabe bearbeiten\n- **Aufgabenfortschrittsbalken** — Echtzeit-Pipeline-Fortschritt: fetch → analyze → generate → review → finalize\n- **Warteschlangenzähler** — Zeigt an, wie viele Aufgaben in der Warteschlange warten\n- **Letzte Abschlüsse** — Schnellzugriff auf kürzlich abgeschlossene Aufgaben und deren PR-Links\n\n#### Interaktive Elemente\n- **Klicken Sie auf einen Agenten**, um seine aktuelle Aufgabe und seinen Status zu sehen\n- **Fahren Sie mit der Maus über Schreibtische** für schnelle Agenteninformationen\n- **Create Task**-Schaltfläche für schnelle Aufgabenerstellung, ohne die Office-Ansicht zu verlassen\n- Das Office-Layout aktualisiert sich in Echtzeit per WebSocket — kein Neuladen erforderlich\n\n#### Wann das Office verwenden\nDas Office ist ideal für:\n- Überwachung aktiver Agentenarbeit in Echtzeit\n- Demo-/Präsentationsmodus, um AGENA Stakeholdern vorzuführen\n- Schneller Überblick über den Status Ihrer KI-Belegschaft\n\n#### Navigation\nDashboard → Office (erster Eintrag im Workspace-Bereich der Seitenleiste)",
  "tasks": "### Aufgaben\n\nDie Aufgabenverwaltungszentrale für alle Ihre KI-generierten Arbeitselemente.\n\n#### Aufgaben erstellen\n1. **Manuell**: Klicken Sie auf \"Create Task\" → Titel + Beschreibung eingeben → An KI zuweisen\n2. **Import aus Azure DevOps**: Projekt/Team/Sprint auswählen → Importieren\n3. **Import aus Jira**: Projekt/Board/Sprint auswählen → Importieren\n4. **ChatOps**: Senden Sie \\",
  "sprints": "### Sprint Board\n\nKanban-Board, das alle Aufgaben in Ihrem aktiven Sprint nach Status gruppiert anzeigt.\n\n#### Einrichtung\n1. Gehen Sie zu **Dashboard → Profile**\n2. Wählen Sie Ihr Azure DevOps- oder Jira-Projekt, Team und Sprint\n3. Das Sprint Board lädt automatisch Arbeitselemente aus dem ausgewählten Sprint\n\n#### Funktionen\n- **Drag-and-Drop** für Statusänderungen von Aufgaben\n- **Alle Sprint-Elemente importieren** mit einem Klick\n- **An KI zuweisen** direkt vom Board aus\n- **Filtern** nach Status, Bearbeiter oder Arbeitselementtyp\n- **Echtzeit-Aktualisierungen** per WebSocket",
  "sprint-performance": "### Sprint-Leistung\n\nAnalyse-Dashboard für Ihre Sprint-Velocity und die Effektivität der KI-Agenten.\n\n#### Metriken\n- **Abschlussrate** — Prozentsatz der abgeschlossenen Aufgaben im Verhältnis zur Gesamtzahl\n- **KI-Erfolgsrate** — Wie oft die KI-Pipeline fehlerfrei durchläuft\n- **Durchschnittliche Zykluszeit** — Von der Aufgabenerstellung bis zum PR-Merge\n- **Token-Effizienz** — Kosten pro erfolgreich abgeschlossener Aufgabe\n- **PR-Merge-Rate** — Wie viele KI-generierte PRs gemergt werden",
  "refinement": "### Refinement\n\nKI-gestütztes Sprint-Refinement-Tool, das Backlog-Elemente analysiert und Story Points vorschlägt.\n\n#### Funktionsweise\n1. Wählen Sie Ihre Quelle (Azure DevOps oder Jira)\n2. Wählen Sie Projekt → Team/Board → Sprint\n3. Klicken Sie auf **Load Items** — zeigt alle nicht geschätzten Elemente an\n4. Wählen Sie Elemente zur Analyse aus → Klicken Sie auf **Run Refinement**\n5. Die KI analysiert jedes Element und liefert:\n   - **Vorgeschlagene Story Points** mit Konfidenzwert\n   - **Zusammenfassung** des Elementinhalts\n   - **Mehrdeutigkeiten** und **Fragen** zur Klärung\n   - **Bereit für Planung**-Indikator\n\n#### Rückschreibung\nNach Überprüfung der Vorschläge klicken Sie auf **Write Back**, um die Story Points direkt in Azure DevOps oder Jira zu aktualisieren.",
  "agents": "### KI-Agenten\n\nKonfigurieren Sie die KI-Agenten, die Ihre Pipeline antreiben.\n\n#### Standard-Agentenrollen\n| Rolle | Beschreibung |\n|------|-------------|\n| **PM** | Analysiert Anforderungen, sammelt Kontext, erstellt Implementierungsplan |\n| **Developer** | Generiert produktionsreifen Code basierend auf dem Plan |\n| **Reviewer** | Überprüft Code auf Qualität, Sicherheit und Best Practices |\n| **QA** | Testet und validiert den generierten Code |\n| **Finalizer** | Erstellt Branches, committet und eröffnet Pull Requests |\n\n#### Konfiguration pro Agent\n- **Provider**: OpenAI oder Gemini\n- **Model**: gpt-5, gpt-4o, gemini-2.5-pro usw.\n- **Aktiviert/Deaktiviert**: Jeden Agenten ein- oder ausschalten\n- **Create PR**: Ob dieser Agentenlauf einen PR erstellen soll\n\n#### Benutzerdefinierte Agentenmodelle\nJeder Agent kann ein anderes Modell verwenden. Zum Beispiel:\n- PM: gpt-4o-mini (schnell, günstig für Analyse)\n- Developer: gpt-5 (beste Qualität für Codegenerierung)\n- Reviewer: gpt-4o (gutes Gleichgewicht für Reviews)",
  "prompt-studio": "### Prompt Studio\n\nBearbeiten und verwalten Sie die System-Prompts, die von jedem KI-Agenten verwendet werden. Alle Prompts werden in der Datenbank gespeichert und können zur Laufzeit ohne erneutes Deployment geändert werden.\n\n#### Funktionen\n- **Live-Bearbeitung** — Änderungen werden sofort wirksam\n- **Versionshistorie** — Sehen Sie, wann Prompts zuletzt geändert wurden\n- **Agenten-spezifische Prompts** — Jede Agentenrolle hat ihre eigene Prompt-Vorlage\n- **Variableninterpolation** — Verwenden Sie \\",
  "flows": "### Flow Builder\n\nVisueller Automatisierungs-Builder zum Erstellen benutzerdefinierter KI-Workflows (n8n-Stil).\n\n#### Knotentypen\n| Knoten | Beschreibung |\n|------|-------------|\n| **Trigger** | Einstiegspunkt des Flows |\n| **Agent** | LLM-gestützte Analyse/Generierung (Modell, Provider, Prompt auswählen) |\n| **Azure DevOps** | Branch erstellen, PR erstellen, PR abschließen, PR verwerfen |\n| **GitHub** | Branch erstellen, PR erstellen, PR mergen |\n| **HTTP** | REST-API-Aufrufe mit Authentifizierung (Bearer, API-Key, Basic) |\n| **Condition** | Verzweigungslogik (eq, neq, contains, regex usw.) |\n| **Notify** | Webhook-, Slack- oder E-Mail-Benachrichtigungen |\n| **Azure Update** | Arbeitselementstatus aktualisieren + Kommentar hinzufügen |\n\n#### Knotenkommunikation\nKnoten übergeben Daten über \\",
  "templates": "### Vorlagen\n\nWiederverwendbare Aufgaben- und Flow-Vorlagen für gängige Entwicklungsmuster.\n\n#### Verwendung\n- Durchsuchen Sie vorgefertigte Vorlagen für häufige Aufgaben (Bugfix, Feature, Refactoring)\n- Erstellen Sie eigene Vorlagen aus erfolgreichen Aufgabenkonfigurationen\n- Wenden Sie Vorlagen beim Erstellen neuer Aufgaben an, um Beschreibung, Kontext und Einstellungen vorab auszufüllen",
  "dora": "### DORA-Metriken\n\nDevOps Research and Assessment (DORA) Metriken-Dashboard.\n\n#### Verfügbare Ansichten\n- **Overview** — Übergeordnete DORA-Zusammenfassung\n- **Project** — Liefermetriken pro Projekt\n- **Development** — Code-Velocity, Commit-Frequenz, PR-Durchsatz\n- **Quality** — Code-Review-Zeit, Fehlerdichte, Testabdeckung\n- **Bugs** — Bug-Tracking, Lösungszeit, Schweregrad-Verteilung\n- **Team** — Leistung und Arbeitsauslastung pro Entwickler\n\n#### Erfasste Metriken\n- **Deployment Frequency** — Wie oft Code deployt wird\n- **Lead Time for Changes** — Zeit vom Commit bis zur Produktion\n- **Change Failure Rate** — Prozentsatz der Deployments, die zu Fehlern führen\n- **Mean Time to Recovery** — Wie schnell Fehler behoben werden",
  "integrations": "### Integrationen einrichten\n\nKonfigurieren Sie externe Dienste unter **Dashboard → Integrations**.\n\n#### AI-Tab\n- **OpenAI** — API-Schlüssel + Basis-URL (erforderlich für Codegenerierung)\n- **Gemini** — Google AI API-Schlüssel (optionaler Fallback-Provider)\n- **Playbook** — Organisationsweite Programmierregeln und Konventionen. Die KI-Agenten referenzieren diese Regeln bei der Codegenerierung.\n\n#### Task-Tab\n- **GitHub** — Owner + Personal Access Token (PAT) mit \\",
  "repo-mapping": "### Repository-Zuordnung\n\nDie Repository-Zuordnung teilt AGENA mit, mit welcher Codebasis für jede Aufgabe gearbeitet werden soll. Ohne Zuordnung weiß AGENA nicht, wo Branches und PRs erstellt werden sollen.\n\n#### Einrichtung\n1. Gehen Sie zu **Dashboard → Mappings**\n2. Klicken Sie auf **Add Mapping**\n3. Konfigurieren Sie die folgenden Felder:\n\n| Feld | Beschreibung | Beispiel |\n|-------|-------------|--------|\n| **Provider** | GitHub oder Azure DevOps | GitHub |\n| **Owner** | GitHub-Organisation/Benutzer oder Azure-Projekt | \\",
  "team-management": "### Team & Berechtigungen\n\nVerwalten Sie die Teammitglieder und deren Zugriffsebenen in Ihrer Organisation.\n\n#### Rollen\n| Rolle | Berechtigungen |\n|------|-------------|\n| **Owner** | Vollzugriff, Abrechnung, Organisation löschen |\n| **Admin** | Team, Integrationen, Einstellungen verwalten |\n| **Member** | Aufgaben erstellen, Ergebnisse ansehen, Agenten verwenden |\n| **Viewer** | Lesezugriff auf Aufgaben und Dashboards |\n\n#### Mitglieder einladen\n1. Gehen Sie zu **Dashboard → Team**\n2. Klicken Sie auf **Invite** → E-Mail-Adresse eingeben\n3. Wählen Sie die zuzuweisende Rolle aus\n4. Der Eingeladene erhält eine E-Mail mit einem Registrierungs-/Beitrittslink\n\n#### Berechtigungen\nDetaillierte Berechtigungen verfügbar unter **Dashboard → Permissions**:\n- \\",
  "profile-settings": "### Profil & Einstellungen\n\nKonfigurieren Sie Ihre persönlichen Arbeitsbereich-Einstellungen unter **Dashboard → Profile**.\n\n#### Aktive Sprint-Auswahl\n- **Azure DevOps**: Projekt → Team → Sprint auswählen (aktiver Sprint wird automatisch erkannt)\n- **Jira**: Projekt → Board → Sprint auswählen (aktiver Sprint wird automatisch erkannt)\n\n#### Arbeitsbereich-Einstellungen\n- **E-Mail / Web-Push / In-App-Benachrichtigungen** — Pro Kanal umschalten\n- **Tägliche Zusammenfassungs-E-Mail** — Erhalten Sie eine tägliche Übersicht der Aufgabenaktivitäten\n- **Neue Aufgaben automatisch zuweisen** — Importierte Aufgaben automatisch für die KI einreihen\n- **Standard-PR erstellen** — Ob KI-Aufgaben standardmäßig PRs erstellen sollen\n- **Bevorzugter Provider & Modell** — Standard-KI-Modell für neue Aufgaben\n\n#### Branch-Benennungsmuster\nWählen Sie aus Voreinstellungen oder definieren Sie ein benutzerdefiniertes Muster:\n- \\",
  "chatops": "### ChatOps — Teams / Slack / Telegram\n\nSteuern Sie AGENA direkt von Ihrer Chat-Plattform aus.\n\n#### Verfügbare Befehle\n| Befehl | Beschreibung |\n|---------|-------------|\n| \\",
  "pipeline": "### KI-Agenten-Pipeline\n\nAGENA verwendet ein zweischichtiges Orchestrierungssystem:\n\n#### CrewAI — Agentenrollen\nJeder Agent hat eine spezifische Rolle, ein Modell und einen System-Prompt:\n- **PM Agent**: Analysiert die Aufgabe, sammelt Codebasis-Kontext, erstellt einen detaillierten Implementierungsplan\n- **Developer Agent**: Generiert produktionsreifen Code gemäß dem Plan und den Repository-Konventionen\n- **Reviewer Agent**: Überprüft generierten Code auf Fehler, Sicherheitsprobleme und Best Practices\n- **Finalizer Agent**: Erstellt einen Git-Branch, committet Code und eröffnet einen Pull Request\n\n#### LangGraph — Ausführungspipeline\n\\",
  "services": "### Service-Architektur\n\nAGENA ist ein Monorepo mit 6 pip-installierbaren Python-Paketen:\n\n| Paket | Beschreibung |\n|---------|-------------|\n| \\",
  "selfhost-deploy": "### Selbst gehostete Bereitstellung\n\n#### Docker Compose Services\n\\",
  "admin-panel": "### Plattform-Administrationspanel\n\nDas Administrationspanel ist die Super-Admin-Oberfläche zur Verwaltung der gesamten AGENA-Plattform über alle Organisationen hinweg. Es ist erreichbar unter **Dashboard → Admin**.\n\n#### Zugriffsberechtigung\nNur Benutzer mit \\",
  "admin-orgs": "### Organisationen verwalten\n\n#### Organisationen anzeigen\nNavigieren Sie zum Tab **Admin → Organizations**, um alle registrierten Organisationen zu sehen.\n\nJede Organisationskarte zeigt:\n- **Organisationsname** und ID\n- **Mitgliederanzahl** — Wie viele Benutzer dieser Organisation angehören\n- **Aufgabenanzahl** — Gesamtzahl der von dieser Organisation erstellten Aufgaben\n- **Erstellungsdatum** — Wann die Organisation registriert wurde\n- **Eigentümer** — E-Mail-Adresse des Organisationseigentümers\n\n#### Mandantenfähigkeit\nAGENA ist vollständig mandantenfähig. Jede Organisation ist komplett isoliert:\n- **Getrennte Daten** — Aufgaben, Flows, Agenten, Integrationen sind organisationsbezogen\n- **Getrennte Abrechnung** — Jede Organisation hat ihren eigenen Abonnementplan\n- **Getrennte Integrationen** — Jede Organisation verbindet ihre eigenen GitHub-, Jira-, Slack-Konten usw.\n- **Keine organisationsübergreifende Sichtbarkeit** — Benutzer in Organisation A können nichts von Organisation B sehen\n\n#### Häufige Admin-Aufgaben\n- **Probleme untersuchen** — Wenn ein Benutzer ein Problem meldet, finden Sie seine Organisation und prüfen Sie die Aufgabenprotokolle\n- **Wachstum überwachen** — Verfolgen Sie neue Organisationsregistrierungen und die Anzahl aktiver Mandanten\n- **Missbrauch erkennen** — Organisationen mit ungewöhnlich hohen Aufgabenzahlen oder API-Nutzung identifizieren",
  "admin-users": "### Benutzer verwalten\n\n#### Benutzer anzeigen\nNavigieren Sie zum Tab **Admin → Users**, um alle registrierten Benutzer der gesamten Plattform zu sehen.\n\nJeder Benutzereintrag zeigt:\n- **Vollständiger Name** und E-Mail-Adresse\n- **Organisation**, der sie angehören\n- **Rolle** innerhalb ihrer Organisation (Owner, Admin, Member, Viewer)\n- **Plattform-Admin-Kennzeichnung** — Ob sie Plattform-Admin-Zugriff haben\n- **Letzte Anmeldung** — Wann sie sich zuletzt authentifiziert haben\n\n#### Benutzerlebenszyklus\n1. Der Benutzer registriert sich unter \\",
  "auth-api": "### Authentifizierungs-API\n\n\\",
  "tasks-api": "### Aufgaben-API\n\n\\",
  "flows-api": "### Flows-API\n\n\\",
  "integrations-api": "### Integrationen-API\n\n\\",
  "sdk-install": "### Installation\n\nInstallieren Sie das AGENA SDK über npm:\n\n\\`\\`\\`bash\nnpm install @agena/sdk\n\\`\\`\\`\n\nOder mit yarn:\n\n\\`\\`\\`bash\nyarn add @agena/sdk\n\\`\\`\\`\n\n#### Voraussetzungen\n- Node.js 18+ oder jede Umgebung mit `fetch`-Unterstützung\n- Ein AGENA-Konto mit einem API-Token\n\n#### Ihren API-Token erhalten\n1. Melden Sie sich in Ihrem AGENA-Dashboard an\n2. Gehen Sie zu **Profil & Einstellungen**\n3. Kopieren Sie Ihren API-Token\n\nOder verwenden Sie das SDK, um sich programmatisch anzumelden:\n\n\\`\\`\\`typescript\nconst { access_token } = await AgenaClient.auth.login(\n  'https://api.agena.dev',\n  'you@email.com',\n  'your-password'\n);\n\\`\\`\\`",
  "sdk-quickstart": "### Schnellstart\n\n\\`\\`\\`typescript\nimport { AgenaClient } from '@agena/sdk';\n\n// Client initialisieren\nconst agena = new AgenaClient({\n  apiKey: 'your-token-here',\n});\n\n// Aufgabe erstellen — KI-Agenten generieren Code und erstellen einen PR\nconst task = await agena.tasks.create({\n  title: 'Add user avatar upload',\n  description: 'Allow users to upload and crop a profile avatar image',\n});\n\nconsole.log('Task created:', task.id, task.status);\n\n// Status periodisch abfragen\nconst interval = setInterval(async () => {\n  const updated = await agena.tasks.get(task.id);\n  console.log('Status:', updated.status);\n\n  if (updated.status === 'completed') {\n    console.log('PR ready:', updated.pr_url);\n    clearInterval(interval);\n  }\n}, 5000);\n\\`\\`\\`\n\n#### Einen Flow ausführen\n\n\\`\\`\\`typescript\n// Einen visuellen Automatisierungsflow ausführen\nconst run = await agena.flows.run({ flow_id: 1 });\n\n// Ergebnis prüfen\nconst result = await agena.flows.getRun(run.id);\nconsole.log('Steps:', result.steps.map(s => s.status));\n\\`\\`\\`\n\n#### Agenten überwachen\n\n\\`\\`\\`typescript\n// KI-Agenten in Echtzeit beobachten\nconst live = await agena.agents.liveStatus(task.id);\nlive.agents.forEach(agent => {\n  console.log(agent.role, '→', agent.status);\n});\n// PM → completed\n// Developer → running\n// Reviewer → pending\n\\`\\`\\`",
  "multi-repo": "### Multi-Repository-Orchestrierung\n\nAGENA unterstützt **Multi-Repo-Orchestrierung** — eine einzelne Aufgabe kann gleichzeitig mehrere Repositories ansprechen. Anstatt separate Aufgaben für jedes Repo zu erstellen, beschreiben Sie die Änderung einmal und AGENA führt unabhängige Agent-Pipelines für jedes Repository aus und erzeugt separate Pull Requests.\n\n#### Was ist Multi-Repo?\nIn realen Projekten erstreckt sich ein einzelnes Feature oder eine Fehlerbehebung oft über mehrere Codebasen — eine Backend-API, eine Frontend-App, eine gemeinsame Bibliothek oder Infrastruktur-Konfiguration. Multi-Repo-Orchestrierung ermöglicht es Ihnen, eine Aufgabe allen betroffenen Repositories gleichzeitig zuzuweisen.\n\n#### Einrichtung\n1. **Repository-Mappings hinzufügen** — Gehen Sie zu **Dashboard → Mappings** und fügen Sie jedes Repository hinzu, mit dem AGENA arbeiten soll (GitHub oder Azure DevOps).\n2. **Mehrere Repos bei der Aufgabenerstellung auswählen** — Wenn Sie eine Aufgabe erstellen oder zuweisen, wählen Sie zwei oder mehr gemappte Repositories als Ziele aus.\n3. **AGENA erledigt den Rest** — Jedes ausgewählte Repository erhält seine eigene unabhängige Pipeline-Ausführung.\n\n#### Funktionsweise\n- Jedes Repository führt seine eigene **vollständige Agent-Pipeline** aus (PM → Developer → Reviewer → Finalizer)\n- Jede Pipeline hat **unabhängigen Kontext** — der PM-Agent ruft die spezifische Codebasis, Konventionen und Dateistruktur des Repos ab\n- Jedes Repository erhält seinen **eigenen Branch und Pull Request**\n- Alle Pipelines laufen **parallel** für maximale Geschwindigkeit\n- Das Aufgaben-Dashboard zeigt **Status pro Repo**, sodass Sie den Fortschritt jedes Repositories unabhängig verfolgen können\n\n#### Beispiel-Anwendungsfall\n**Aufgabe**: *\"Rate Limiting zum Login-Endpoint hinzufügen\"*\n\n| Repository | Was AGENA tut |\n|------------|----------------|\n| `backend-api` | Fügt Rate-Limiting-Middleware hinzu, aktualisiert die Login-Route, fügt Redis-Zähler-Logik hinzu |\n| `frontend-app` | Fügt Retry-Logik mit exponentiellem Backoff hinzu, zeigt Rate-Limit-Fehlermeldung für Benutzer an |\n| `shared-types` | Fügt `RateLimitError`-Typdefinition zu den gemeinsamen Fehlertypen hinzu |\n\nErgebnis: 3 separate PRs, einer pro Repo, alle aus einer einzigen Aufgabe.\n\n#### Best Practices\n- **Seien Sie spezifisch in Ihrer Aufgabenbeschreibung** — erwähnen Sie wenn möglich, welche Aspekte für welche Repos gelten\n- **Verwenden Sie ein Playbook** — organisationsweite Coding-Regeln helfen Agenten, Konsistenz über Repos hinweg zu wahren\n- **Überprüfen Sie PRs gemeinsam** — da alle PRs sich auf dieselbe Aufgabe beziehen, überprüfen und mergen Sie sie als Gruppe",
  "task-dependencies": "### Aufgabenabhängigkeiten\n\nAGENA unterstützt **Aufgabenabhängigkeiten** — definieren Sie die Ausführungsreihenfolge zwischen Aufgaben, damit diese automatisch in der richtigen Sequenz ausgeführt werden. Wenn eine Abhängigkeit abgeschlossen ist, wird die nächste Aufgabe in der Kette automatisch eingereiht und ohne manuelles Eingreifen gestartet.\n\n#### Was sind Aufgabenabhängigkeiten?\nIn komplexen Projekten haben Aufgaben oft natürliche Reihenfolge-Anforderungen. Eine Datenbankmigration muss abgeschlossen sein, bevor das Backend-API-Update erfolgt. Das Frontend-Update hängt davon ab, dass die neuen API-Endpunkte bereit sind. E2E-Tests sollten erst ausgeführt werden, nachdem alle Codeänderungen bereitgestellt wurden. Aufgabenabhängigkeiten ermöglichen es Ihnen, diese Beziehungen explizit auszudrücken.\n\n#### Abhängigkeiten festlegen\n1. **Bei der Erstellung** — Wählen Sie beim Erstellen einer neuen Aufgabe eine oder mehrere bestehende Aufgaben als Abhängigkeiten im Feld \"Abhängig von\".\n2. **Auf der Aufgaben-Detailseite** — Öffnen Sie eine beliebige Aufgabe und fügen Sie Abhängigkeiten im Abschnitt Abhängigkeiten hinzu.\n3. **Im Zuweisungs-Popup** — Beim Zuweisen einer Aufgabe können Sie auch deren Abhängigkeiten festlegen.\n\n#### Funktionsweise\n- Der **Worker prüft Abhängigkeiten** vor der Ausführung jeder Aufgabe — wenn Blocker nicht abgeschlossen sind, bleibt die Aufgabe im Status `waiting`\n- Wenn eine blockierende Aufgabe abgeschlossen wird, werden alle abhängigen Aufgaben **automatisch neu bewertet**\n- Aufgaben, deren Abhängigkeiten nun erfüllt sind, werden **automatisch eingereiht** und starten die Ausführung\n- Die Abhängigkeitskette kann beliebig lang sein: Aufgabe A → Aufgabe B → Aufgabe C → Aufgabe D\n- **Zykluserkennung** wird ausgeführt, wenn Sie eine Abhängigkeit hinzufügen — zirkuläre Ketten (A → B → C → A) werden mit einer klaren Fehlermeldung abgelehnt\n\n#### Visueller Abhängigkeitsfluss\nDas Aufgaben-Dashboard zeigt eine visuelle Darstellung der Abhängigkeitsketten:\n- **Grün** (erledigt) — Aufgabe erfolgreich abgeschlossen\n- **Gelb** (läuft) — Aufgabe wird derzeit von KI-Agenten verarbeitet\n- **Grau** (wartet) — Aufgabe wartet auf den Abschluss ihrer Abhängigkeiten\n- Pfeile zwischen Aufgaben zeigen die Richtung des Ausführungsflusses\n\n#### Beispiel\n```\n#31 DB Migration        ✓ erledigt\n     ↓\n#32 Backend API Update  ✓ erledigt\n     ↓\n#33 Frontend Update     ⟳ läuft\n     ↓\n#34 E2E Tests           ⏳ wartet\n```\nIn diesem Beispiel wurde #33 automatisch eingereiht, nachdem #32 abgeschlossen wurde. #34 wird automatisch eingereiht, sobald #33 fertig ist.\n\n#### Best Practices\n- **Halten Sie Ketten fokussiert** — Abhängigkeiten funktionieren am besten für natürlich sequenzielle Arbeit innerhalb desselben Features\n- **Mit Multi-Repo kombinieren** — kombinieren Sie Abhängigkeiten mit Multi-Repo-Orchestrierung für komplexe repo-übergreifende Workflows\n- **Prüfen Sie den visuellen Fluss** — verwenden Sie die Abhängigkeitsvisualisierung, um Ihre Ausführungsreihenfolge vor dem Start der Kette zu überprüfen",
  "sdk-reference": "### API-Referenz\n\n#### AgenaClient\n\n| Methode | Beschreibung |\n|--------|-------------|\n| `new AgenaClient({ apiKey, baseUrl?, timeout? })` | Client-Instanz erstellen |\n| `AgenaClient.auth.login(baseUrl, email, password)` | Statisch: Anmelden und Token erhalten |\n\n#### Tasks\n\n| Methode | Beschreibung |\n|--------|-------------|\n| `agena.tasks.create(params)` | Neue KI-Aufgabe erstellen |\n| `agena.tasks.get(id)` | Aufgabe nach ID abrufen |\n| `agena.tasks.list({ status?, page?, per_page? })` | Aufgaben auflisten |\n| `agena.tasks.cancel(id)` | Laufende Aufgabe abbrechen |\n| `agena.tasks.rerun(id)` | Abgeschlossene/fehlgeschlagene Aufgabe erneut ausführen |\n\n#### Flows\n\n| Methode | Beschreibung |\n|--------|-------------|\n| `agena.flows.run({ flow_id, context? })` | Einen Flow ausführen |\n| `agena.flows.getRun(runId)` | Flow-Ausführungsdetails abrufen |\n| `agena.flows.listRuns()` | Letzte Ausführungen auflisten |\n| `agena.flows.listTemplates()` | Flow-Vorlagen auflisten |\n\n#### Agents\n\n| Methode | Beschreibung |\n|--------|-------------|\n| `agena.agents.run({ task_id })` | Agenten für eine Aufgabe ausführen |\n| `agena.agents.liveStatus(taskId)` | Live-Agentenstatus abrufen |\n\n#### Integrations\n\n| Methode | Beschreibung |\n|--------|-------------|\n| `agena.integrations.list()` | Alle Integrationen auflisten |\n| `agena.integrations.get(provider)` | Bestimmte Integration abrufen |\n| `agena.integrations.githubRepos()` | GitHub-Repositories auflisten |\n| `agena.integrations.githubBranches(owner, repo)` | Branches auflisten |\n\n#### Fehlerbehandlung\n\nAlle Methoden werfen bei Fehlern `AgenaApiError`:\n\n\\`\\`\\`typescript\ntry {\n  await agena.tasks.get(999);\n} catch (err) {\n  if (err.name === 'AgenaApiError') {\n    console.error(err.status, err.detail);\n  }\n}\n\\`\\`\\`"
}
