# Verification Report: phase-5-08-integration-und-phasenabnahme Stand: 2026-09-07. Geprüft wurden Proposal, Design, sämtliche Aufgaben, das Delta `ide-phasenabnahme` sowie die sieben synchronisierten Phase-5-Hauptspecs. Der zusätzliche Abgleich umfasst sämtliche 45 Zeilen der Referenzbedienung. ## Ergebnis | Dimension | Ergebnis | | --- | --- | | Completeness | 12/12 Aufgaben; 5/5 Anforderungen des Changes; 45/45 Matrixzeilen | | Correctness | 5/5 neue Szenarien; zusammen mit 01–07 insgesamt 47 Anforderungen und 67 Szenarien | | Coherence | Bestehende App, Dokumenttransaktionen, Compiler, VM, CLI und TestBackend wiederverwendet | | Offene Befunde | 0 CRITICAL, 0 WARNING, 0 SUGGESTION | ## Anforderungen und neue Nachweise Alle sechs neuen Tests liegen in `crates/tb-cli/src/ide_acceptance.rs`. Sie laufen über `cargo test -p tb-cli --bin tbc ide_acceptance` und im Workspace-Lauf. Als Testmodul des bestehenden CLI-Einstiegs können sie dessen wirkliche `cmd_build`, `compile` und `run_chain` verwenden. Die bereits im Workspace vorhandenen crossterm-/ratatui-Abhängigkeiten sind dafür zusätzlich als CLI-Testabhängigkeiten deklariert; es gibt keine neue Laufzeitabhängigkeit. | Requirement / Scenario | Implementierung und bestandener Nachweis | | --- | --- | | Vollständiger IDE-Arbeitsablauf / Schreiben bis Wiederaufnahme | `create_save_debug_help_exports_and_reopen` startet `App::new` ohne vorbereitete Dokumente. Native Tastatur-, Paste- und Mausereignisse erzeugen main.bas, helper.bas, Form1.frm, ein zweielementiges CommandButton-Array, ein Menü, work.bi sowie project.mak. F12 erzeugt Form_Load über Objekt- und Ereignisauswahl. Nach Startup-/Save-Dialog, Projektwechsel und Öffnen stimmen geladene BAS-Texte, vollständiges FormFile und Startdatei mit den gespeicherten Dateien überein; der wieder geöffnete Stand läuft erneut. | | Arbeitsablauf: Debugger und Hilfe | Derselbe Test öffnet das Include über View → Included File, setzt F9 an Zeile 2, hält vor dem modulübergreifenden Bump-Aufruf und führt ihn mit F10 bis Zeile 3 aus. Add Watch zeigt total=2. Window → Immediate setzt total=9; F5 und Eingabe abc führen zu `? abc\n 9 abc!\n` und Dateiwert 9. Sämtliche gespeicherten Quellbytes bleiben unverändert; Wiederöffnen läuft wieder mit 2. F1 im Designer und auf PRINT im Editor, Tab/Enter/Alt+F1/Esc prüfen Hilfeziel und restaurierten Fokus. | | Nachgewiesene Befehlsabdeckung / Mehrfach belegte Funktionstasten | `every_menu_command_has_native_keyboard_and_mouse_routing` bedient jeden Menüeintrag beider Modi über Alt/Mnemonic/Pfeile/Enter sowie gerenderte Maus-Hitbereiche. `function_keys_conflict_contexts_and_errors_keep_a_single_input_owner` und der Hauptablauf prüfen F2/F4/F10/F11/F12 einschließlich Designer-Value, Menü, Code-/Ereignisauswahl, Output-Vollbild und Debug-Prozedurschritt. IDE-Kommandos gelangen nicht zusätzlich in die BASIC-Eingabe. Die Facheffekte und zulässigen Kontexte stehen in der separaten, vollständig ausgefüllten [Befehlsmatrix](befehlsmatrix.md). `reference_matrix_is_complete_and_points_to_runnable_tests` vergleicht alle drei Originalspalten der 45 Referenzzeilen und prüft jeden verlinkten Rust-Test auch nach Archivierung. | | CLI-Parität und robuste Übergänge / Vergleich derselben Sitzung | `saved_project_ide_source_cli_and_tbc_have_identical_sessions` erstellt dasselbe Projekt durch die UI, baut mit der tatsächlichen CLI-Funktion ein TBC und vergleicht IDE, Quell-CLI und TBC-CLI. Auf allen Wegen: 80×25, Uhrstart 0, Eingabe abc/Enter bei 100 ms, identische Anfangsdatei und COMMAND$ (`!` sowie `error`). Ausgabe, berechneter Wert 2, Dateibytes und Resultat END beziehungsweise Fehler 5 stimmen überein. Anfangs sind Form sichtbar, Datei 1 geschlossen und IDE-Eingaben leer; der zusätzliche IDE-Neustart liefert wieder dieselben Resultate. Der deterministische Host ersetzt ausschließlich das Terminal, nicht den CLI-Ausführungspfad. | | Robuste Übergänge | `partial_save_and_external_edit_recover_without_losing_documents` erzeugt zwei Module ausschließlich über die UI. Ein fehlendes Zielverzeichnis lässt nur das erste Dokument gespeichert, das zweite bearbeitet und das Manifest ungeschrieben; Reparatur im offenen Dialog gelingt. Eine externe Änderung bleibt bis zur expliziten Überschreibentscheidung erhalten; anschließend läuft der erhaltene Projektcode. Der Funktionstasten-/Fehlertest ergänzt Compilefehler, Pause bei INPUT, fehlendes RUN-Ziel, Shell-Callback und Shrink auf 40×10 mit Rückkehr auf 100×30. Reale Shell-Übergabe und Terminalwiederherstellung werden zusätzlich im PTY geprüft. | | Leistungs- und Dokumentationsabnahme / Abschlussbericht | Alle Workspace-Regressionen, Clippy, Formatprüfung, lokale PTY-Fälle und das vorhandene Release-Compile-Budget sind bestanden; Befehle, Ergebnisse, Hardware und Revision stehen unten. PLAN.md ordnet alle elf Phase-5-Punkte dieser Abnahme zu. Tutorial, Tastatur, Bedienungsreferenz und eingebettete Hilfe wurden auf die endgültigen Eingabewege abgeglichen. | | Export-UI / Exportvorbereitung ohne Scheinerfolg | Im Hauptablauf werden Make EXE und Make Library über Menüs geöffnet. System/Architektur, leerer Pfad, abgewiesenes TBC-Ziel, bestehende Datei mit ausdrücklicher Überschreibentscheidung und gültiges neues Ziel werden über App-Eingaben geprüft. Das vorhandene `export_dialogs_validate_and_render_all_results_without_creating_files` ergänzt weitere Pfad-/Projektkollisionen. Die Produktionsaktion erklärt Phase 6 und schreibt keine Datei. Kontrollierte Running/Failed/Cancelled/Success-Rückmeldungen prüfen die vorhandene Auftrags-/Ergebnisübergabe; sie sind ausschließlich UI-Tests. Esc erhält den Projektstempel und alle ursprünglichen Dateibytes. | ## Gesamtprüfung der acht Phase-5-Changes Die folgenden synchronisierten Spec-Dateien wurden mit ihren Implementierungs- und Testpfaden abgeglichen. Die archivierten Berichte enthalten die detaillierte Zuordnung der Vorgängerszenarien; ihre Tests wurden auf dem jetzigen Stand erneut im Workspace ausgeführt. Die neue Befehlsmatrix ergänzt den gemeinsamen nativen Eingabepfad und verlinkt konkrete ausführbare Facheffekte jeder Referenzzeile. | Change / Capability | Anforderungen / Szenarien | Zuständiger Code und erneuter Nachweis | | --- | --- | --- | | 01 / ide-projekte | 5 / 9 | `tb-ide/src/documents.rs`, `tb-vm/src/project_io.rs`; 14 Dokumenttests, CLI-Projekttests, nativer Hauptablauf und Save-Fehlerablauf | | 02 / ide-oberflaeche | 7 / 11 | `tb-ide/src/app.rs`, `commands.rs`, `render.rs`, `export.rs`; 12 App-Tests, alle Menürouten, F-Tastenkonflikte, Export-UI und PTY | | 03 / ide-editor | 7 / 10 | `tb-ide/src/editor.rs`, Frontend-Editing und Projektcompiler; 7 Editortests, VM-Inkrementaltests, Include-Debugablauf und Release-Benchmark | | 04 / ide-ausfuehrung | 6 / 9 | `tb-ide/src/execution.rs`, `tb-vm/src/project_io.rs`, CLI `run_chain`; 12 Ausführungstests, tatsächliche Dreiweg-Parität, Reset-/Fehlerabläufe und PTY | | 05 / ide-formulardesigner | 6 / 6 | `tb-ide/src/designer.rs`, gemeinsame FormFile-/Forms-Metadaten; 18 Designertests einschließlich neuer Array-Merge-Gegenproben, UI-Hauptablauf und gespeicherter CLI-Lauf | | 06 / ide-debugger | 7 / 11 | `tb-ide/src/debugger.rs`, VM-Debugger; 6 IDE- und 14 VM-Debuggertests, tatsächlicher F9/F10/Watch/Immediate/F5-Ablauf | | 07 / ide-hilfe | 4 / 6 | `tb-ide/src/help.rs`, native F1-Aufrufer, eingebettete docs; 11 Hilfetests, Offline-Kindprozess sowie Hauptablauf mit Editor-/Designerhilfe | | 08 / ide-phasenabnahme | 5 / 5 | Sechs neue CLI-Abnahmetests, Befehlsmatrix, PLAN-Zuordnung und dieser Bericht | Keine Phase-5-Platzhalteraktion ist mehr vorhanden. Die einzige weiterhin vorbereitete, ausdrücklich noch nicht ausführbare Erzeugungsleistung betrifft das in Phase 6 geplante native Exportbackend. ## Behobene Befunde 1. **Control-Array über CtlName nicht herstellbar (Featurebereich 05).** Die gemeinsame Umbenennung lehnte jeden bereits vorhandenen Namen ab. Jetzt dürfen explizit indizierte Controls derselben Klasse und Form zu einer Arraygruppe zusammengeführt werden. Formvalidierung und vollständige Kandidatenübersetzung prüfen Index- und Ereigniskollisionen vor dem Commit. Die Bindungsprüfung verwendet die semantische Objektidentität statt des durch Zusammenführen verschobenen numerischen Katalogindex. `indexed_controls_merge_atomically_with_bindings_and_undo` prüft erfolgreiche Zusammenführung samt Ziel-/Quell-/unbeteiligten Codebindungen, vollständiges Undo sowie atomare Ablehnung von Skalar-, Index-, Klassen- und Handlerkonflikten. Alle bisherigen Umbenennungs-/Include-/Schattenbindungsregressionen bestehen. 2. **Tutorial verkürzte die tatsächliche Bedienfolge (Featurebereich 07).** F12 zeigt zuerst die Objekt-, danach die Ereignisauswahl. Das Tutorial nennt jetzt beide Bestätigungen und den nötigen F10-Wechsel zur Properties Bar nach Menübedienung. Control-Array-Erzeugung und ihre Grenzen sind in Tutorial und Bedienungsreferenz beschrieben. Help-Katalog und native Aufrufer bestehen. Die fachliche Korrektur liegt im bestehenden Designerpfad; die Integration führt keinen zweiten Designer und keinen alternativen Compiler-/VM-Pfad ein. Es wurden keine Fachanforderungen abgeschwächt und keine bisherigen Tests entfernt. ## PLAN-Zuordnung Alle elf Checkboxen unter Phase 5 sind anhand folgender bestandener Nachweise abgehakt; die Bezeichnung „Eigenschaftenfenster“ wurde zu „Properties Bar“ präzisiert. | Phase-5-Punkt | Nachweis | | --- | --- | | IDE-Rahmen | App-Tests, vollständige native Menürouten, Resize-/Fokusprüfung | | Editor | Editortests, Help-Aufrufer, Include-Navigation, Inkrementaltests und Compile-Budget | | Projektverwaltung | UI-Hauptablauf, drei persistierte Mitglieder, Save/Close/Reopen, CLI-/TBC-Parität | | Formular-Designer | Vollständige Metadaten-Toolbox, 18 Designerregressionen, Array/Menü/Form_Load im UI-Ablauf | | Ausführen aus der IDE | Start/Pause/Continue/Restart, Fehlerabläufe, deterministische Dreiweg-Parität | | Export-Bedienung | Beide vollständigen Dialoge im Hauptablauf und App-Exportregression | | `$INCLUDE` | Bestehende relative/Zyklus-/Overlayprüfungen; physischer Include-Breakpoint und Dreiweg-Parität | | `RUN` | Bestehende Ziel-/Resetprüfungen, fehlendes Ziel im nativen Fehlerablauf und sauberer Neustart | | Debugger | IDE-/VM-Debuggertests und tatsächliche Watch-Wertänderung mit F10/F5 im Hauptablauf | | Hilfe-System | Elf Hilfetests, Offline-Kindprozess, Kataloglinks und beide tatsächlichen F1-Aufrufer | | Vollständiges IDE-Programm | `create_save_debug_help_exports_and_reopen` und anschließender Dreiweg-Lauf derselben gespeicherten Dateien | ## Abschlussprüfungen und Messung Geprüfter Code: Basisrevision `cc828308893b95fb614fbd2ec102a811358c7762` plus der uncommittete Implementierungsstand dieses Changes. Keine nachträgliche Produktcodeänderung nach dem finalen Workspace-/Clippy-/Benchmark-Lauf. Implementierungsfingerabdruck SHA-256: `b616a1b94ce60bb215b104e5c6b4fe0edde4033703dda7a2d6124fea5e9e38b2` (Pfade lexikografisch sortiert, jeweils UTF-8-Pfad, NUL, Dateibytes, NUL: `Cargo.lock`, `crates/tb-cli/Cargo.toml`, `crates/tb-cli/src/main.rs`, `crates/tb-cli/src/ide_acceptance.rs`, `crates/tb-ide/src/designer.rs`, `crates/tb-ide/tests/designer.rs`). Die abschließenden PLAN-/Bericht-/Task-Änderungen wurden separat validiert; wegen des eingebetteten PLAN wurde die Hilfeprüfung danach erneut ausgeführt. | Befehl | Ergebnis | | --- | --- | | `cargo test -p tb-cli --bin tbc ide_acceptance` | 6 bestanden | | `cargo test -p tb-ide --test designer` | 18 bestanden | | `cargo test --workspace` | 605 bestanden plus 1 erfolgreicher Offline-Kindprozess; 0 Fehler; 2 bestehende Ignore-Fälle | | `cargo clippy --workspace --all-targets -- -D warnings` | bestanden | | `cargo fmt --all -- --check` | bestanden | | `cargo build -p tb-ide` | bestanden | | `python3 tests/support/ide-execution-pty.py` | 3 bestanden: Shell Exit 7, Ctrl+C im Shell-Kind, File → Shell; Rückkehr und Terminalrestaurierung geprüft | | `cargo bench -p tb-vm --bench compile` | alle vier bestehenden Zeitbudgets eingehalten, einmaliger Abschlusslauf | | `cargo test -p tb-ide --test help` | 11 bestanden plus Offline-Kindprozess, nach PLAN-Abschluss | | `openspec validate --all --strict --no-interactive` | 23/23 gültig; bestehende INFO-Längenhinweise sind keine Fehler | | `git diff --check` | bestanden | Referenzhardware: Apple M5 Max, aarch64, 18 CPU-Kerne, 128 GiB RAM; macOS 26.6.2 (25G83). rustc 1.97.1 (8bab26f4f, 2026-07-14), cargo 1.97.1 (c980f4866, 2026-06-30). Bestehender eigener Benchmark-Harness, Release mit opt-level=3, LTO=true, codegen-units=1. Kein neues Benchmarkverfahren. | Messung | Größe / Verfahren | Ergebnis | Bestehendes Budget | | --- | --- | --- | --- | | Vollcompile Einzelmodul | 508 Zeilen; Aufwärmen, bester von 10 Läufen | 0,74 ms | <50 ms | | Vollcompile Projekt | 20 Module, 49.760 Zeilen, 335.421 Instruktionen; ein Lauf | 98 ms | <1.000 ms | | Cacheänderung Einzelmodul | Private Rumpfänderung; Median aus 7; 1 neu / 0 wiederverwendet | 0,77 ms | <50 ms | | Cacheänderung Projekt | Private Rumpfänderung; Median aus 7; 1 neu / 19 wiederverwendet; Invalidierung + Link | 21,94 ms | <1.000 ms | Die beiden bestehenden Ignore-Fälle sind der explizite Golden-Output-Generator und die externe VBDOS-Referenzsuite (`TB_VBDOS_REPO`); kein Phase-5-Test ist ignoriert. Die normale vorhandene Workspace-Regression wurde vollständig ausgeführt. Die lokale Abnahme verwendet native crossterm-Ereignisse, TestBackend und einen realen Unix-PTY. Sie ersetzt nicht die separat offene Phase-6-Matrix für Windows Terminal, mehrere Linux-Emulatoren und macOS samt systematischen Maus-/Sondertasten. Auch native Executable-/Library-Erzeugung und deren Verbraucherprüfung bleiben unverändert offene Phase-6-Aufgaben. Kontrollierte Exportcallbacks behaupten keinen tatsächlichen Export. Keine Prüfdimension dieses Changes wurde ausgelassen. Die erneute Verifizierung meldet keine offenen Befunde. Der Change ist zur separaten Synchronisierung und Archivierung bereit. ## Synchronisierung und Archivierung Am 2026-09-07 wurden alle fünf Anforderungen einschließlich Purpose unverändert in `openspec/specs/ide-phasenabnahme/spec.md` synchronisiert. Der vollständige Vergleich mit dem Delta und die strikte Validierung aller 23 Hauptspecs bestanden vor dem Archivieren. Der Change liegt jetzt unter `openspec/changes/archive/2026-09-07-phase-5-08-integration-und-phasenabnahme/`. Abhängigkeits- und Übersichtslinks wurden an den Archivpfad angepasst. Der ausführbare Matrixnachweis besteht auch am Archivort; OpenSpec führt keine aktiven Changes mehr. Der oben dokumentierte Produktcode-Fingerabdruck ist unverändert, daher wurden die bereits bestandenen Produkt- und Leistungsprüfungen nicht erneut ausgeführt.