🌲 WUHUUUU! Die 15 Waldwächter sind komplett! 🎉

🔺 Das Dreieck (ohne geht's nicht!):
- 🐘 DumboSQL - Nie vergessend, Elefanten-Gedächtnis
- 🦊 FunkFox - Bash Rapper, Pipes im Beat
- 🕊️ Taichi Taube - Balance, Spirale, Weg zeigen

🎨 Die komplette Crew (alle 15/15):
- Hardware: CapaciTobi, Schnecki, Schraubbär
- Code: SnakePy, PepperPHP, CrabbyRust
- UI: Schnippsi, Templatus, ASCII-Monster
- System: Maya-Eule, Deepbit, Bugsy, Spider, Vektor

 Features:
- Waldwächter Library (lib/waldwaechter.sh)
- Inter-Character Communication via JSON logs
- CrumbCrew Command Central (alle 15 Charaktere)
- Stagebuilder Missionen mit AI-Integration
- Kekshandbuch Zero v0.0 (komplette Doku)

🦊 Yo, check mal den Flow:
Pipes sind wie Beat-Übergänge,
Der Rhythmus hält dich fest und forstet.
Mit | verbindest du Commands,
Smoothes Transition, Flow ohne Ende!

#OZM #Crumbforest #WoFragenWachsen

🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Branko May Trinkwald
2025-12-21 15:52:53 +01:00
parent c414181244
commit 12d53db354
19 changed files with 2484 additions and 25 deletions

View File

@@ -679,6 +679,109 @@ function tobi() {
"\$CREW_DIR/tobi_zero.sh" "\$@"
}
function schraubaer() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: schraubaer \"Deine Frage\"\${NC}"
return
fi
echo -e "\${CYAN}🔧 Schraubbär holt das Werkzeug...\${NC}"
"\$CREW_DIR/schraubaer_zero_final.sh" "\$@"
}
function schnecki() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: schnecki \"Deine Frage\"\${NC}"
return
fi
echo -e "\${GREEN}🐌 Schnecki kriecht heran...\${NC}"
"\$CREW_DIR/schnecki_zero.sh" "\$@"
}
# === DAS DREIECK ===
function dumbosql() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: dumbosql \"Deine Frage\"\${NC}"
return
fi
echo -e "\${CYAN}🐘 Dumbo schlägt die Segelohren auf...\${NC}"
"\$CREW_DIR/dumbosql_zero.sh" "\$@"
}
function funkfox() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: funkfox \"Deine Frage\"\${NC}"
return
fi
echo -e "\${MAGENTA}🦊 FunkFox droppt in den Beat...\${NC}"
"\$CREW_DIR/funkfox_zero.sh" "\$@"
}
function taichitaube() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: taichitaube \"Deine Frage\"\${NC}"
return
fi
echo -e "\${CYAN}🕊️ Taube gleitet in Spiralen herab...\${NC}"
"\$CREW_DIR/taichitaube_zero.sh" "\$@"
}
# === DIE KOMPLETTE CREW ===
function snakepy() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: snakepy \"Deine Frage\"\${NC}"
return
fi
echo -e "\${GREEN}🐍 Snake gleitet durch den Code...\${NC}"
"\$CREW_DIR/snakepy_zero.sh" "\$@"
}
function pepperphp() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: pepperphp \"Deine Frage\"\${NC}"
return
fi
echo -e "\${YELLOW}🧓 Pepper backt ein Rezept...\${NC}"
"\$CREW_DIR/pepperphp_zero.sh" "\$@"
}
function crabbyrust() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: crabbyrust \"Deine Frage\"\${NC}"
return
fi
echo -e "\${RED}🦀 Crabby kneift in den Code...\${NC}"
"\$CREW_DIR/crabbyrust_zero.sh" "\$@"
}
function spider() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: spider \"Deine Frage\"\${NC}"
return
fi
echo -e "\${BLUE}🕷️ Spider spürt das Netz...\${NC}"
"\$CREW_DIR/spider_zero.sh" "\$@"
}
function vektor() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: vektor \"Deine Frage\"\${NC}"
return
fi
echo -e "\${CYAN}🧭 Vektor richtet den Kompass...\${NC}"
"\$CREW_DIR/vektor_zero.sh" "\$@"
}
function asciimonster() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: asciimonster \"Deine Frage\"\${NC}"
return
fi
echo -e "\${MAGENTA}👾 ASCII-Monster malt...\${NC}"
"\$CREW_DIR/asciimonster_zero.sh" "\$@"
}
# === CREW MANAGEMENT ===
function crew_help() {
@@ -693,6 +796,21 @@ function crew_help() {
echo -e " \${RED}🐞 bugsy\${NC} - Der Debugging-Clown (Fehlersuche)"
echo -e " \${CYAN}✂️ schnippsi\${NC} - Der Shell-Helfer (Kommandos)"
echo -e " \${GREEN}🤖 tobi\${NC} - Der Daten-Experte (JSON, Daten)"
echo -e " \${CYAN}🔧 schraubaer\${NC} - Der Handwerker (Werkzeug, Schweißen)"
echo -e " \${GREEN}🐌 schnecki\${NC} - Der Elektronik-Bastler (Löten, Sensoren)"
echo ""
echo -e "\${YELLOW}🔺 Das Dreieck (Listen-Rhythm-Guide):\${NC}"
echo -e " \${CYAN}🐘 dumbosql\${NC} - Der nie vergessende Elefant (SQL, Daten)"
echo -e " \${MAGENTA}🦊 funkfox\${NC} - Der Bash Rapper (Rhythm, Flow)"
echo -e " \${CYAN}🕊️ taichitaube\${NC} - Die Balance-Bringerin (Spirale, Weg)"
echo ""
echo -e "\${GREEN}🌲 Die komplette Crew:\${NC}"
echo -e " \${GREEN}🐍 snakepy\${NC} - Python Guide (Loops, Geduld)"
echo -e " \${YELLOW}🧓 pepperphp\${NC} - Structure Mentor (MVC, Rezepte)"
echo -e " \${RED}🦀 crabbyrust\${NC} - Security Guardian (Ownership)"
echo -e " \${BLUE}🕷️ spider\${NC} - Network Feeler (Vibrationen)"
echo -e " \${CYAN}🧭 vektor\${NC} - Point-to-Point Guide (Navigation)"
echo -e " \${MAGENTA}👾 asciimonster\${NC} - Terminal Artist (8-bit Art)"
echo ""
echo -e "\${YELLOW}Crew-Befehle:\${NC}"
echo " crew_status - Status aller Waldwächter"
@@ -707,6 +825,21 @@ function crew_help() {
echo " bugsy \"Warum funktioniert mein Script nicht?\""
echo " schnippsi \"Wie nutze ich grep?\""
echo " tobi \"Parse dieses JSON\""
echo " schraubaer \"Welches Werkzeug brauche ich zum Löten?\""
echo " schnecki \"Wie löte ich eine LED an einen Widerstand?\""
echo ""
echo -e "\${YELLOW}🔺 Das Dreieck:\${NC}"
echo " dumbosql \"Wie strukturiere ich Sensor-Daten?\""
echo " funkfox \"Erkläre mir Pipes im Flow\""
echo " taichitaube \"Hilf mir, dieses Chaos zu strukturieren\""
echo ""
echo -e "\${GREEN}Die komplette Crew:\${NC}"
echo " snakepy \"Zeig mir 3 Wege, eine Liste zu sortieren\""
echo " pepperphp \"Erkläre MVC als Rezept\""
echo " crabbyrust \"Was bedeutet Ownership?\""
echo " spider \"Wie funktioniert eine REST API?\""
echo " vektor \"Wie navigiert ein Roboter?\""
echo " asciimonster \"Mach mir einen coolen Header\""
echo ""
echo -e "\${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
}
@@ -715,11 +848,20 @@ function crew_status() {
echo -e "\${CYAN}🌲 CrumbCrew Status\${NC}"
echo ""
CHARS=("mayaeule:🦉:Maya-Eule" "deepbit:🐙:Deepbit" "bugsy:🐞:Bugsy" "schnippsi:✂️:Schnippsi" "tobi:🤖:Tobi")
CHARS=("mayaeule:🦉:Maya-Eule" "deepbit:🐙:Deepbit" "bugsy:🐞:Bugsy" "schnippsi:✂️:Schnippsi" "tobi:🤖:Tobi" "schraubaer:🔧:Schraubbär" "schnecki:🐌:Schnecki" "dumbosql:🐘:DumboSQL" "funkfox:🦊:FunkFox" "taichitaube:🕊️:TaichiTaube" "snakepy:🐍:SnakePy" "pepperphp:🧓:PepperPHP" "crabbyrust:🦀:CrabbyRust" "spider:🕷️:Spider" "vektor:🧭:Vektor" "asciimonster:👾:ASCII-Monster")
for char_info in "\${CHARS[@]}"; do
IFS=: read -r name icon display <<< "\$char_info"
if [[ -x "\$CREW_DIR/\${name}_zero.sh" ]]; then
# Schraubbär has special filename
if [[ "\$name" == "schraubaer" ]]; then
script_name="\${name}_zero_final.sh"
elif [[ "\$name" == "schnecki" ]]; then
script_name="\${name}_zero.sh"
else
script_name="\${name}_zero.sh"
fi
if [[ -x "\$CREW_DIR/\$script_name" ]]; then
echo -e " \${GREEN}✅ \$icon \$display\${NC} - Bereit"
else
echo -e " \${RED}❌ \$icon \$display\${NC} - Nicht verfügbar"
@@ -741,7 +883,7 @@ function crew_tokens() {
TOTAL=0
for logdir in ~/.{mayaeule,eule,deepbit,bugsy,schnippsi,tobi}_logs; do
for logdir in ~/.{mayaeule,eule,deepbit,bugsy,schnippsi,tobi,schraubaer,schnecki,dumbosql,funkfox,taichitaube,snakepy,pepperphp,crabbyrust,spider,vektor,asciimonster}_logs; do
if [[ -d "\$logdir" ]] && [[ -f "\$logdir/token_log.json" ]]; then
char_name=\$(basename "\$logdir" | sed 's/_logs//')
char_tokens=0
@@ -771,7 +913,7 @@ function crew_memory() {
echo -e "\${CYAN}📜 CrumbCrew Erinnerungen\${NC}"
echo ""
for logdir in ~/.{mayaeule,eule,deepbit,bugsy,schnippsi,tobi}_logs; do
for logdir in ~/.{mayaeule,eule,deepbit,bugsy,schnippsi,tobi,schraubaer,schnecki,dumbosql,funkfox,taichitaube,snakepy,pepperphp,crabbyrust,spider,vektor,asciimonster}_logs; do
if [[ -d "\$logdir" ]] && [[ -f "\$logdir/*_history.json" ]]; then
char_name=\$(basename "\$logdir" | sed 's/_logs//')
count=\$(jq '. | length' "\$logdir/*_history.json" 2>/dev/null)