Files
property-match/src/domain/agentWorkload.ts
T
Benjamin SutterandClaude Opus 5 093a958dcf feat(startseite): Giorgio entfernt, Belegschaft auf die fünf Agenten
Auf ausdrücklichen Wunsch: Giorgio entfällt vollständig. Das weicht bewusst
von §6 des Auftrags ab, der ihn als Personalverwalter und Vorgesetzten
vorsah — festgehalten, damit die Abweichung später nachvollziehbar bleibt.

Entfernt: Rollendefinition `AGENT_SUPERVISOR`, sein gezeichnetes Porträt, sein
Eintrag in der Auslastung und in der Belegschaftsansicht sowie die Erwähnung
in der Produkttour. Die Personalverwaltung bleibt unverändert über den
Menüpunkt «Meine Agenten» erreichbar — sie brauchte nie eine eigene Person am
Bildschirm.

Mit Giorgio entfällt auch die einzige Kennzahl, die aus den Freigabevorgängen
kam; `computeAgentWorkload` braucht `agentWorkItems` deshalb nicht mehr.

Ordner und Komponenten heissen jetzt nach ihrem Inhalt: `components/staff/`,
`AgentStaffOverview`, `StaffBackdrop`. «Meetingraum» war seit dem Umbau auf
Personenkarten irreführend, und ein falscher Name kostet den Nächsten mehr
Zeit als die Umbenennung.

Fünf statt sechs Karten heisst Flexlayout statt Dreierraster: drei oben, zwei
mittig darunter, gleich breit und ohne Lücke. Die Karten geben ihre Höhe nicht
mehr selbst vor — mit `height: 100%` beanspruchte jede die volle Fläche und
die zweite Zeile fiel aus dem sichtbaren Bereich.

Geprüft: 433 Tests, Typecheck, Build, ESLint, Token-Schwelle (889/925).
Browser 1280–1920 px und Tablet: fünf Karten vollständig sichtbar, keine
Überlappung, Titel und «Filter & Übersicht» beim Einstieg sichtbar, alle fünf
Klicks auf der richtigen Subpage, «Meine Agenten» weiterhin erreichbar, keine
Konsolenfehler, keine 404.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 15:03:18 +02:00

43 lines
1.6 KiB
TypeScript

/**
* Property On — aktuelle Auslastung eines digitalen Mitarbeitenden.
*
* Die Belegschaftsansicht der Startseite zeigt nicht nur, *wer* für einen
* arbeitet, sondern *woran gerade*. Ohne diese Zahl wäre die Szene Dekoration;
* mit ihr ist sie eine Lageübersicht — genau der Anspruch aus CLAUDE.md §1:
* jeder Bildschirm ist um eine Entscheidung herum gebaut.
*
* Die Werte sind abgeleitet, nie gespeichert (CLAUDE.md §5.5): sie entstehen
* aus den bestehenden Beständen an Fristen, Terminen, Leads und Objekten.
*/
/** Dringlichkeit — steuert allein die Farbe, nie die Aussage. */
export const WorkloadTone = {
/** Nichts Auffälliges. */
CALM: 'CALM',
/** Sollte diese Woche angeschaut werden. */
ATTENTION: 'ATTENTION',
/** Überfällig oder kritisch. */
URGENT: 'URGENT',
} as const
export type WorkloadTone = typeof WorkloadTone[keyof typeof WorkloadTone]
export interface AgentWorkload {
/** Agenten-ID, identisch mit `AGENT_PHOTOS` und der Sitzordnung. */
agentId: string
/** Die Zahl selbst — für Sortierung und Tests. */
count: number
/**
* Vollständiger Satz für die Plakette, z. B. «3 Fristen diese Woche».
* Bewusst inklusive Zahl: eine nackte Ziffer neben einem Kopf sagt nichts.
*/
label: string
tone: WorkloadTone
/**
* Derselbe Sachverhalt in der ersten Person — das, was der Agent dazu sagen
* würde. Digitale Mitarbeitende sollen als Personal auftreten, nicht als
* Kennzahl: «Bei 12 Fristen ist der Termin durch» ist dieselbe Information
* wie «12 überfällig», aber es spricht jemand.
*/
voice: string
}