Files
lpic-sim/context.md
T
2026-10-30 15:40:37 +01:00

66 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Projekt-Kontext: LPIC-Prüfungsvorbereitung
> Arbeitsgedächtnis für Agenten. Wird zu Sitzungsbeginn gelesen und am Ende jeder Sitzung mit relevantem Ergebnis aktualisiert.
> Abschnitte nicht umbenennen.
## Metadaten
- **Projekt:** `lpic` – Vorbereitung auf die LPIC-Zertifizierung
- **Status:** Umsetzung <!-- Idee | Planung | Umsetzung | Betrieb | abgeschlossen -->
- **Angelegt:** 29.10.2026 · **Letzte Aktualisierung:** 29.10.2026
- **Verantwortlich:** `@author` br · `@owner` br (siehe `ai/context/responsible.md`)
- **Code:** in diesem Repo – Prüfungssimulator unter `simulator/`, Übungsscripts unter `bash/`, Lab-Aufbau unter `ansible/` bzw. `stacks/` (Ordner bei Bedarf anlegen) · Remote: <!-- TODO: Gitea-Repo anlegen -->
## Ziel
LPIC-1 (101-500 + 102-500), danach LPIC-2. <!-- TODO: Zieltermin -->
Messbar am Ende:
1. <!-- TODO: Prüfung(en) bestanden bis TT.MM.JJJJ -->
2. Jedes Prüfungsthema (Objective) hat einen Eintrag unter `ai/context/knowledge/topics/` mit Kernbefehlen, Dateien und Übungen.
## Rahmen
- Prüfungsgrundlage: offizielle Lernziele (Objectives) des LPI in der jeweils gültigen Version – Version und Abrufdatum im Knowledge-Eintrag nennen.
- Übungen lokal (Container/VMs, `ai/rules/testing.md`); keine Produktivsysteme.
- Leitsatz: **so lokal wie möglich, so auswärts wie nötig** (`ai/rules/privacy.md`).
## Fahrplan
- [ ] Ziel festlegen (Stufe, Prüfungen, Termin)
- [ ] Objectives als Gliederung in `ai/context/knowledge/topics/` anlegen
- [ ] Lab-Umgebung festlegen (lokale Container/VMs)
- [x] Prüfungssimulator LPIC-1 mit 180 Fragen (29.10.2026)
- [x] Zweiter Fragensatz: je 200 Fragen für 101 und 102 (30.10.2026)
- [ ] Fragen fachlich durchsehen (br) und laufend ergänzen
- [ ] LPIC-2 (201/202) als weitere Prüfungen im Simulator
## Stand
- 29.10.2026: Repo aus der 2nd-brain-Basis abgeleitet (Regeln, Standards, Kontextstruktur übernommen; 2nd-brain-Inhalte entfernt, ohne Git-Historie).
- 29.10.2026: Prüfungssimulator `simulator/` fertig: LPIC-1 101/102 je 90 Fragen (109 single, 39 multi, 32 fill), alle Objectives 5.0 mindestens mit ihrem Gewicht abgedeckt; Lern-/Prüfungsmodus, localStorage + JSON-Export/Import, Fragenpakete nachladbar. Fragen KI-erstellt, **noch nicht fachlich geprüft**.
## Entscheidungen
| Datum | Entscheidung | Warum | ADR |
|---|---|---|---|
| 29.10.2026 | Simulator in reinem JavaScript (klassische Scripts, kein TypeScript, kein Build für den Code) | kein node/tsc auf dem Rechner; läuft so auch unter `file://` | – |
| 29.10.2026 | Fragen als JSON (`simulator/data/`), Bundle `js/bank.js` per `tools/build_bank.py`, zusätzlich Import per Datei-Dialog | `fetch` von JSON ist unter `file://` blockiert | – |
| 29.10.2026 | Fragenregeln: genau 5 Optionen bei single/multi, Erläuterung je Option, Bewertung alles-oder-nichts; Prüfungsmodus 60 Fragen/90 min, Auswahl nach Gewicht; Richtwert Bestehen 65 % | Vorgabe Bediener + LPI-Standards; LPI nennt keine Prozentgrenze (200–800, bestanden ab 500) | – |
| 29.10.2026 | Ausgelieferte Bank `js/bank.js` ChaCha20-verschlüsselt, Schlüssel aus PSK (`LPIC_SIM_PSK` bzw. `simulator/tools/.psk`, nicht versioniert); Quelltext `data/*.json` bleibt Klartext für Prüfer; Prüfvermerk `review` (pending/approved/rejected); Export ohne Quellen nach `simulator/dist/` | kein Klartext auf der Platte; Schlüssel wird mit ausgeliefert → Verschleierung, kein Schutz gegen gezielte Analyse | – |
| 29.10.2026 | Weitergabe an Prüfer als tar.gz (kein Git); Festlegungen und LPI-Kontext liegen dafür in `simulator/docs/` (eine Quelle), Mailadresse in Headern bleibt, Lizenz klärt jeder Empfänger | Prüfer brauchen den vollständigen Kontext, nicht die AI-Basis | – |
| 29.10.2026 | reveal.js 5.1.0 unverändert unter `simulator/vendor/reveal/` (eingebautes Dracula-Theme) | offline lauffähig, kein CDN | – |
| 29.10.2026 | Neues Repo ohne Historie aus 2nd-brain; Regeln, `ai/common/`, `bin/`, Umgebung und KI-Freigaben übernommen | Basis wiederverwenden, keine 2nd-brain-Inhalte in der Historie | – |
| 29.10.2026 | Knowledge-Typ `topic` (`topics/`) für Lerninhalte je Prüfungsthema | LPIC-Inhalte von Umgebungswissen trennen | – |
## Offene Fragen
1. [ ] **Ziel:** LPIC-1 (101/102), danach LPIC-2 – Zieltermin?
2. [ ] **Remote:** Gitea-Repo anlegen (z. B. `br/lpic`) und als `origin` eintragen.
3. [ ] **Lab:** Welche Umgebung für Übungen (lokale Container, VMs, Distributionen)?
4. [ ] **Richtwert Bestehen:** 65 % ist eine Annahme (`pass_percent` in `exam.json`) – anpassen?
5. [ ] **Teilpunkte** bei Mehrfachauswahl: LPI dokumentiert nichts; Simulator wertet alles-oder-nichts.
6. [ ] **Klartext außerhalb der Bank:** Sitzungs-Export und `localStorage` enthalten die Fragen einer Sitzung im Klartext – ebenfalls verschlüsseln?
## Nächster Schritt
Betreiber testet den Simulator und sieht die Fragen fachlich durch (Rückmeldungen als Korrektur in `simulator/data/`); danach Objectives als Gliederung unter `topics/` anlegen.
## Sitzungsprotokoll
- 29.10.2026 – Repo aus `2ndbrain` abgeleitet: Stacks, Ansible-Inventar, `architecture.md`, 2nd-brain-Knowledge (`dockweb112`, `kellerbeast`, LUKS-Recherche) entfernt; `services/sultan` (Verweis aus `docker.md`) bereinigt behalten; `environment.md` und `privacy.md` auf Projekt angepasst; Knowledge-Typ `topic` ergänzt.
- 29.10.2026 – Prüfungssimulator gebaut (`simulator/`), Objectives 5.0 und LPI-Regeln recherchiert (Knowledge `research/lpi_exam_format`). Tests lokal: `build_bank.py -c` ok (180 Fragen); `tests/selftest.html` 40/40, `tests/ui_smoke.html` 27/27 in Chromium headless unter `file://` und über lokalen `http.server`; Start und Darstellung zusätzlich in Firefox headless geprüft. Nicht getestet: Mobilgeräte (nur 400-px-Fenster), Safari.
- 29.10.2026 – Bank verschlüsselt (ChaCha20, gegen Python-`cryptography` und RFC-8439-Vektor geprüft), Prüfvermerk `review`, Export `build_bank.py -e` → `simulator/dist/`; Lückentext-Feld war links verschoben (input inline-block, `margin:auto` griff nicht) → `display:block`. Tests: selftest 44/44, ui_smoke 27/27; Export über `python3 -m http.server 8080` (alle Schnittstellen) ausgeliefert und geprüft.
- 29.10.2026 – Prüferpaket: Doku nach `simulator/docs/` (exam_format, question_rules, decisions, REVIEW) und `simulator/AGENTS.md`; `build_bank.py -b` → `simulator/release/lpic-sim_<datum>.tar.gz` (ohne PSK, `dist/`, `release/`, Caches; ohne `ai/` und Umgebungsdaten). Entpackt in leerem Verzeichnis geprüft: Build, selftest 44/44, ui_smoke 27/27, alle Doku-Links innerhalb des Pakets. Lizenz klärt jeder Prüfer selbst (Betreiber).
- 30.10.2026 – Je 110 weitere Fragen für 101 und 102 (`questions_*_set2.json`, nach Gewicht verteilt) → je 200, gesamt 400; Qualitätsprüfung (Backticks, Buchstabenbezüge, doppelte Fragetexte) ohne Befund. Export-Fehler behoben: `build_bank.py -e` löschte das ganze `dist/` samt fremder Datei `lpic.tar.gz` (aus `~/Downloads` wiederhergestellt) – ersetzt jetzt nur noch `index.html`, `css`, `js`, `vendor`, Verzeichnis bleibt (laufender Server liefert weiter). Tests: selftest 44/44, ui_smoke 27/27; Server :8080 liefert 2×200 Fragen; Prüferpaket `release/lpic-sim_2026-10-30.tar.gz` neu.