Diosix prüfen
Jede Code- und Dokumentationsänderung in Diosix muss vor dem Commit oder Merge eine strenge, mehrperspektivische Prüfung durchlaufen. Änderungen niemals blind absegnen und niemals fehlerhaften, unvollständigen oder unverifizierten Code freigeben. Die nachfolgenden Prüfkriterien spiegeln developing-diosix und documenting-diosix 1:1 wider, sodass die Anwendung der Autorenfähigkeiten Nacharbeiten vor Commit und Merge vermeidet.
Verbindlicher 4-Schritte-Verifikationsworkflow
- Build-, Vollständigkeits- und Testgate (Grundvoraussetzung):
- Stellen Sie sicher, dass die Funktion zu 100 % wie entworfen implementiert ist, ohne
TODO-Platzhalter, toten Code oder simulierte Produktionspfade. - Überschreiten refaktorierte Dateien die 500-Zeilen-Grenze, niemals Funktionalität oder Komponententests abschneiden; zu große Dateien stattdessen in zusammenhängende Unterverzeichnisse aufteilen (
vm/run.zig,panes/modal.zig,tests/gui.zig), anstatt flacheprefix_subname.zig-Dateien zu verwenden, und sicherstellen, dass jedes Untermodul imtest-Block des übergeordneten Moduls referenziert wird (_ = @import("vm/run.zig");), damitzig build testseine Komponententests ausführt. - Stellen Sie sicher, dass Komponententests gemeinsam mit den zu testenden
.zig-Quelldateien in denselben Dateien platziert sind und Integrationstests in separatentests/-Verzeichnissen liegen. - Begrenzen Sie Dateiformat- und Zeilen-/Spaltenprüfungen auf die nachverfolgten Quellverzeichnisse (
build.zig,hypervisor,tools,scripts), anstatt unbegrenzte rekursive Glob-Abfragen über.zig-cache/oderzig-out/auszuführen. - Führen Sie
./scripts/build.sh test --summary allund./scripts/build.shaus, bis 100 % der Kompilierungs- und Tests chritte ohne Warnungen oder Speicherlecks bestanden sind.
- Stellen Sie sicher, dass die Funktion zu 100 % wie entworfen implementiert ist, ohne
- 4-Persona-Tiefenprüfung:
- Prüfen Sie jede geänderte Datei und ihren umgebenden Kontext durch vier unterschiedliche Linsen:
- Skeptischer erfahrener Ingenieur (Vollständigkeit, Idiome, Unterverzeichnishierarchie statt flacher
prefix_subname.zig-Dateien, hexadezimale Literale in Kleinbuchstaben0xfff, benannte Konstanten/Hilfsfunktionen wiePAGE_OFFSET_MASKundcrossesPageBoundaryanstelle magischer Bitmasken, keine Kopier-Paste-Duplizierung vonSpinlock/Ausrichtungs-/Pfadvalidierern, keine historischen Kandidatenlisten-Fallback-Arrays wieDEFAULT_GUEST_CANDIDATESfür ko-versionierte interne Pfade, expliziteu64-ABI-Typen mit fester Breite anstelle vonusize, expliziteusize-Typannotationen bei@min/@maxmit Literalen, Aufteilung von Dateien >500 Zeilen ohne Abschneiden, <=80-Zeichen-Grenze, dynamische vs. statische Puffer, Externalisierung von Richtlinien in Build-/Laufzeitkonfiguration, keine On-the-Fly-Binär-/ELF-/Bildsynthese in Zig, keine generierten Dateien innerhalb vontools/overlay-common/) - Paranoider Sicherheitsexperte (Hypervisor-Blast-Radius-Isolation, Einzelkopie-Doppelabruf/TOCTOU-Verhinderung bei Gastspeicher, IRQ-sichere Sperren über
atomic.Spinlock, Krypto-/Seitennullstellung, geprüfte arithmetische Grenzen) - Diosix-Maintainer (Modularität, Lesbarkeit,
defer/errdefer, ABIcomptime-Größen-/Offset-Assertions, Abwärtskompatibilität externer Verträge vs. atomare In-Tree-Migration, Testabdeckung von Untermodulen) - Anfänger & erfahrener Benutzer (Nullaufwand-Benutzererfahrung, klare englische Fehler, Konfigurationsflexibilität, Leistung)
- Skeptischer erfahrener Ingenieur (Vollständigkeit, Idiome, Unterverzeichnishierarchie statt flacher
- Prüfen Sie jede geänderte Datei und ihren umgebenden Kontext durch vier unterschiedliche Linsen:
- Rust-artiger Borrow-Checker- und Pointer-Lebensdauer-Audit:
- Verfolgen Sie manuell jeden Zeiger, jedes Slice und jede Allokation über alle Kontrollflusspfade hinweg, um Null Use-After-Free (UAF), Double-Free, Pointer-Invalidierung bei Größenänderung/Neuzuordnung oder baumelnde Stack-Referenzen zu garantieren.
- Dokumentations-, Rechtschreib- und Style-Gate:
- Stellen Sie sicher, dass
docs/mit allen Codeänderungen übereinstimmt (einschließlich SBI-FIDs, C-Struct-Typen, CLI-Flags und modularisierten Dateipfaden), in klarem, grammatikalisch korrektem amerikanischem Englisch mit überprüfter Rechtschreibung verfasst ist unddocs/style-guide.mdunddocs/development.mdeinhält. - Führen Sie nach allen Überprüfungs korrekturen
zig fmt --check build.zig hypervisor tools scriptsund./scripts/build.sh test --summary allerneut aus.
- Stellen Sie sicher, dass
- Bei Unsicherheit: Anhalten und den Lead-Maintainer fragen: Wenn eine Überprüfung einen architektonischen Zielkonflikt oder eine fehlende Grundstruktur aufdeckt, halten Sie an und fragen Sie den Lead-Maintainer nach einer Richtung, bevor Sie Annahmen treffen.
Fokussierte Referenzleitfäden
Konsultieren Sie diese Referenzchecklisten bei jeder Überprüfung:
- Die 4 Prüfpersonas-Checkliste: Detaillierte Prüfkriterien für den skeptischen erfahrenen Ingenieur, den paranoiden Sicherheitsexperten, den Diosix-Maintainer und den Anfänger/erfahrenen Benutzer.
- Borrow-Checker-Audit: Schrittweise Methodik zur Verfolgung von Pointer-Herkunft, Lebensdauern, aliasing-bedingter Mutabilität und Cross-Privilege-Speichersicherheit in Zig.
- Pre-Commit-Gates: Konkrete Verifikationsbefehle und Freigabekriterien, die vor dem Commit oder Merge in
develoderstableerforderlich sind.