feat(startseite): digitale Belegschaft mit Präsenz, eigener Stimme und Nachweis
Der nachgebaute Meetingraum entfällt. Eine gezeichnete Kulisse bleibt neben fotografierten Porträts erkennbar gezeichnet — und ein Raum allein macht niemanden menschlich. Menschlich wirkt im echten Büro dasselbe wie hier: dass jemand da ist, etwas zu sagen hat und nachweisbar gearbeitet hat. Die Startseite zeigt deshalb sechs Personenkarten vor einer abgedunkelten Büroaufnahme. Jede Karte trägt, was ein Personalblatt trägt: - Porträt mit Dienstpunkt — ist da oder pausiert - Name, Funktion, Abteilung, Personalnummer - Autonomiestufe: «Autonom», «Freigabe erforderlich», «Nur Vorschlag». Sie sagt, wie viel Verantwortung jemand trägt, und trennt Personal von Automatisierung. - Ein Satz in der ersten Person zur aktuellen Lage, statt einer Kennzahl: «Bei 12 Fristen ist der Termin durch. Fürs Eskalieren brauche ich deine Freigabe.» - Die zuletzt protokollierte Handlung mit Zeitangabe. Diese Zeile ist der Unterschied zwischen Behauptung und Beleg — eine Kennzahl kann jede Software anzeigen. Darüber fasst ein Anriss zusammen, wie viele Mitarbeitende heute eine Entscheidung brauchen, samt Dienststand der Belegschaft. Schichten nach CLAUDE.md §4.2: `agentPresenceService` entscheidet, was als letzte Handlung gilt und wie eine Zeitangabe in Alltagssprache lautet; `agentWorkloadService` hält Zeitfenster, Schwellen und Formulierungen. Beide nehmen den Stichzeitpunkt als Parameter — dieselbe Datenlage ergibt immer dasselbe Ergebnis und ist ohne Renderer prüfbar (22 Tests). Giorgio hat kein Personalblatt; Abteilung, Personalnummer und Stufe kommen aus der zentralen Rollendefinition. Wer kein Dossier hat, gilt als im Dienst — sonst stünde die halbe Belegschaft still, weil Stammdaten fehlen. Bild: Unsplash, freie kommerzielle Lizenz. Herkunft und Austauschhinweis in `src/assets/meeting-room/HERKUNFT.md`. Geprüft: 435 Tests, Typecheck, Build, ESLint, Token-Schwelle (889/925). Browser 1280–1920 px und Tablet: sechs Karten ohne Überlappung, Titel und «Filter & Übersicht» beim Einstieg sichtbar, alle sechs Klicks auf der richtigen Subpage, keine Konsolenfehler, keine 404. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d8f8f728cc
commit
435f2aa2f1
17 files changed
+698
-487
No files matched your search
@@ -0,0 +1,44 @@
|
||||
import type { AgentWorkload } from './agentWorkload'
|
||||
|
||||
/**
|
||||
* Property On — ein digitaler Mitarbeitender, so wie er auf der Startseite
|
||||
* auftritt (Runde 5).
|
||||
*
|
||||
* Zusammengesetzt aus drei Quellen, weil Menschlichkeit aus dem Zusammenspiel
|
||||
* entsteht und nicht aus einem einzelnen Feld:
|
||||
*
|
||||
* - **Personalien** — Name, Funktion, Abteilung, Personalnummer. Wer eine
|
||||
* Personalnummer hat, ist Personal und kein Werkzeug.
|
||||
* - **Auslastung** — woran er gerade sitzt, in seinen eigenen Worten.
|
||||
* - **Letzte Handlung** — was er zuletzt getan hat, mit Zeitangabe. Das ist
|
||||
* der Beleg, dass wirklich jemand arbeitet; ohne ihn bleibt jede Zusage
|
||||
* eine Behauptung.
|
||||
*/
|
||||
export interface AgentPresence {
|
||||
agentId: string
|
||||
name: string
|
||||
role: string
|
||||
/** Abteilung laut Personalblatt; leer, solange kein Dossier vorliegt. */
|
||||
department: string
|
||||
/** Personalnummer laut Personalblatt; leer, solange kein Dossier vorliegt. */
|
||||
personnelNumber: string
|
||||
/** Zielseite des Klicks auf die Karte. */
|
||||
path: string
|
||||
/** true, solange der Mitarbeitende nicht pausiert ist. */
|
||||
onDuty: boolean
|
||||
/**
|
||||
* Was der Mitarbeitende selbst entscheiden darf — «Autonom», «Freigabe
|
||||
* erforderlich» oder «Nur Vorschlag». Die Stufe ist das stärkste Merkmal des
|
||||
* Ansatzes: sie sagt, wie viel Verantwortung jemand trägt, und trennt
|
||||
* Personal von einer Automatisierung.
|
||||
*/
|
||||
autonomy: string
|
||||
workload: AgentWorkload
|
||||
/** Zuletzt protokollierte Handlung — fehlt, wenn noch nichts vorliegt. */
|
||||
lastAction?: {
|
||||
/** Was getan wurde, als ganzer Satz aus dem Protokoll. */
|
||||
title: string
|
||||
/** Wann, in Alltagssprache: «vor 12 Min.», «gestern 16:40». */
|
||||
when: string
|
||||
}
|
||||
}
|
||||
@@ -32,4 +32,11 @@ export interface AgentWorkload {
|
||||
*/
|
||||
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
|
||||
}
|
||||
Reference in new issue
Block a user