From cd7bf38dfade771d8d5ce41d52f55d5dfe097684 Mon Sep 17 00:00:00 2001 From: dschlueter Date: Fri, 29 May 2026 21:56:12 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20zwei=20neue=20Demo-Examples=20hinzuf?= =?UTF-8?q?=C3=BCgen=20(bash-sysreport,=20html-joke-ticker)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bash-sysreport: /coder von Null — kein Startcode, demonstriert Neuerstellung html-joke-ticker: /optimize --no-tests für Frontend-Arbeit + /patch Co-Authored-By: Claude Sonnet 4.6 --- examples/README.md | 16 +++++-- examples/bash-sysreport/PROTOKOLL.md | 16 +++++++ examples/bash-sysreport/README.md | 63 ++++++++++++++++++++++++++ examples/html-joke-ticker/PROTOKOLL.md | 17 +++++++ examples/html-joke-ticker/README.md | 52 +++++++++++++++++++++ examples/html-joke-ticker/jokes.html | 11 +++++ examples/restore-all.sh | 2 +- 7 files changed, 171 insertions(+), 6 deletions(-) create mode 100644 examples/bash-sysreport/PROTOKOLL.md create mode 100644 examples/bash-sysreport/README.md create mode 100644 examples/html-joke-ticker/PROTOKOLL.md create mode 100644 examples/html-joke-ticker/README.md create mode 100644 examples/html-joke-ticker/jokes.html diff --git a/examples/README.md b/examples/README.md index cca2e19..b914fc4 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,6 +1,6 @@ # pi-coder Beispielprojekte -Vier kleine, eigenständige Projekte als Demonstrationsgrundlage für die pi-coder-Features. +Sechs kleine, eigenständige Projekte als Demonstrationsgrundlage für die pi-coder-Features. Jedes Projekt startet bewusst unvollständig — genau der Ausgangspunkt, für den pi-coder gebaut ist. ## Übersicht @@ -11,6 +11,8 @@ Jedes Projekt startet bewusst unvollständig — genau der Ausgangspunkt, für d | `rust-wordcount/` | Rust | `/optimize` mit `--test-cmd "cargo test"` + `/version` | | `go-fibonacci/` | Go | `/optimize --interactive` + `/continue` + `/shipit` | | `c-linkedlist/` | C | `/quick_check` + `/fix` + `/patch` | +| `bash-sysreport/` | Bash | `/coder` von Null (kein Startcode) + `/quick_check` | +| `html-joke-ticker/` | HTML/CSS/JS | `/optimize --no-tests` + `/patch` | ## Demo-Workflow @@ -20,7 +22,7 @@ Jedes Example braucht ein eigenes git-Repo, damit pi-coder commit-basierte Features nutzen kann (Loop-Erkennung, Diff-Anzeige, `/version`): ```bash -for dir in python-calculator rust-wordcount go-fibonacci c-linkedlist; do +for dir in python-calculator rust-wordcount go-fibonacci c-linkedlist bash-sysreport html-joke-ticker; do cd examples/$dir git init -b main && git add -A && git commit -m "feat: initial $dir" cd ../.. @@ -61,8 +63,10 @@ und bereinigt Build-Artefakte (`target/`, `__pycache__` etc.). |---|---|---|---| | 1 | `python-calculator` | ~5–10 min | Einstieg, Test-Loop | | 2 | `c-linkedlist` | ~5 min | `/quick_check` + `/fix`, kein Loop | -| 3 | `rust-wordcount` | ~10–15 min | Loop + `/version` | -| 4 | `go-fibonacci` | ~15–20 min | `--interactive` + `/shipit` | +| 3 | `bash-sysreport` | ~5–8 min | `/coder` von Null, kein Startcode | +| 4 | `html-joke-ticker` | ~8–12 min | `/optimize --no-tests`, Frontend | +| 5 | `rust-wordcount` | ~10–15 min | Loop + `/version` | +| 6 | `go-fibonacci` | ~15–20 min | `--interactive` + `/shipit` | --- @@ -71,4 +75,6 @@ und bereinigt Build-Artefakte (`target/`, `__pycache__` etc.). [python-calculator](python-calculator/README.md) · [rust-wordcount](rust-wordcount/README.md) · [go-fibonacci](go-fibonacci/README.md) · -[c-linkedlist](c-linkedlist/README.md) +[c-linkedlist](c-linkedlist/README.md) · +[bash-sysreport](bash-sysreport/README.md) · +[html-joke-ticker](html-joke-ticker/README.md) diff --git a/examples/bash-sysreport/PROTOKOLL.md b/examples/bash-sysreport/PROTOKOLL.md new file mode 100644 index 0000000..3a9efef --- /dev/null +++ b/examples/bash-sysreport/PROTOKOLL.md @@ -0,0 +1,16 @@ +# Demo-Protokoll: bash-sysreport + +## Lauf 1 + +**Datum:** +**Befehl:** +``` +/coder "Schreibe sysreport.sh ..." +``` +**Startzeit:** +**Endzeit:** +**Dauer (min):** +**Endergebnis:** OK / PROBLEM +**Besonderheiten / Beobachtungen:** + +--- diff --git a/examples/bash-sysreport/README.md b/examples/bash-sysreport/README.md new file mode 100644 index 0000000..8dd6020 --- /dev/null +++ b/examples/bash-sysreport/README.md @@ -0,0 +1,63 @@ +# Bash Sysreport + +Leeres Verzeichnis — kein Startcode vorhanden. +pi-coder soll `sysreport.sh` vollständig neu schreiben. + +## Aktueller Stand + +``` +(keine Quelldatei) +``` + +## Demo: `/coder` ohne Vorlage + +``` +/coder "Schreibe sysreport.sh — ein Bash-Skript das einen kompakten Systembericht ausgibt. + Abschnitte: Hostname/Datum, Uptime, CPU-Modell + Load Average, RAM (belegt/gesamt/%), + Swap, Festplatten (alle Mounts aus df -h außer tmpfs), Netzwerk-Interfaces mit IP, + Top-5 Prozesse nach RAM-Verbrauch. + Nur Bash + Standard-Coreutils (awk, grep, sed, df, free, uptime, ps, hostname, date). + Kein Python, kein Perl. Exit-Code 0 bei Erfolg." +``` + +**Was pi-coder hier zeigt:** +- Coder erstellt `sysreport.sh` komplett neu (kein Startcode, keine Vorlage) +- Kein Test-Framework nötig — das Skript läuft direkt als Verifikation +- Zeigt, dass pi-coder auch mit Bash und reinen Shell-Aufgaben umgeht + +## Folge-Demo: `/quick_check` zur Verifikation + +``` +/quick_check "Läuft das Skript fehlerfrei durch? Gibt es Portabilitätsprobleme oder + Fehler bei leeren Werten (kein Swap, keine zweite Festplatte)?" +``` + +Der Judge analysiert das Skript und gibt `OK` oder `PROBLEM` zurück — ohne vollen Fix-Loop. + +## Manueller Test + +```bash +bash sysreport.sh +bash -n sysreport.sh # Syntax-Check +``` + +Erwartete Ausgabe (Beispiel): +``` +=== Systemreport: meinrechner — 2026-05-29 20:41:02 === + +Uptime: 3 days, 4:12 +CPU: Intel Core i7-10700K (8 Kerne) +Auslastung: 0.42, 0.38, 0.31 (1/5/15 min) +RAM: 4,2 GB / 15,6 GB (27 %) +Swap: 0 MB / 8192 MB (0 %) + +Festplatten: + / 45 GB / 200 GB (23 %) + +Netzwerk-Interfaces: + eth0 192.168.1.100 + +Top-5 Prozesse (RAM): + 1234 firefox 512 MB + ... +``` diff --git a/examples/html-joke-ticker/PROTOKOLL.md b/examples/html-joke-ticker/PROTOKOLL.md new file mode 100644 index 0000000..be00942 --- /dev/null +++ b/examples/html-joke-ticker/PROTOKOLL.md @@ -0,0 +1,17 @@ +# Demo-Protokoll: html-joke-ticker + +## Lauf 1 + +**Datum:** +**Befehl:** +``` +/optimize "Ergänze jokes.html ..." --no-tests +``` +**Startzeit:** +**Endzeit:** +**Dauer (min):** +**Runden:** +**Endergebnis:** PASS / PASS WITH CONCERNS / SHIP / NO-SHIP +**Besonderheiten / Beobachtungen:** + +--- diff --git a/examples/html-joke-ticker/README.md b/examples/html-joke-ticker/README.md new file mode 100644 index 0000000..b84ee53 --- /dev/null +++ b/examples/html-joke-ticker/README.md @@ -0,0 +1,52 @@ +# HTML Witze-Ticker + +Minimales HTML-Skelett — Struktur vorhanden, aber keine Logik. +Die Witz-Anzeige, der Timer und die Buttons fehlen noch vollständig. + +## Aktueller Stand + +``` +jokes.html HTML-Skelett:

