feat: Demo-Examples (Python/Rust/Go/C) mit Protokoll-Templates und Restore-Skript

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-05-29 19:06:36 +02:00
commit 64c2b7f0fd
21 changed files with 614 additions and 0 deletions

View file

@ -0,0 +1,37 @@
# Demo-Protokoll: go-fibonacci
## Lauf 1
**Datum:**
**Befehl:**
```
/optimize "Ersetze die naive Rekursion durch Memoization.
fib(50) soll in unter 1ms abgeschlossen sein.
Bestehende Tests müssen weiterhin grün bleiben." \
--test-cmd "go test ./..." --interactive
```
**Startzeit:**
**Ende Loop (PASS):**
**Dauer Loop (min):**
**Runden:**
**Endergebnis Loop:** PASS / PASS WITH CONCERNS
**Befehl im --interactive-Checkpoint:**
```
/continue "Gib zusätzlich die Berechnungszeit in Mikrosekunden aus."
```
*(oder: `/continue` ohne Zusatzauftrag)*
**Startzeit /continue:**
**Ende /continue:**
**Befehl /shipit:**
```
/shipit
```
**Startzeit /shipit:**
**Endzeit /shipit:**
**Endergebnis /shipit:** SHIP / NO-SHIP
**Besonderheiten / Beobachtungen:**
---

View file

@ -0,0 +1,48 @@
# Go Fibonacci
Naive rekursive Fibonacci-Implementierung — korrekt, aber exponentiell langsam.
`fib(45)` dauert mehrere Sekunden; `fib(50)` läuft praktisch nicht durch.
## Aktueller Stand
```
main.go fib(n) — rekursiv, O(2^n)
main_test.go TestFib mit 5 Tabellen-Tests (alle grün)
```
## Demo 1: `/optimize --interactive`
```
/optimize "Ersetze die naive Rekursion durch Memoization.
fib(50) soll in unter 1ms abgeschlossen sein.
Bestehende Tests müssen weiterhin grün bleiben." \
--test-cmd "go test ./..." --interactive
```
Nach dem ersten PASS hält pi-coder im **interaktiven Checkpoint** an.
Hier kann ein Zusatzauftrag erteilt werden:
```
/continue "Gib zusätzlich die Berechnungszeit in Mikrosekunden aus."
```
Oder einfach bestätigen:
```
/continue
```
## Demo 2: Abschluss mit `/shipit`
```
/shipit
```
Der Judge prüft nochmals explizit auf Produktionsreife und gibt SHIP oder NO-SHIP zurück.
## Manueller Test
```bash
go test ./...
go run main.go
```

View file

@ -0,0 +1,3 @@
module fibonacci
go 1.21

View file

@ -0,0 +1,18 @@
package main
import "fmt"
// fib berechnet die n-te Fibonacci-Zahl rekursiv.
// Korrekt, aber für n > 40 sehr langsam (exponentiell).
func fib(n int) int {
if n <= 1 {
return n
}
return fib(n-1) + fib(n-2)
}
func main() {
for i := 0; i <= 10; i++ {
fmt.Printf("fib(%2d) = %d\n", i, fib(i))
}
}

View file

@ -0,0 +1,20 @@
package main
import "testing"
func TestFib(t *testing.T) {
cases := []struct {
n, want int
}{
{0, 0},
{1, 1},
{2, 1},
{5, 5},
{10, 55},
}
for _, c := range cases {
if got := fib(c.n); got != c.want {
t.Errorf("fib(%d) = %d, want %d", c.n, got, c.want)
}
}
}