Programmmanger für alles im Leben
Go to file
Lars f8b3ae3011
All checks were successful
Deploy Development / deploy (push) Successful in 34s
Test Suite / pytest-backend (push) Successful in 10s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 18s
Test Suite / playwright-smoke (push) Successful in 12s
DB-Verbindung: bei Auth-Fehlern sofort abbrechen, Doku zum Volume-Wechsel.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 22:46:12 +02:00
.cursor/rules Sprint-0-Spezifikationen ergaenzen, AP0.1-Setup-Luecken schliessen (Health, CI, ADR-Vorlage). 2026-07-04 19:08:55 +02:00
.gitea/workflows Deploy-Fix: Migrationen/Seeds im Entrypoint, laengere Healthcheck-Phase, Logs bei Fehler. 2026-07-04 20:38:49 +02:00
backend DB-Verbindung: bei Auth-Fehlern sofort abbrechen, Doku zum Volume-Wechsel. 2026-07-04 22:46:12 +02:00
docs DB-Verbindung: bei Auth-Fehlern sofort abbrechen, Doku zum Volume-Wechsel. 2026-07-04 22:46:12 +02:00
frontend Frontend: Setup-Status-Fehler sichtbar machen, wenn Registrieren deaktiviert ist. 2026-07-04 20:22:36 +02:00
infra CI-Struktur wie Shinkan: deploy-dev/prod getrennt, test.yml mit pytest und CI-Ports fuer compose-smoke. 2026-07-04 19:43:57 +02:00
scripts/load k6-CI fuer Raspberry Pi: weniger Last, quiet-Modus, nach pytest. 2026-07-04 19:47:45 +02:00
tests AP0.1: Backend, Frontend minimal, Tests und CI fuer Dev/Prod-Deploy. 2026-07-04 19:15:43 +02:00
.env.example AP0.2: Auth, Tenant, Actor Foundation mit Sessions, TenantContext und Tests. 2026-07-04 20:09:54 +02:00
.gitignore Sprint-0-Spezifikationen ergaenzen, AP0.1-Setup-Luecken schliessen (Health, CI, ADR-Vorlage). 2026-07-04 19:08:55 +02:00
CLAUDE.md AP0.1: Backend, Frontend minimal, Tests und CI fuer Dev/Prod-Deploy. 2026-07-04 19:15:43 +02:00
docker-compose.dev-env.yml Deploy-Fix: Migrationen/Seeds im Entrypoint, laengere Healthcheck-Phase, Logs bei Fehler. 2026-07-04 20:38:49 +02:00
docker-compose.yml AP0.2: Auth, Tenant, Actor Foundation mit Sessions, TenantContext und Tests. 2026-07-04 20:09:54 +02:00
package.json Infrastruktur-Grundgeruest fuer Kairo Jinkendo: Docker, Gitea Actions, Deployment-Doku (ohne App-Code). 2026-07-04 18:15:24 +02:00
playwright.config.js Infrastruktur-Grundgeruest fuer Kairo Jinkendo: Docker, Gitea Actions, Deployment-Doku (ohne App-Code). 2026-07-04 18:15:24 +02:00
README.md Dev-Seed: lars@stommer.com als Portal-Admin bei jedem Start sicherstellen. 2026-07-04 22:25:11 +02:00

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

  1. docs/product/Jinkendo_Kairo_Product_Spec_v0.2.md
  2. docs/architecture/Jinkendo_Foundation_Minimum_Viable_Foundation_v0.2.md
  3. docs/architecture/Kairo_Sprint0_Principle_Gate_v0.1.md
  4. docs/sprints/Jinkendo_Kairo_04_Sprint0_Foundation_v0.3.md
  5. docs/sprints/Sprint0_Vibe_Coder_Handover_v0.1.md
  6. docs/sprints/Sprint0_AP0_1_Project_Setup_Assignment_v0.1.md
  7. CLAUDE.md
  8. .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)

Ersteinrichtung Dev (automatisch per Seed nach jedem Backend-Start):

Feld Wert
E-Mail lars@stommer.com
Passwort 12345678

Alternativ: UI-Registrierung (nur wenn DB leer und Dev-Seed deaktiviert) oder Bootstrap per .env:

KAIRO_BOOTSTRAP_ADMIN_EMAIL=admin@kairo.local
KAIRO_BOOTSTRAP_ADMIN_PASSWORD=KAIRO_BOOTSTRAP_TENANT_SLUG=default

Migrationen & idempotente Data-Seeds: docs/MIGRATIONS.md

Endpoint Methode Auth Beschreibung
/api/auth/setup-status GET Ob Erstregistrierung offen ist
/api/auth/register POST Erster User → Portal-Admin + Tenant (nur wenn noch kein User)
/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