Co-authored-by: Cursor <cursoragent@cursor.com>
4.2 KiB
Jinkendo Kairo
Operativer Program Director der Jinkendo-Produktfamilie.
Kairo steuert Vorhaben, Programme, Projekte, Meilensteine, Maßnahmen, Backlogs, Reviews, Nachweise und die Zusammenarbeit von Menschen, Arbeitsgruppen und KI-Agenten.
Leitfrage
Welcher nächste Schritt bringt ein Vorhaben aktuell am wirkungsvollsten voran?
Startzustand
Dieses Repository startet mit einem reinen Spezifikations- und Sprint-0-Handover-Paket.
Noch nicht enthalten:
- produktiver Anwendungscode
- endgültiger Technologie-Stack
- vollständige Jinkendo-Foundation
- Mitai- oder Shinkan-Code
- Billing / SSO / zentrale Produktfamilien-Konvergenz
Verbindliche Dokumente für Sprint 0
docs/product/Jinkendo_Kairo_Product_Spec_v0.2.mddocs/architecture/Jinkendo_Foundation_Minimum_Viable_Foundation_v0.2.mddocs/architecture/Kairo_Sprint0_Principle_Gate_v0.1.mddocs/sprints/Jinkendo_Kairo_04_Sprint0_Foundation_v0.3.mddocs/sprints/Sprint0_Vibe_Coder_Handover_v0.1.mddocs/sprints/Sprint0_AP0_1_Project_Setup_Assignment_v0.1.mdCLAUDE.md.cursor/rules/kairo-architecture.mdc
Arbeitsmodus
Kairo wird iterativ entwickelt.
Sprint 0 baut nur das Fundament:
- Tenant
- User
- Actor
- TenantContext
- Auth-Gates
- Capability/Rights Registry
- minimale Feature Registry
- minimale Prompt Registry
- Platzhaltermodell
- Audit
- Migration/Deploy-Grundlage
Vorhaben, Projekte, Meilensteine und Maßnahmen kommen erst nach Sprint 0.
Designprinzipien-Referenzen
Die extrahierten Designprinzipien aus Mitai und Shinkan liegen im Repository unter:
docs/reference/design-principles/
Diese Dokumente sind Referenzen, kein direkter Sprint-Scope.
Verbindlich ist nur, was über das Kairo Sprint-0 Principle Gate oder eine Architecture Decision übernommen wurde.
Deployment & CI
Zwei getrennte Gitea-Workflows (wie Shinkan):
| Workflow | Branch |
|---|---|
| Deploy Development | develop |
| Deploy Production | main |
| Test Suite | nach Deploy + bei Push/PR develop |
Details: docs/DEPLOYMENT.md
Local Development
Voraussetzungen: Docker + Docker Compose.
git clone http://192.168.2.144:3000/Lars/Kairo-Jinkendo.git
cd Kairo-Jinkendo
git checkout develop
# Dev-Stack (PostgreSQL + Backend + Frontend)
docker compose -f docker-compose.dev-env.yml up --build
# Health prüfen
curl http://localhost:8097/api/health
curl http://localhost:3097/api/health
# Tests im Backend-Container
docker compose -f docker-compose.dev-env.yml exec backend pip install -r requirements-dev.txt
docker compose -f docker-compose.dev-env.yml exec backend python -m pytest tests -ra -vv
UI: http://localhost:3097 · API: http://localhost:8097
Interaktive API-Doku (Dev): http://localhost:8097/api/docs
Auth (AP0.2)
Bootstrap (nur wenn noch kein User existiert — .env setzen):
KAIRO_BOOTSTRAP_ADMIN_EMAIL=admin@kairo.local
KAIRO_BOOTSTRAP_ADMIN_PASSWORD=…
KAIRO_BOOTSTRAP_TENANT_SLUG=default
| Endpoint | Methode | Auth | Beschreibung |
|---|---|---|---|
/api/auth/login |
POST | — | E-Mail + Passwort → Session-Token |
/api/auth/logout |
POST | X-Auth-Token |
Session löschen |
/api/me |
GET | X-Auth-Token |
Aktueller User + Tenant-Liste |
/api/me/context |
GET | X-Auth-Token |
TenantContext (Tenant + Human Actor) |
/api/me/tenant |
POST | X-Auth-Token |
Aktiven Tenant wechseln (nur Memberships) |
# Login
curl -s -X POST http://localhost:8097/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@kairo.local","password":"…"}'
# Geschützter Endpoint
curl -s http://localhost:8097/api/me -H "X-Auth-Token: TOKEN"
Regeln: user_id kommt aus der Session, nicht aus Client-Headern. Portalrolle (portal_role) und Tenantrolle (tenant_role) sind getrennt.
AP0.1 – Stand Projektgrundlage
| Bereich | Status |
|---|---|
Git + Gitea (develop / main) |
erledigt |
| Docker Compose (Prod + Dev) | erledigt |
Backend (FastAPI, Migrationen, /api/health) |
erledigt |
| Frontend minimal (React + nginx Proxy) | erledigt |
| pytest (Health + Migrationen + Auth/Tenant/Actor) | erledigt (AP0.2) |
| Gitea Actions (Deploy + Test) | erledigt |