+ leeres
— kein JavaScript, kein CSS +``` + +## Demo: `/optimize --no-tests` + +``` +/optimize "Ergänze jokes.html um eine vollständige Witz-Anzeige: + - JavaScript-Array mit mind. 20 deutschen Witzen (inline, kein externes API) + - Beim Laden: sofort zufälliger Witz + - Automatischer Wechsel alle 60 Sekunden (setInterval) + - Sanfter Fade-Übergang (CSS-Transition) + - Anzeige: Index (3/20) und Countdown-Sekunden bis zum nächsten Witz + - Button 'Nächster Witz' zum manuellen Weiterblättern + Kein Framework, kein Build-Tool — reines HTML/CSS/JS." \ + --no-tests +``` + +**Was pi-coder hier zeigt:** +- Frontend-Arbeit ohne automatische Test-Suite (`--no-tests`) +- Vollständige Implementierung in einer einzigen HTML-Datei +- Judge bewertet Korrektheit durch Code-Review statt durch Tests + +## Folge-Demo: `/patch` für Kleinstergänzung + +``` +/patch "Füge einen 'Vorheriger Witz'-Button hinzu." +``` + +Zeigt eine gezielte Minimaländerung ohne vollen Judge-Loop. + +## Manueller Test + +```bash +# Im Browser öffnen: +xdg-open jokes.html +# oder: +firefox jokes.html +``` + +Prüfen: +- Beim Laden erscheint sofort ein Witz +- Countdown läuft von 60 auf 0 +- Nach 60 Sekunden erscheint automatisch ein neuer Witz mit Fade +- „Nächster Witz"-Button wechselt sofort und setzt den Timer zurück diff --git a/examples/html-joke-ticker/jokes.html b/examples/html-joke-ticker/jokes.html new file mode 100644 index 0000000..f1de13f --- /dev/null +++ b/examples/html-joke-ticker/jokes.html @@ -0,0 +1,11 @@ + + + + + Witze-Ticker + + +

Witze-Ticker

+
+ + diff --git a/examples/restore-all.sh b/examples/restore-all.sh index ce7fde2..1335f80 100755 --- a/examples/restore-all.sh +++ b/examples/restore-all.sh @@ -19,7 +19,7 @@ done echo "Stelle Examples-Ausgangszustand wieder her..." -for dir in python-calculator rust-wordcount go-fibonacci c-linkedlist; do +for dir in python-calculator rust-wordcount go-fibonacci c-linkedlist bash-sysreport html-joke-ticker; do path="$EXAMPLES/$dir" if [ -d "$path/.git" ]; then rm -rf "$path/.git"