feat(team): Datenschicht für Property On
Property On wird als Funktionsbereich "Teamübersicht" in Property Match eingebettet — sieben digitale Mitarbeiter, die ausführen, während der Mensch freigibt, anpasst oder zurückweist. Durchgehend Provider → Service → Hook, kein übersprungener Layer: - domain/: teamAgent, agentWorkItem, agentProtocol, agentConnection, agentFilters - mock-data/: 7 Personalblätter aus dem Agenten-Katalog (Aufgabenzahlen exakt: Ferdi 9, Sina 7, Lea 11, Bruno 9, Reto 10, Livia 11, Nora 8), 14 Vorgänge, 38 Protokolleinträge, 9 Verbindungen - provider/: vier Mockup-Provider mit versionierter localStorage-Persistenz - services/: Fachlogik inkl. Freigabe, Zurückweisung, Kennzahlen, Demo-Reset - hooks/: React Query, Mutationen entwerten Vorgänge, Kennzahlen und Protokoll gemeinsam — sonst zeigt die Oberfläche widersprüchliche Zahlen Namensgebung: Der Entitätstyp heisst TeamAgent, nicht Agent. Im Repo existiert bereits PowerOn als KI-Backend-Proxy, und Claude Code legt Arbeitskopien unter agent-* ab; ein nackter Typ Agent wäre in Suchen nicht auffindbar. Alle Satellitentypen sind Agent*-präfixiert, weil domain/index.ts per export * bündelt und generische Namen dort kollidieren. Eigener Protokolltyp statt ActivityEvent: den Namen gibt es im Repo dreifach und gegenseitig inkompatibel (domain/activityEvent.ts, governanceService.ts, PropertyActivityLogPanel.tsx). Ein Anschluss hätte den Konflikt zementiert. Demo-Uhr in lib/teamClock.ts: die Mockdaten sind auf den 20.05.2026 verankert. Gegen die Systemzeit gerechnet wären die Filter "heute / diese Woche / dieser Monat" an jedem anderen Kalendertag leer und die Auswertung sähe kaputt aus, obwohl sie korrekt rechnet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
36ce548169
commit
52dc7de25e
38 files changed
+9055
No files matched your search
@@ -0,0 +1,40 @@
|
||||
/**
|
||||
* Property On — Kernteam der sieben digitalen Mitarbeiter.
|
||||
*
|
||||
* Reihenfolge alphabetisch nach Vorname (§7.2 der Spezifikation): Bruno, Ferdi,
|
||||
* Lea, Livia, Nora, Reto, Sina. Die Agentenliste in der Personalverwaltung
|
||||
* rendert genau diese Reihenfolge, ohne selbst zu sortieren.
|
||||
*/
|
||||
|
||||
import type { TeamAgent } from '../domain/teamAgent'
|
||||
import { brunoAgent } from './agents/bruno'
|
||||
import { ferdiAgent } from './agents/ferdi'
|
||||
import { leaAgent } from './agents/lea'
|
||||
import { liviaAgent } from './agents/livia'
|
||||
import { noraAgent } from './agents/nora'
|
||||
import { retoAgent } from './agents/reto'
|
||||
import { sinaAgent } from './agents/sina'
|
||||
|
||||
export const mockTeamAgents: TeamAgent[] = [
|
||||
brunoAgent,
|
||||
ferdiAgent,
|
||||
leaAgent,
|
||||
liviaAgent,
|
||||
noraAgent,
|
||||
retoAgent,
|
||||
sinaAgent,
|
||||
]
|
||||
|
||||
/** Stabile IDs — Mockdaten anderer Bestände referenzieren ausschliesslich diese. */
|
||||
export const AGENT_IDS = {
|
||||
BRUNO: 'bruno',
|
||||
FERDI: 'ferdi',
|
||||
LEA: 'lea',
|
||||
LIVIA: 'livia',
|
||||
NORA: 'nora',
|
||||
RETO: 'reto',
|
||||
SINA: 'sina',
|
||||
} as const
|
||||
|
||||
/** Zeitanker sämtlicher Property-On-Mockdaten. */
|
||||
export const MOCK_TODAY = '2026-05-20T09:00:00.000Z'
|
||||
Reference in new issue
Block a user