PLAN: verschobene Inventarelemente als eigene Punkte

Befund bei der Durchsicht nach Phase 3: von den 15 offenen
Inventarelementen standen 15 nur als Fliesstextverweis im Plan
("13 Forms und Ereignissteuerung (Phase 4) sowie RUN und $INCLUDE
(Phase 5)"), aber in keiner Zielphase als abhakbare Aufgabe. Damit waeren
sie beim Abarbeiten von Phase 4 und 5 durchgefallen.

Ergaenzt
- Phase 4: klassische Ereignis-Traps (ON TIMER/KEY/UEVENT/SIGNAL mit
  GOSUB, die Steueranweisungen mit ON/OFF/STOP, EVENT, SetUEvent) --
  10 Eintraege. Sie haengen an der Ereignisschleife, nicht an den
  Steuerelementen, und die vorhandenen Punkte decken nur den
  Forms-Ereignisdispatch ab
- Phase 4: die vordefinierten Dialoge MSGBOX (Anweisung und Funktion)
  und INPUTBOX$ -- 3 Eintraege. Sie stehen in keiner Steuerelementliste
- Phase 5: $INCLUDE im Compile-Treiber aufloesen -- 1 Eintrag
- Phase 5: RUN ueber den Zuruecksetzpfad der VM -- 1 Eintrag
- Phase 6: die unter "Vollstaendigkeit ist das Soll" versprochene Abnahme
  des Inventars (0 offen) war als Abnahmekriterium angekuendigt, aber nie
  als Punkt gefuehrt

Prozessregel in der Leitplanke: wird ein Inventareintrag in eine spaetere
Phase verlegt, MUSS er dort als eigene Aufgabe stehen -- ein Verweis im
Fliesstext genuegt nicht.

Eine Gegenprobe stellt jetzt jedes offene Inventarelement einer
Zielaufgabe gegenueber; alle 15 sind benannt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-04 12:00:22 +02:00
parent e49a231a68
commit 060674b466

27
PLAN.md
View File

@@ -42,6 +42,10 @@ Konvention: `[ ]` offen · `[x]` erledigt · `[~]` in Arbeit
Feature vorher vom Projektinhaber als Non-Feature deklariert und in der
Sprachreferenz unter „Abweichungen" gelistet wurde. Stilles Weglassen
oder generische Syntaxfehler für dokumentierte Features sind Bugs.
**Verschobene Elemente brauchen einen eigenen Punkt** (2026-09-04): Wird
ein Inventareintrag von einer Phase in eine spätere verlegt, MUSS er dort
als eigene Aufgabe stehen. Ein Verweis im Fließtext („kommt mit Phase 4")
genügt nicht — nur was als Punkt in der Zielphase steht, wird abgearbeitet.
- **Markenrecht:** Der Name des Vorbilds wird in Code, Doku und Artefakten
nicht verwendet. Wir sprechen vom „Vorbild" bzw. „dem Dialekt".
- **Performance ist Anforderung, nicht Politur** (2026-09-01):
@@ -411,6 +415,17 @@ Maßgeblich ist seit 2026-09-03 das Inventar, nicht diese Liste.
https://github.com/cout/vbdos ohne Non-Features kompilieren und
sind nutzbar (Konsolenprogramme bereits ab Phase 3)
- [ ] Ereignisdispatch: Event-Queue ↔ VM (Ereignisprozeduren `Name_Ereignis`)
- [ ] **Klassische Ereignis-Traps** (ohne Forms, Sprachreferenz §8) —
`ON TIMER(n)`, `ON KEY(n)`, `ON UEVENT` und `ON SIGNAL(n)` je mit
`GOSUB label`, dazu die Steueranweisungen `TIMER`, `KEY(n)`,
`UEVENT`, `SIGNAL(n)` mit `ON`/`OFF`/`STOP`, das `EVENT`-Statement
und `SetUEvent`. Setzt die Ereignisschleife (erste Aufgabe dieser
Phase) voraus; `COM`/`PEN`/`PLAY`/`STRIG` bleiben Non-Feature
(Fehler 73). **10 Inventareinträge**
- [ ] **Vordefinierte Dialoge**: `MSGBOX` als Anweisung **und** als
Funktion (liefert die gedrückte Schaltfläche) sowie `INPUTBOX$`.
Sie hängen am Formularmodell, nicht an der Steuerelementliste, und
fallen deshalb sonst zwischen die Aufgaben. **3 Inventareinträge**
- [ ] Meilenstein: Beispiel-Formularprogramme aus dem Testkorpus laufen
## Phase 5 — IDE (`tb-ide`)
@@ -422,6 +437,13 @@ Maßgeblich ist seit 2026-09-03 das Inventar, nicht diese Liste.
- [ ] Formular-Designer: Steuerelemente platzieren/verschieben/skalieren,
Eigenschaftenfenster
- [ ] Ausführen aus der IDE: Start/Unterbrechen/Fortsetzen/Neustart
- [ ] **`$INCLUDE`** im Compile-Treiber auflösen — der Lexer liefert den
Metabefehl bereits als Token. Datei einlesen, Pfade relativ zur
einschließenden Datei, Zyklen erkennen und namentlich abweisen.
**1 Inventareintrag**
- [ ] **`RUN`** — Programm neu starten bzw. ein anderes laden und starten.
Nutzt denselben Zurücksetzpfad der VM wie „Neustart" oben.
**1 Inventareintrag**
- [ ] Debugger: Breakpoints, Einzelschritt/Prozedurschritt, Direktfenster,
Überwachungsausdrücke
- [ ] Hilfe-System: rendert die Markdown-Dokumentation aus `docs/`
@@ -443,6 +465,11 @@ Maßgeblich ist seit 2026-09-03 das Inventar, nicht diese Liste.
ausführbares Programm (Bytecode + eingebetteter Runner)
- [ ] Dokumentation: Sprachreferenz, Migrationshinweise, Beispielprogramme
- [ ] CI (GitHub Actions: Build + Tests auf allen drei Plattformen), Releases
- [ ] **Abnahme der Leitplanke „Vollständigkeit ist das Soll"**:
docs/inventar.md steht auf **0 offen** — jeder der 285 Einträge ist
entweder implementiert oder als Non-Feature in der Sprachreferenz
gelistet. Der Abgleichstest `inventar_stimmt_mit_code_ueberein` hält
das gegen den Code; hier wird es zum Abnahmekriterium.
---