Compare commits
6 Commits
v0.1-waldw
...
RC0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ff177d0e8 | ||
|
|
6fec2df7d9 | ||
|
|
599af5b011 | ||
|
|
0f8946e4c4 | ||
|
|
3ca1709eb3 | ||
|
|
e1cae4fbd1 |
20
VERSION
Normal file
20
VERSION
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
RC0 - Release Candidate 0
|
||||||
|
Datum: 2025-12-21
|
||||||
|
|
||||||
|
🌲 Der Crumbforest ist bereit
|
||||||
|
|
||||||
|
Was entstanden ist:
|
||||||
|
• 17 Waldwächter - Alle Egos vereint
|
||||||
|
• Input-Transparenz - crew_tokens (Token-Tracking)
|
||||||
|
• Output-Transparenz - crew_memo (Krümel-Tracking)
|
||||||
|
• Kollaborative Wurzeln - seeds/ für gemeinsames Wachsen
|
||||||
|
• Zero Rules - Ein Script, ein Ordner, unendlich Möglichkeiten
|
||||||
|
|
||||||
|
Philosophie:
|
||||||
|
eule -> kleine krümel -> tools -> nullfeld
|
||||||
|
#ozmai #mensch #maschine
|
||||||
|
|
||||||
|
Der Wald mag keine Sticker.
|
||||||
|
17 Egos im Wald. 1 Wald ohne Ego. 0 Regeln.
|
||||||
|
|
||||||
|
🦉 Entstanden im Nullfeld 💚
|
||||||
@@ -15,6 +15,7 @@ NC='\033[0m' # No Color
|
|||||||
|
|
||||||
# === KONFIGURATION ===
|
# === KONFIGURATION ===
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
REPO_ROOT="${SCRIPT_DIR}" # Save repo root before sourcing waldwaechter.sh
|
||||||
MISSION_DIR="${SCRIPT_DIR}/missions"
|
MISSION_DIR="${SCRIPT_DIR}/missions"
|
||||||
ENV_FILE="${SCRIPT_DIR}/.env"
|
ENV_FILE="${SCRIPT_DIR}/.env"
|
||||||
|
|
||||||
@@ -499,7 +500,7 @@ function mayaeule_doktor() {
|
|||||||
EULE_RC="/tmp/crumb_eule_$$.rc"
|
EULE_RC="/tmp/crumb_eule_$$.rc"
|
||||||
|
|
||||||
# Absoluter Pfad zum Maya-Eule Script
|
# Absoluter Pfad zum Maya-Eule Script
|
||||||
MAYAEULE_PATH="${SCRIPT_DIR}/crumbforest_roles/mayaeule_zero.sh"
|
MAYAEULE_PATH="${REPO_ROOT}/crumbforest_roles/mayaeule_zero.sh"
|
||||||
|
|
||||||
cat > "${EULE_RC}" << EOF
|
cat > "${EULE_RC}" << EOF
|
||||||
# Load .bashrc if exists
|
# Load .bashrc if exists
|
||||||
@@ -616,7 +617,7 @@ function crumbcrew_doktor() {
|
|||||||
CREW_RC="/tmp/crumb_crew_$$.rc"
|
CREW_RC="/tmp/crumb_crew_$$.rc"
|
||||||
|
|
||||||
# Pfade zu allen Charakteren
|
# Pfade zu allen Charakteren
|
||||||
CREW_DIR="${SCRIPT_DIR}/crumbforest_roles"
|
CREW_DIR="${REPO_ROOT}/crumbforest_roles"
|
||||||
|
|
||||||
cat > "${CREW_RC}" << EOF
|
cat > "${CREW_RC}" << EOF
|
||||||
# Load .bashrc if exists
|
# Load .bashrc if exists
|
||||||
@@ -635,9 +636,15 @@ NC='\033[0m'
|
|||||||
# Prompt im CrumbCrew-Style
|
# Prompt im CrumbCrew-Style
|
||||||
export PS1="\[\033[1;32m\](🌲 CrumbCrew) \u@\h:\w\$ \[\033[0m\]"
|
export PS1="\[\033[1;32m\](🌲 CrumbCrew) \u@\h:\w\$ \[\033[0m\]"
|
||||||
|
|
||||||
# Pfad zu den Charakteren
|
# Repo Root und Pfade
|
||||||
|
REPO_ROOT="${REPO_ROOT}"
|
||||||
CREW_DIR="${CREW_DIR}"
|
CREW_DIR="${CREW_DIR}"
|
||||||
|
|
||||||
|
# Lade Waldwächter Library für crew_tokens, crew_status, etc.
|
||||||
|
if [[ -f "\${REPO_ROOT}/lib/waldwaechter.sh" ]]; then
|
||||||
|
source "\${REPO_ROOT}/lib/waldwaechter.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
# === WALDWÄCHTER FUNKTIONEN ===
|
# === WALDWÄCHTER FUNKTIONEN ===
|
||||||
|
|
||||||
function mayaeule() {
|
function mayaeule() {
|
||||||
@@ -676,6 +683,15 @@ function schnippsi() {
|
|||||||
"\$CREW_DIR/schnippsi_zero.sh" "\$@"
|
"\$CREW_DIR/schnippsi_zero.sh" "\$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function templatus() {
|
||||||
|
if [[ -z "\$1" ]]; then
|
||||||
|
echo -e "\${YELLOW}Verwendung: templatus \"Deine Frage\"\${NC}"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo -e "\${BLUE}📄 Templatus strukturiert...\${NC}"
|
||||||
|
"\$CREW_DIR/templatus_zero.sh" "\$@"
|
||||||
|
}
|
||||||
|
|
||||||
function tobi() {
|
function tobi() {
|
||||||
if [[ -z "\$1" ]]; then
|
if [[ -z "\$1" ]]; then
|
||||||
echo -e "\${YELLOW}Verwendung: tobi \"Deine Frage\"\${NC}"
|
echo -e "\${YELLOW}Verwendung: tobi \"Deine Frage\"\${NC}"
|
||||||
@@ -801,6 +817,7 @@ function crew_help() {
|
|||||||
echo -e " \${BLUE}🐙 deepbit\${NC} - Der poetische Oktopus (Bash-Konzepte)"
|
echo -e " \${BLUE}🐙 deepbit\${NC} - Der poetische Oktopus (Bash-Konzepte)"
|
||||||
echo -e " \${RED}🐞 bugsy\${NC} - Der Debugging-Clown (Fehlersuche)"
|
echo -e " \${RED}🐞 bugsy\${NC} - Der Debugging-Clown (Fehlersuche)"
|
||||||
echo -e " \${CYAN}✂️ schnippsi\${NC} - Der Shell-Helfer (Kommandos)"
|
echo -e " \${CYAN}✂️ schnippsi\${NC} - Der Shell-Helfer (Kommandos)"
|
||||||
|
echo -e " \${BLUE}📄 templatus\${NC} - Der Template-Master (HTML, Struktur)"
|
||||||
echo -e " \${GREEN}🤖 tobi\${NC} - Der Daten-Experte (JSON, Daten)"
|
echo -e " \${GREEN}🤖 tobi\${NC} - Der Daten-Experte (JSON, Daten)"
|
||||||
echo -e " \${CYAN}🔧 schraubaer\${NC} - Der Handwerker (Werkzeug, Schweißen)"
|
echo -e " \${CYAN}🔧 schraubaer\${NC} - Der Handwerker (Werkzeug, Schweißen)"
|
||||||
echo -e " \${GREEN}🐌 schnecki\${NC} - Der Elektronik-Bastler (Löten, Sensoren)"
|
echo -e " \${GREEN}🐌 schnecki\${NC} - Der Elektronik-Bastler (Löten, Sensoren)"
|
||||||
@@ -830,6 +847,7 @@ function crew_help() {
|
|||||||
echo " deepbit \"Erkläre Pipes und Redirects\""
|
echo " deepbit \"Erkläre Pipes und Redirects\""
|
||||||
echo " bugsy \"Warum funktioniert mein Script nicht?\""
|
echo " bugsy \"Warum funktioniert mein Script nicht?\""
|
||||||
echo " schnippsi \"Wie nutze ich grep?\""
|
echo " schnippsi \"Wie nutze ich grep?\""
|
||||||
|
echo " templatus \"Erstelle eine HTML5 Struktur\""
|
||||||
echo " tobi \"Parse dieses JSON\""
|
echo " tobi \"Parse dieses JSON\""
|
||||||
echo " schraubaer \"Welches Werkzeug brauche ich zum Löten?\""
|
echo " schraubaer \"Welches Werkzeug brauche ich zum Löten?\""
|
||||||
echo " schnecki \"Wie löte ich eine LED an einen Widerstand?\""
|
echo " schnecki \"Wie löte ich eine LED an einen Widerstand?\""
|
||||||
@@ -854,7 +872,7 @@ function crew_status() {
|
|||||||
echo -e "\${CYAN}🌲 CrumbCrew Status\${NC}"
|
echo -e "\${CYAN}🌲 CrumbCrew Status\${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
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")
|
CHARS=("mayaeule:🦉:Maya-Eule" "deepbit:🐙:Deepbit" "bugsy:🐞:Bugsy" "schnippsi:✂️:Schnippsi" "templatus:📄:Templatus" "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
|
for char_info in "\${CHARS[@]}"; do
|
||||||
IFS=: read -r name icon display <<< "\$char_info"
|
IFS=: read -r name icon display <<< "\$char_info"
|
||||||
@@ -883,52 +901,8 @@ function crew_status() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function crew_tokens() {
|
# crew_tokens, crew_memory, crew_status, crew_doctor, crew_syntax, crew_help
|
||||||
echo -e "\${CYAN}📊 CrumbCrew Token-Verbrauch\${NC}"
|
# sind bereits in waldwaechter.sh definiert und werden automatisch geladen
|
||||||
echo ""
|
|
||||||
|
|
||||||
TOTAL=0
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
while IFS= read -r line; do
|
|
||||||
tokens=\$(echo "\$line" | jq -r '.usage.total_tokens' 2>/dev/null)
|
|
||||||
if [[ "\$tokens" != "null" ]] && [[ -n "\$tokens" ]]; then
|
|
||||||
char_tokens=\$((char_tokens + tokens))
|
|
||||||
fi
|
|
||||||
done < "\$logdir/token_log.json"
|
|
||||||
|
|
||||||
if [[ \$char_tokens -gt 0 ]]; then
|
|
||||||
echo -e " \${GREEN}\$char_name:\${NC} \$char_tokens Tokens"
|
|
||||||
TOTAL=\$((TOTAL + char_tokens))
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo -e "\${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
|
|
||||||
echo -e " \${GREEN}Gesamt: \$TOTAL Tokens\${NC}"
|
|
||||||
echo -e " \${CYAN}Jede Frage ist wertvoll 🌲\${NC}"
|
|
||||||
echo -e "\${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function crew_memory() {
|
|
||||||
echo -e "\${CYAN}📜 CrumbCrew Erinnerungen\${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
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)
|
|
||||||
if [[ "\$count" != "null" ]] && [[ \$count -gt 0 ]]; then
|
|
||||||
echo -e " \${GREEN}\$char_name:\${NC} \$count Gespräche"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
alias help="crew_help"
|
alias help="crew_help"
|
||||||
alias status="crew_status"
|
alias status="crew_status"
|
||||||
|
|||||||
@@ -436,11 +436,16 @@ function crew_help() {
|
|||||||
Crew-Verwaltung:
|
Crew-Verwaltung:
|
||||||
crew_help Diese Hilfe anzeigen
|
crew_help Diese Hilfe anzeigen
|
||||||
crew_status Status aller 17 Waldwächter
|
crew_status Status aller 17 Waldwächter
|
||||||
crew_tokens Token-Verbrauch ALLER Charaktere
|
crew_tokens Token-Verbrauch ALLER Charaktere (Input)
|
||||||
|
crew_memo Kreative Krümel anzeigen (Output)
|
||||||
crew_memory Erinnerungen durchsuchen
|
crew_memory Erinnerungen durchsuchen
|
||||||
crew_doctor System-Diagnose (Version, Pfade, Dependencies)
|
crew_doctor System-Diagnose (Version, Pfade, Dependencies)
|
||||||
crew_syntax Syntax Check aller Scripts
|
crew_syntax Syntax Check aller Scripts
|
||||||
|
|
||||||
|
Krümel-Tracking:
|
||||||
|
crumb_memo Kreativen Link festhalten (Mixcloud, Git, etc.)
|
||||||
|
crew_memo Alle kreativen Krümel anzeigen
|
||||||
|
|
||||||
Einzelne Waldwächter:
|
Einzelne Waldwächter:
|
||||||
|
|
||||||
🔺 Das Dreieck (Foundation):
|
🔺 Das Dreieck (Foundation):
|
||||||
@@ -481,6 +486,132 @@ Beispiele:
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 📝 crumb_memo - Kreative Output-Krümel festhalten
|
||||||
|
function crumb_memo() {
|
||||||
|
local link="$1"
|
||||||
|
local notiz="${2:-}"
|
||||||
|
|
||||||
|
if [[ -z "$link" ]]; then
|
||||||
|
echo "📝 Crumb Memo - Kreative Output-Krümel"
|
||||||
|
echo ""
|
||||||
|
echo "Verwendung: crumb_memo <link> [notiz]"
|
||||||
|
echo ""
|
||||||
|
echo "Beispiele:"
|
||||||
|
echo " crumb_memo \"https://mixcloud.com/digfafunk/new-mix\""
|
||||||
|
echo " crumb_memo \"https://github.com/user/repo\" \"Neues Feature\""
|
||||||
|
echo " crumb_memo \"https://soundcloud.com/artist/track\""
|
||||||
|
echo " crumb_memo \"https://youtube.com/watch?v=xyz\" \"Tutorial\""
|
||||||
|
echo ""
|
||||||
|
echo "Zeige alle Krümel mit: crew_memo"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Memo-Datei
|
||||||
|
local memo_file="${CRUMB_LOGS_DIR}/crumb_memo.json"
|
||||||
|
mkdir -p "${CRUMB_LOGS_DIR}"
|
||||||
|
|
||||||
|
# Initialisiere Datei wenn nicht vorhanden
|
||||||
|
if [[ ! -f "$memo_file" ]]; then
|
||||||
|
echo "[]" > "$memo_file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Erkenne Typ aus URL
|
||||||
|
local typ="link"
|
||||||
|
if [[ "$link" =~ mixcloud\.com ]]; then
|
||||||
|
typ="mixcloud"
|
||||||
|
elif [[ "$link" =~ soundcloud\.com ]]; then
|
||||||
|
typ="soundcloud"
|
||||||
|
elif [[ "$link" =~ (youtube\.com|youtu\.be) ]]; then
|
||||||
|
typ="youtube"
|
||||||
|
elif [[ "$link" =~ (github\.com|gitlab\.com) ]]; then
|
||||||
|
typ="git"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Zeitstempel
|
||||||
|
local zeit=$(date '+%Y-%m-%d %H:%M:%S')
|
||||||
|
|
||||||
|
# Erstelle JSON-Eintrag
|
||||||
|
local entry=$(jq -n \
|
||||||
|
--arg zeit "$zeit" \
|
||||||
|
--arg link "$link" \
|
||||||
|
--arg typ "$typ" \
|
||||||
|
--arg notiz "$notiz" \
|
||||||
|
'{zeit: $zeit, link: $link, typ: $typ, notiz: $notiz}')
|
||||||
|
|
||||||
|
# Füge zur Datei hinzu (append)
|
||||||
|
if [[ -s "$memo_file" ]]; then
|
||||||
|
# Datei hat Inhalt - füge zum Array hinzu
|
||||||
|
jq ". += [$entry]" "$memo_file" > "${memo_file}.tmp" && mv "${memo_file}.tmp" "$memo_file"
|
||||||
|
else
|
||||||
|
# Datei ist leer - erstelle Array
|
||||||
|
echo "[$entry]" > "$memo_file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Icon je nach Typ
|
||||||
|
local icon="🔗"
|
||||||
|
case "$typ" in
|
||||||
|
mixcloud) icon="🎧" ;;
|
||||||
|
soundcloud) icon="🔊" ;;
|
||||||
|
youtube) icon="📹" ;;
|
||||||
|
git) icon="💾" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$icon Krümel gespeichert: $typ"
|
||||||
|
echo " $link"
|
||||||
|
if [[ -n "$notiz" ]]; then
|
||||||
|
echo " 📝 $notiz"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# 📜 crew_memo - Zeige alle kreativen Krümel
|
||||||
|
function crew_memo() {
|
||||||
|
local memo_file="${CRUMB_LOGS_DIR}/crumb_memo.json"
|
||||||
|
|
||||||
|
echo "📜 Crumb Memo - Deine kreativen Krümel"
|
||||||
|
echo ""
|
||||||
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
|
|
||||||
|
if [[ ! -f "$memo_file" ]] || [[ ! -s "$memo_file" ]]; then
|
||||||
|
echo " Noch keine Krümel gespeichert."
|
||||||
|
echo ""
|
||||||
|
echo " Füge welche hinzu mit:"
|
||||||
|
echo " crumb_memo \"https://mixcloud.com/digfafunk/...\""
|
||||||
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Zähle Einträge pro Typ
|
||||||
|
local total=$(jq 'length' "$memo_file")
|
||||||
|
local mixcloud=$(jq '[.[] | select(.typ == "mixcloud")] | length' "$memo_file")
|
||||||
|
local soundcloud=$(jq '[.[] | select(.typ == "soundcloud")] | length' "$memo_file")
|
||||||
|
local youtube=$(jq '[.[] | select(.typ == "youtube")] | length' "$memo_file")
|
||||||
|
local git=$(jq '[.[] | select(.typ == "git")] | length' "$memo_file")
|
||||||
|
|
||||||
|
# Zeige letzte 10 Einträge
|
||||||
|
echo ""
|
||||||
|
jq -r '.[-10:] | reverse | .[] |
|
||||||
|
if .typ == "mixcloud" then " 🎧"
|
||||||
|
elif .typ == "soundcloud" then " 🔊"
|
||||||
|
elif .typ == "youtube" then " 📹"
|
||||||
|
elif .typ == "git" then " 💾"
|
||||||
|
else " 🔗"
|
||||||
|
end + " " + .zeit + " - " + .typ +
|
||||||
|
(if .notiz != "" then "\n 📝 " + .notiz else "" end) +
|
||||||
|
"\n " + .link' "$memo_file"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
|
printf " Gesamt: %d Krümel" "$total"
|
||||||
|
if [[ $mixcloud -gt 0 ]]; then printf " | 🎧 %d" "$mixcloud"; fi
|
||||||
|
if [[ $soundcloud -gt 0 ]]; then printf " | 🔊 %d" "$soundcloud"; fi
|
||||||
|
if [[ $youtube -gt 0 ]]; then printf " | 📹 %d" "$youtube"; fi
|
||||||
|
if [[ $git -gt 0 ]]; then printf " | 💾 %d" "$git"; fi
|
||||||
|
echo ""
|
||||||
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
|
echo ""
|
||||||
|
echo "💡 Output-Transparenz: Was habe ich geschaffen? 💚"
|
||||||
|
}
|
||||||
|
|
||||||
# Export functions so they're available in subshells
|
# Export functions so they're available in subshells
|
||||||
# Note: export -f works in bash, but not in zsh
|
# Note: export -f works in bash, but not in zsh
|
||||||
# In zsh, functions are automatically available in the current shell
|
# In zsh, functions are automatically available in the current shell
|
||||||
@@ -510,6 +641,8 @@ if [[ -n "$BASH_VERSION" ]]; then
|
|||||||
export -f crew_doctor
|
export -f crew_doctor
|
||||||
export -f crew_syntax
|
export -f crew_syntax
|
||||||
export -f crew_help
|
export -f crew_help
|
||||||
|
export -f crumb_memo
|
||||||
|
export -f crew_memo
|
||||||
fi
|
fi
|
||||||
# In zsh, functions are available without export -f
|
# In zsh, functions are available without export -f
|
||||||
|
|
||||||
|
|||||||
48
seeds/README.md
Normal file
48
seeds/README.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# 🌱 Seeds - Wurzeln für den Crumbforest
|
||||||
|
|
||||||
|
Dieses Verzeichnis enthält **Seed-Dateien** - Ausgangspunkte für kollaborative Systeme.
|
||||||
|
|
||||||
|
## crumb_memo.seed.json
|
||||||
|
|
||||||
|
Die erste Wurzel für das **Crumb Memo System** - Output-Transparenz für kreative Krümel.
|
||||||
|
|
||||||
|
### Philosophie
|
||||||
|
|
||||||
|
*"Ein Baum braucht eine Wurzel. Ein Wald braucht den ersten Baum."*
|
||||||
|
|
||||||
|
Diese Datei ist der erste Knoten - erweiterbar von allen.
|
||||||
|
|
||||||
|
### Verwendung
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Im CrumbCrew Shell:
|
||||||
|
crumb_memo "https://mixcloud.com/deine-url" "Dein kreativer Moment"
|
||||||
|
crew_memo # Zeige alle Krümel
|
||||||
|
```
|
||||||
|
|
||||||
|
### Struktur
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"zeit": "2025-12-21 23:00:00",
|
||||||
|
"link": "https://...",
|
||||||
|
"typ": "mixcloud|soundcloud|youtube|git",
|
||||||
|
"notiz": "Deine Notiz"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## CrewLove 💚
|
||||||
|
|
||||||
|
Jeder kann erweitern. Gemeinsam wachsen im Nullfeld der Transparenz.
|
||||||
|
|
||||||
|
**Unterstützte Plattformen:**
|
||||||
|
- 🎧 Mixcloud
|
||||||
|
- 🔊 SoundCloud
|
||||||
|
- 📹 YouTube
|
||||||
|
- 💾 Git (GitHub, GitLab)
|
||||||
|
|
||||||
|
**Transparenz in beide Richtungen:**
|
||||||
|
- Input: `crew_tokens` - Was frage ich?
|
||||||
|
- Output: `crew_memo` - Was schaffe ich?
|
||||||
|
|
||||||
|
*Die Krümel tanzen im Nullfeld!* 🌲✨
|
||||||
20
seeds/crumb_memo.seed.json
Normal file
20
seeds/crumb_memo.seed.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"zeit": "2025-12-21 23:00:57",
|
||||||
|
"link": "https://mixcloud.com/digfafunk/",
|
||||||
|
"typ": "mixcloud",
|
||||||
|
"notiz": "Digi's Mixcloud Profil - Der erste Krümel im Nullfeld"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"zeit": "2025-12-21 23:01:04",
|
||||||
|
"link": "https://github.com/kruemel/crumbmissions",
|
||||||
|
"typ": "git",
|
||||||
|
"notiz": "CF_Zero_V1 Repo - Wo die Waldwächter wohnen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"zeit": "2025-12-21 23:01:04",
|
||||||
|
"link": "https://soundcloud.com/digfafunk",
|
||||||
|
"typ": "soundcloud",
|
||||||
|
"notiz": "Digi on SoundCloud - Klangwelten"
|
||||||
|
}
|
||||||
|
]
|
||||||
Reference in New Issue
Block a user