Ideen: Auswahl war bei leerem Feld unsichtbar
Ampel / ampel (push) Successful in 22s

User: "dein Umbau ist immer noch nicht da. Oder denke ICH falsch?" — er dachte
nicht falsch. Der ganze Auswahl-Block hing an `text.trim().length >= 3`, also
sah man bei leerem Eingabefeld NICHTS davon. Kein Hinweis, dass es ueberhaupt
eine Wahl gibt, keine Moeglichkeit sie vorher einzustellen, und nach jedem
Neuladen war alles wieder weg.

Meine Begruendung war, die Auswahl sei eine Entscheidung ZU dem Text und habe
ohne Text nichts zu suchen. Das ist logisch sauber und praktisch falsch: ein
Mechanismus, den man nicht sieht, existiert fuer den Nutzer nicht.

Jetzt immer sichtbar. Ohne Einordnung steht davor "VOREINGESTELLT" — die Zeile
ist dann eine Einstellung, keine Aussage ueber einen Text, den es noch nicht
gibt. Sobald die Box gelesen hat, verschwindet das Wort und das Etikett
"gelesen" erscheint. Aendern kann man beides jederzeit, auch vor dem Tippen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-26 11:50:00 +02:00
parent eef7fdb4df
commit 56b374a0aa
26 changed files with 71 additions and 61 deletions
+15 -5
View File
@@ -502,8 +502,13 @@ function IdeenSection() {
{/* ZUGEKLAPPT STATT ASSISTENT. Der Entscheidungsbaum ist derselbe, den ein Wizard
abfragen wuerde — Wer baut das?, und NUR im Zed-Ast: wie startest du? Nur laeufst
du ihn erst, wenn die Einordnung danebenlag. Ein Assistent wuerde dich fragen, was
die Box in ~500 ms schon weiss; das hier fragt nur im Zweifelsfall. */}
{text.trim().length >= 3 && (
die Box in ~500 ms schon weiss; das hier fragt nur im Zweifelsfall.
IMMER sichtbar (26.07., User-Befund): vorher hing der ganze Block an
`text.length >= 3` — bei leerem Feld gab es also keinerlei Hinweis, dass es
ueberhaupt eine Wahl gibt. Ein Mechanismus, den man nicht sieht, existiert fuer
den Nutzer nicht. Ohne Text steht dort die Voreinstellung, klar als solche
benannt, und laesst sich schon vorher aendern. */}
{(
offen ? (
<div className="space-y-3 rounded-xl border border-border/40 bg-background/20 p-3">
<div>
@@ -587,14 +592,19 @@ function IdeenSection() {
{modus === "box" ? <Hammer className="h-4 w-4 shrink-0 text-primary" />
: modus === "repo" ? <GitFork className="h-4 w-4 shrink-0 text-primary" />
: <Lightbulb className="h-4 w-4 shrink-0 text-primary" />}
{/* Ohne Einordnung ist der Satz eine EINSTELLUNG, keine Aussage über deinen
Text — das muss dranstehen, sonst behauptet die Zeile ein Verständnis,
das es (noch) nicht gibt. */}
{!vorgeschlagen && (
<span className="shrink-0 text-[10px] uppercase tracking-wider text-muted-foreground/50">
Voreingestellt
</span>
)}
<span className="text-muted-foreground">
{modus === "box" ? "Ich baue das selbst und lege dir das Ergebnis als Vorschlag hin."
: modus === "repo" ? "Du baust selbst ich lege dir Konzept und Repo an."
: "Du baust selbst ich arbeite erst ein Konzept aus."}
</span>
{/* Nur wenn die Box wirklich gelesen hat. Ohne Einordnung (Text noch zu kurz
oder Aufruf gescheitert) steht hier die Voreinstellung — und die darf sich
nicht als Verständnis ausgeben. */}
{vorgeschlagen && (
<span className="shrink-0 rounded border border-primary/40 bg-primary/10 px-1.5 py-0.5 text-[10px] font-bold text-primary">
gelesen