Zwei neue Capabilities in den Hauptspecs: - datei-eio: Dateiverwaltung, drei Zugriffsarten, UTF-32-Festtextfelder, Recordkonvertierung, Sperren, Dateisystem-Anweisungen - sprachinventar: das Vollstaendigkeits-Inventar als pruefbares Artefakt Fortgeschrieben: textbildschirm (Doppelzellen, Groessenunabhaengigkeit, Bildschirmanweisungen), konsolen-basisbibliothek (Host-Neuschnitt, volle String-/Format-/Datums-/Finanzbibliothek), kompat-testkorpus (Snapshot-Vergleich, Nachweis der Groessenunabhaengigkeit), sprach-frontend (Signaturpflicht, ON-ERROR-Scoping, DATA-Rohtext). Bilanz: +32 Anforderungen, 6 geaendert, 1 ersetzt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.8 KiB
Purpose
Das Sprachinventar ist das Messinstrument für die Leitplanke „Vollständigkeit ist das Soll": eine gepflegte Liste aller in der Original-Hilfe des Vorbilds dokumentierten Anweisungen, Funktionen und Metabefehle mit Abdeckungsstatus, gegen die sich der Implementierungsstand jederzeit prüfen lässt.
ADDED Requirements
Requirement: Vollständiges Inventar der Original-Hilfe
docs/inventar.md SHALL jede in der Original-Hilfe des Vorbilds
dokumentierte Anweisung, Funktion, Metabefehl, Operator-Schlüsselwort und
Klausel als eigenen Eintrag führen. Ein dokumentiertes Element MUST NOT
fehlen; Vollständigkeit gegenüber der Quelle geht der Kürze vor. Jeder
Eintrag SHALL Name, Art (Anweisung/Funktion/Metabefehl), Themengruppe,
Status und Fundstelle tragen.
Scenario: Dokumentiertes Element ist erfasst
- WHEN die Original-Hilfe die Anweisung
VIEW PRINTdokumentiert - THEN enthält das Inventar einen Eintrag
VIEW PRINTmit Art, Gruppe, Status und Fundstelle
Scenario: Non-Feature ist erfasst, nicht weggelassen
- WHEN
PEEKals Non-Feature deklariert ist - THEN steht
PEEKmit StatusNon-Featureim Inventar und die Fundstelle verweist auf den Abschnitt „Abweichungen" der Sprachreferenz
Requirement: Festes Statusvokabular
Der Status eines Eintrags SHALL genau einen von drei Werten tragen:
implementiert (Frontend senkt ab und die Laufzeit führt aus),
offen (dokumentiert, noch nicht verfügbar) oder Non-Feature
(vom Projektinhaber abgelehnt und in der Sprachreferenz unter
„Abweichungen" gelistet). Ein Eintrag mit Status Non-Feature MUST eine
Fundstelle in der Sprachreferenz nennen.
Scenario: Unzulässiger Status
- WHEN ein Eintrag den Status
teilweiseträgt - THEN schlägt die Inventarprüfung mit Nennung des Eintrags fehl
Scenario: Non-Feature ohne Fundstelle
- WHEN ein Eintrag den Status
Non-Featureträgt, aber keine Fundstelle nennt - THEN schlägt die Inventarprüfung mit Nennung des Eintrags fehl
Requirement: Automatischer Abgleich Inventar gegen Implementierung
Ein automatischer Test SHALL das Inventar gegen den tatsächlichen
Implementierungsstand prüfen und bei jeder Divergenz fehlschlagen. Als
implementiert markierte Elemente MUST im Frontend eine Signatur besitzen
und MUST NOT auf einen „nicht verfügbar"-Marker absenken; als offen
markierte Elemente MUST auf einen solchen Marker absenken oder ohne
Signatur sein; als Non-Feature markierte Elemente MUST zur Compile-Zeit
mit „Feature unavailable" abgewiesen werden. Der Test MUST das
divergierende Element, seinen Inventarstatus und den vorgefundenen
Zustand benennen.
Scenario: Inventar hinkt der Implementierung hinterher
- WHEN
LOCATEimplementiert wurde, im Inventar aber nochoffensteht - THEN schlägt der Abgleich fehl und nennt
LOCATE, Statusoffenund den Befund „implementiert"
Scenario: Inventar behauptet zu viel
- WHEN ein Eintrag
implementiertträgt, das Element aber weiterhin auf den „nicht verfügbar"-Marker absenkt - THEN schlägt der Abgleich fehl und nennt das Element
Scenario: Abdeckungsstand ist abrufbar
- WHEN der Abgleich läuft
- THEN nennt er die Zahl der Einträge je Status als Abdeckungsstand
Requirement: Keine stillen Lücken bei dokumentierten Elementen
Ein Element mit Status offen MUST bei Verwendung eine benannte
Ablehnung erzeugen — entweder eine Compile-Diagnose oder den Laufzeitfehler
für nicht verfügbare Funktionen —, die das Element namentlich nennt. Ein
generischer Syntaxfehler oder „unbekannter Bezeichner" für ein
dokumentiertes Element MUST NOT auftreten (Guiding Principle).
Scenario: Offenes Element wird namentlich abgewiesen
- WHEN ein Programm eine im Inventar als
offengeführte Anweisung verwendet - THEN nennt die Ablehnung den Namen der Anweisung, nicht nur „Syntaxfehler"