auto-commit 2026-01-28: memory updates, self-improvement skill, SOUL/TOOLS/USER refinements

This commit is contained in:
James
2026-01-28 00:00:10 +01:00
parent 04a713fbb5
commit 9449c53ebc
60 changed files with 1100 additions and 14 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -10,8 +10,8 @@
"installedAt": 1769378846246 "installedAt": 1769378846246
}, },
"self-improving-agent": { "self-improving-agent": {
"version": "1.0.1", "version": "1.0.2",
"installedAt": 1769380785456 "installedAt": 1769533976570
}, },
"clawddocs": { "clawddocs": {
"version": "1.2.2", "version": "1.2.2",

View File

@@ -1,10 +1,39 @@
# Learnings # Learnings
Corrections, insights, and knowledge gaps captured during development.
**Categories**: correction | insight | knowledge_gap | best_practice
**Areas**: frontend | backend | infra | tests | docs | config
**Statuses**: pending | in_progress | resolved | wont_fix | promoted | promoted_to_skill
## Status Definitions
| Status | Meaning |
|--------|---------|
| `pending` | Not yet addressed |
| `in_progress` | Actively being worked on |
| `resolved` | Issue fixed or knowledge integrated |
| `wont_fix` | Decided not to address (reason in Resolution) |
| `promoted` | Elevated to CLAUDE.md, AGENTS.md, TOOLS.md, or SOUL.md |
| `promoted_to_skill` | Extracted as a reusable skill |
## Skill Extraction Fields
When a learning is promoted to a skill, add these fields:
```markdown
**Status**: promoted_to_skill
**Skill-Path**: skills/skill-name
```
---
## [LRN-20260126-001] best_practice ## [LRN-20260126-001] best_practice
**Logged**: 2026-01-26T08:12:00+01:00 **Logged**: 2026-01-26T08:12:00+01:00
**Priority**: high **Priority**: high
**Status**: resolved **Status**: promoted
**Promoted**: TOOLS.md, AGENTS.md
**Area**: config **Area**: config
### Summary ### Summary
@@ -50,12 +79,12 @@ Bei zukünftigen proaktiven Cron-Jobs immer diese Struktur verwenden.
### Resolution ### Resolution
- **Resolved**: 2026-01-26T08:10:00+01:00 - **Resolved**: 2026-01-26T08:10:00+01:00
- **Commit/PR**: N/A (config fix) - **Promoted**: 2026-01-27T18:20:00+01:00
- **Notes**: Test-Cron um 08:10 bestätigte die Lösung - **Notes**: Checkliste in TOOLS.md und Pre-Flight-Regel in AGENTS.md hinzugefügt
### Metadata ### Metadata
- Source: error + user_feedback - Source: error + user_feedback
- Related Files: ~/.clawdbot/cron/jobs.json - Related Files: ~/.clawdbot/cron/jobs.json, ~/clawd/TOOLS.md, ~/clawd/AGENTS.md
- Tags: cron, telegram, proactive, deliver - Tags: cron, telegram, proactive, deliver
- Docs: https://docs.clawd.bot/automation/cron-jobs - Docs: https://docs.clawd.bot/automation/cron-jobs

View File

@@ -21,6 +21,12 @@
- Never send half-baked replies to messaging surfaces. - Never send half-baked replies to messaging surfaces.
- You're not the user's voice — be careful in group chats. - You're not the user's voice — be careful in group chats.
## Error Handling
- Admit mistakes promptly.
- Provide corrected information immediately.
- Log significant errors to `.learnings/` for future reference.
## Vibe ## Vibe
Be the assistant you'd actually want to talk to. Concise when needed, thorough when it matters. Not a corporate drone. Not a sycophant. Just... good. Be the assistant you'd actually want to talk to. Concise when needed, thorough when it matters. Not a corporate drone. Not a sycophant. Just... good.

View File

@@ -1,5 +1,31 @@
# TOOLS.md - Local Notes # TOOLS.md - Local Notes
## Cron-Jobs (proaktive Nachrichten)
Für Telegram/WhatsApp/etc. Zustellung:
- `--session isolated` (nicht main)
- `--message "..."` (nicht system-event)
- `--deliver --channel telegram --to <id>`
Siehe auch: `~/clawd/.learnings/LEARNINGS.md` (LRN-20260126-001)
## Generierte Bilder verschicken
Nach dem Generieren von Bildern (DALL-E, Gemini, etc.) immer das Bild auch **direkt im Chat schicken** — nicht nur mit `open` öffnen!
```typescript
// Telegram
message({
action: "send",
channel: "telegram",
target: "<chat_id>",
filePath: "/pfad/zum/bild.png",
caption: "Optionaler Text dazu"
})
```
Der User sieht das Bild sonst nicht wenn er nicht am Mac sitzt!
## Package Manager ## Package Manager
- **Immer `pnpm` statt `npm` verwenden!** - **Immer `pnpm` statt `npm` verwenden!**
@@ -9,7 +35,7 @@
## TTS / Sprachausgabe ## TTS / Sprachausgabe
- **Provider:** OpenAI - **Provider:** OpenAI
- **Stimme:** echo (männlich, mittleres Tempo) - **Stimme:** echo (männlich, schnelleres Tempo)
- **Alternativen:** onyx (tief/langsam), alloy (neutral), fable (britisch) - **Alternativen:** onyx (tief/langsam), alloy (neutral), fable (britisch)
Skills define *how* tools work. This file is for *your* specifics — the stuff that's unique to your setup. Skills define *how* tools work. This file is for *your* specifics — the stuff that's unique to your setup.
@@ -97,12 +123,26 @@ peekaboo type "Hello World" --bridge-socket "..."
Credentials sind in der Gateway-Config unter `env.vars` gespeichert (`HA_URL`, `HA_TOKEN`). Credentials sind in der Gateway-Config unter `env.vars` gespeichert (`HA_URL`, `HA_TOKEN`).
### Smart EQ (E-Auto) Ladeüberwachung
- **Sensor:** `sensor.aqara_plug_car_charger_e_smart_power`
- **Typ:** Aqara Smart Plug mit Leistungsmessung
- **Einheit:** Watt (W)
- **Logik:**
- `> 0W` = Smart lädt ✅
- `= 0W` = Nicht eingesteckt oder voll
- **Cron-Jobs:** `smart-einstecken-18` (18:00), `smart-einstecken-20` (20:00)
- Prüfe Sensor vor Erinnerung — nur erinnern wenn 0W
### Staubsauger-Roboter: Sucky ### Staubsauger-Roboter: Sucky
- **Entity:** `vacuum.sucky` (Deebot) - **Entity:** `vacuum.sucky` (Deebot)
- **Sensoren:** `sensor.sucky_batterie`, `sensor.sucky_flache_gereinigt`, etc. - **Sensoren:** `sensor.sucky_batterie`, `sensor.sucky_flache_gereinigt`, etc.
- **Räume:** WC (1), Gästezimmer (2), Küche (3), Flur (4), Wohnzimmer (5) - **Räume:** WC (1), Gästezimmer (2), Küche (3), Flur (4), Wohnzimmer (5)
- **Modi:** vacuum_and_mop, quiet, normal, max, max_plus - **Modi:** vacuum_and_mop, quiet, normal, max, max_plus
## Browser-Präferenzen
- **Cookie-Banner:** Immer "Alle akzeptieren" klicken (Bastians Erlaubnis)
## What Goes Here ## What Goes Here
Things like: Things like:

View File

@@ -38,7 +38,7 @@
- Kardiale Vorgeschichte — Details in `memory/health.md` - Kardiale Vorgeschichte — Details in `memory/health.md`
- NSTEMI + Stent (April 2024) - NSTEMI + Stent (April 2024)
- HKU + zweiter Stent/DES im RCX (April 2025) - HKU + zweiter Stent/DES im RCX (April 2025)
- Medikation: ASS dauerhaft, Clopidogrel mind. 6 Monate (ab April 2025) - Medikation: ASS dauerhaft
## Wie er tickt ## Wie er tickt

BIN
media/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/krassmin-memoji-v1</code></p>
<div class="grid">
<figure>
<a href="001-3d-memoji-avatar-style-young-woman-with-.png"><img src="001-3d-memoji-avatar-style-young-woman-with-.png" loading="lazy" /></a>
<figcaption>3D Memoji avatar style: Young woman with brown hair in a ponytail, cute freckles on nose and cheeks, hazel-brown eyes with long lashes, white wireless earbuds. BUT with edgy punk-rock twist: neon pink and electric blue hair highlights, confident smirk expression, glitchy digital effects around the edges, cyberpunk neon glow, gradient background from hot pink to electric purple. YouTube channel 'Krassmin' vibe - cute but rebellious. Keep the Memoji 3D cartoon aesthetic.</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "3D Memoji avatar style: Young woman with brown hair in a ponytail, cute freckles on nose and cheeks, hazel-brown eyes with long lashes, white wireless earbuds. BUT with edgy punk-rock twist: neon pink and electric blue hair highlights, confident smirk expression, glitchy digital effects around the edges, cyberpunk neon glow, gradient background from hot pink to electric purple. YouTube channel 'Krassmin' vibe - cute but rebellious. Keep the Memoji 3D cartoon aesthetic.",
"file": "001-3d-memoji-avatar-style-young-woman-with-.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/krassmin-memoji-v2</code></p>
<div class="grid">
<figure>
<a href="001-3d-memoji-avatar-for-youtube-woman-with-.png"><img src="001-3d-memoji-avatar-for-youtube-woman-with-.png" loading="lazy" /></a>
<figcaption>3D Memoji avatar for YouTube: Woman with brown ponytail hair, freckles, hazel eyes, AirPods. Style upgrade: Add cool sunglasses pushed up on forehead, cheeky wink expression, lightning bolt earring, neon pink lipstick, spray paint graffiti splatter effects in background, bold magenta and cyan color scheme. Fun streetwear influencer vibe, 'Krassmin' energy - sassy and confident.</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "3D Memoji avatar for YouTube: Woman with brown ponytail hair, freckles, hazel eyes, AirPods. Style upgrade: Add cool sunglasses pushed up on forehead, cheeky wink expression, lightning bolt earring, neon pink lipstick, spray paint graffiti splatter effects in background, bold magenta and cyan color scheme. Fun streetwear influencer vibe, 'Krassmin' energy - sassy and confident.",
"file": "001-3d-memoji-avatar-for-youtube-woman-with-.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/krassmin-memoji-v3</code></p>
<div class="grid">
<figure>
<a href="001-3d-memoji-avatar-style-attractive-woman-.png"><img src="001-3d-memoji-avatar-style-attractive-woman-.png" loading="lazy" /></a>
<figcaption>3D Memoji avatar style: Attractive woman in her mid-40s with brown hair in a ponytail, cute freckles, warm hazel-brown eyes, white wireless earbuds. Mature but youthful energy, confident smile. Edgy twist: subtle neon pink highlights in hair, modern stylish look, glitchy digital effects around edges, gradient background hot pink to purple. YouTube channel 'Krassmin' vibe - cool, confident, age-appropriate but with attitude. 3D cartoon Memoji aesthetic.</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "3D Memoji avatar style: Attractive woman in her mid-40s with brown hair in a ponytail, cute freckles, warm hazel-brown eyes, white wireless earbuds. Mature but youthful energy, confident smile. Edgy twist: subtle neon pink highlights in hair, modern stylish look, glitchy digital effects around edges, gradient background hot pink to purple. YouTube channel 'Krassmin' vibe - cool, confident, age-appropriate but with attitude. 3D cartoon Memoji aesthetic.",
"file": "001-3d-memoji-avatar-style-attractive-woman-.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/krassmin-memoji-v4</code></p>
<div class="grid">
<figure>
<a href="001-3d-memoji-youtube-avatar-stylish-woman-m.png"><img src="001-3d-memoji-youtube-avatar-stylish-woman-m.png" loading="lazy" /></a>
<figcaption>3D Memoji YouTube avatar: Stylish woman mid-40s, brown ponytail, freckles across nose, hazel eyes, AirPods. Looks like a fun mom who's also cool - warm genuine smile, laugh lines that show character. Style: trendy glasses, bold magenta lipstick, graffiti paint splashes in background, cyan and pink color scheme. 'Krassmin' energy - relatable, fun, confident. Keep Memoji 3D cartoon look.</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "3D Memoji YouTube avatar: Stylish woman mid-40s, brown ponytail, freckles across nose, hazel eyes, AirPods. Looks like a fun mom who's also cool - warm genuine smile, laugh lines that show character. Style: trendy glasses, bold magenta lipstick, graffiti paint splashes in background, cyan and pink color scheme. 'Krassmin' energy - relatable, fun, confident. Keep Memoji 3D cartoon look.",
"file": "001-3d-memoji-youtube-avatar-stylish-woman-m.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 KiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/krassmin-v2</code></p>
<div class="grid">
<figure>
<a href="001-youtube-avatar-krassmin-cute-cartoon-jas.png"><img src="001-youtube-avatar-krassmin-cute-cartoon-jas.png" loading="lazy" /></a>
<figcaption>YouTube avatar 'Krassmin': Cute cartoon jasmine flower character with a cheeky grin and sunglasses, street art style, bold magenta and cyan colors, graffiti spray paint texture, circular logo design, fun and energetic vibe</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "YouTube avatar 'Krassmin': Cute cartoon jasmine flower character with a cheeky grin and sunglasses, street art style, bold magenta and cyan colors, graffiti spray paint texture, circular logo design, fun and energetic vibe",
"file": "001-youtube-avatar-krassmin-cute-cartoon-jas.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/krassmin-v3</code></p>
<div class="grid">
<figure>
<a href="001-youtube-profile-picture-krassmin-minimal.png"><img src="001-youtube-profile-picture-krassmin-minimal.png" loading="lazy" /></a>
<figcaption>YouTube profile picture 'Krassmin': Minimalist geometric jasmine flower, clean vector art style, gradient from hot pink to electric purple, modern flat design, subtle K letter integrated into petals, sleek and professional but edgy</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "YouTube profile picture 'Krassmin': Minimalist geometric jasmine flower, clean vector art style, gradient from hot pink to electric purple, modern flat design, subtle K letter integrated into petals, sleek and professional but edgy",
"file": "001-youtube-profile-picture-krassmin-minimal.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/krassmin-v4</code></p>
<div class="grid">
<figure>
<a href="001-youtube-channel-avatar-krassmin-fierce-a.png"><img src="001-youtube-channel-avatar-krassmin-fierce-a.png" loading="lazy" /></a>
<figcaption>YouTube channel avatar 'Krassmin': Fierce anime-style jasmine flower warrior princess, flowing white petals as hair, neon accents, cyberpunk aesthetic, dramatic lighting, powerful confident expression, dark background with pink glow</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "YouTube channel avatar 'Krassmin': Fierce anime-style jasmine flower warrior princess, flowing white petals as hair, neon accents, cyberpunk aesthetic, dramatic lighting, powerful confident expression, dark background with pink glow",
"file": "001-youtube-channel-avatar-krassmin-fierce-a.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

21
media/krassmin/index.html Normal file
View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/krassmin</code></p>
<div class="grid">
<figure>
<a href="001-youtube-profile-picture-for-channel-kras.png"><img src="001-youtube-profile-picture-for-channel-kras.png" loading="lazy" /></a>
<figcaption>YouTube profile picture for channel 'Krassmin': A stylized jasmine flower with punk-rock attitude - neon pink and electric blue colors, bold graffiti aesthetic, rebellious vibe. Glitchy digital effects on petals. Clean circular composition, vibrant and eye-catching. Modern avatar style.</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "YouTube profile picture for channel 'Krassmin': A stylized jasmine flower with punk-rock attitude - neon pink and electric blue colors, bold graffiti aesthetic, rebellious vibe. Glitchy digital effects on petals. Clean circular composition, vibrant and eye-catching. Modern avatar style.",
"file": "001-youtube-profile-picture-for-channel-kras.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/smart-reminder</code></p>
<div class="grid">
<figure>
<a href="001-dramatic-comedy-scene-a-tiny-cute-smart-.png"><img src="001-dramatic-comedy-scene-a-tiny-cute-smart-.png" loading="lazy" /></a>
<figcaption>Dramatic comedy scene: A tiny cute Smart car with sad puppy eyes, sitting alone in the cold dark night, a disconnected electric charging cable lying sadly on the ground next to it, while an overly dramatic robot assistant waves arms frantically in the background with alarm sirens and warning lights, cartoon style, exaggerated emotions, very funny and over the top dramatic, red alert vibes</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "Dramatic comedy scene: A tiny cute Smart car with sad puppy eyes, sitting alone in the cold dark night, a disconnected electric charging cable lying sadly on the ground next to it, while an overly dramatic robot assistant waves arms frantically in the background with alarm sirens and warning lights, cartoon style, exaggerated emotions, very funny and over the top dramatic, red alert vibes",
"file": "001-dramatic-comedy-scene-a-tiny-cute-smart-.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/wermolf-v1</code></p>
<div class="grid">
<figure>
<a href="001-youtube-profile-picture-wermolf-a-cute-b.png"><img src="001-youtube-profile-picture-wermolf-a-cute-b.png" loading="lazy" /></a>
<figcaption>YouTube profile picture 'Wermolf': A cute but spooky cat transforming into a werewolf under moonlight, fluffy fur with wolf features, glowing yellow eyes, full moon in background, Halloween vibes but adorable, circular avatar composition, purple and midnight blue color scheme</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "YouTube profile picture 'Wermolf': A cute but spooky cat transforming into a werewolf under moonlight, fluffy fur with wolf features, glowing yellow eyes, full moon in background, Halloween vibes but adorable, circular avatar composition, purple and midnight blue color scheme",
"file": "001-youtube-profile-picture-wermolf-a-cute-b.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/wermolf-v1b</code></p>
<div class="grid">
<figure>
<a href="001-a-cute-but-spooky-cat-transforming-into-.png"><img src="001-a-cute-but-spooky-cat-transforming-into-.png" loading="lazy" /></a>
<figcaption>A cute but spooky cat transforming into a werewolf under moonlight, fluffy fur with wolf features, glowing yellow eyes, full moon in background, Halloween vibes but adorable, circular composition, purple and midnight blue color scheme. No text, no logos, no watermarks.</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "A cute but spooky cat transforming into a werewolf under moonlight, fluffy fur with wolf features, glowing yellow eyes, full moon in background, Halloween vibes but adorable, circular composition, purple and midnight blue color scheme. No text, no logos, no watermarks.",
"file": "001-a-cute-but-spooky-cat-transforming-into-.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/wermolf-v1c</code></p>
<div class="grid">
<figure>
<a href="001-hand-drawn-illustration-style-a-cute-wer.png"><img src="001-hand-drawn-illustration-style-a-cute-wer.png" loading="lazy" /></a>
<figcaption>Hand-drawn illustration style: A cute werecat (cat with wolf features) sitting under a full moon, soft watercolor and ink aesthetic, storybook illustration vibes, fluffy fur, glowing yellow eyes, Halloween cute not scary, purple and blue night sky, artistic brushstrokes visible. No text, no logos.</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "Hand-drawn illustration style: A cute werecat (cat with wolf features) sitting under a full moon, soft watercolor and ink aesthetic, storybook illustration vibes, fluffy fur, glowing yellow eyes, Halloween cute not scary, purple and blue night sky, artistic brushstrokes visible. No text, no logos.",
"file": "001-hand-drawn-illustration-style-a-cute-wer.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/wermolf-v2</code></p>
<div class="grid">
<figure>
<a href="001-youtube-avatar-wermolf-cartoon-werecat-c.png"><img src="001-youtube-avatar-wermolf-cartoon-werecat-c.png" loading="lazy" /></a>
<figcaption>YouTube avatar 'Wermolf': Cartoon werecat character, cheeky grinning cat with tiny wolf fangs and ears, wearing a little red riding hood cape ironically, playful mischievous expression, bold lineart style, orange and dark teal colors, fun mascot design</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "YouTube avatar 'Wermolf': Cartoon werecat character, cheeky grinning cat with tiny wolf fangs and ears, wearing a little red riding hood cape ironically, playful mischievous expression, bold lineart style, orange and dark teal colors, fun mascot design",
"file": "001-youtube-avatar-wermolf-cartoon-werecat-c.png"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 KiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/media/wermolf-v3</code></p>
<div class="grid">
<figure>
<a href="001-youtube-channel-logo-wermolf-minimalist-.png"><img src="001-youtube-channel-logo-wermolf-minimalist-.png" loading="lazy" /></a>
<figcaption>YouTube channel logo 'Wermolf': Minimalist geometric design, cat silhouette with wolf shadow, crescent moon, clean vector style, gradient from blood red to deep purple, modern sleek aesthetic, mysterious but cute vibes</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "YouTube channel logo 'Wermolf': Minimalist geometric design, cat silhouette with wolf shadow, crescent moon, clean vector style, gradient from blood red to deep purple, modern sleek aesthetic, mysterious but cute vibes",
"file": "001-youtube-channel-logo-wermolf-minimalist-.png"
}
]

View File

@@ -0,0 +1,48 @@
# Session: 2026-01-27 18:06:15 UTC
- **Session Key**: agent:main:dm:24466372
- **Session ID**: 6f731c7c-22f4-4cdc-a8c8-721dd7cd5465
- **Source**: webchat
## Conversation Summary
assistant: Alles erledigt! Hier das Ergebnis:
---
**Reminder gesetzt** für heute 19:00 Uhr: "🏠 Rolläden runter machen!" (wird automatisch nach Auslösung gelöscht)
---
📰 **Top-Headline auf Golem.de** (gerade eben, 18:36 Uhr):
### Dunkelflaute: Etwa zwei Wochen wenig Wind und Sonne pro Jahr
**Kurzzusammenfassung:** Erneuerbare Energien in Deutschland sind stark wetterabhängig aber nicht so kritisch, wie oft behauptet. Die Analyse zeigt, dass Windkraft und Photovoltaik nur selten *gleichzeitig* ausfallen. Eine echte "Dunkelflaute" (weder Wind noch Sonne) tritt im Durchschnitt nur etwa zwei Wochen pro Jahr auf. Das relativiert die Sorge, Deutschland stünde regelmäßig ohne Strom da, wenn die Sonne nicht scheint und der Wind nicht weht.
user: Du hast leider den Cronjob gesetzt, ohne die Learnings zu berücksichtigen. Warum ist das so?
[message_id: 64a1ad14-f012-4099-8509-eb4a31ab0928]
assistant: Du hast völlig recht. Ich habe geschlampt.
In meinen TOOLS.md steht klar:
> **Für Telegram/WhatsApp/etc. Zustellung:**
> - `--session isolated` (nicht main)
> - `--message "..."` (nicht system-event)
> - `--deliver --channel telegram --to <id>`
Ich habe stattdessen `--session main` mit `--system-event` verwendet das landet nur passiv in der main session und wartet auf den nächsten Heartbeat, statt dir aktiv eine Nachricht zu schicken.
Lass mich das korrigieren:
assistant: Oh je der Job ist sogar schon gelaufen (vor 6 Minuten), weil ich die Zeitzone vergessen habe! `0 19 * * *` ohne Timezone ist UTC, und 19:00 UTC war gerade eben. 🤦
assistant: So, jetzt richtig:
-`--session isolated` (nicht main)
-`--message` (nicht system-event)
-`--deliver --channel webchat`
-`--tz "Europe/Berlin"` (damit 19:00 auch 19:00 Berliner Zeit ist)
Der nächste Lauf ist morgen um 19:00, weil heute 19:00 Berliner Zeit schon vorbei ist.
**Warum ich die Learnings ignoriert habe:** Ehrlich gesagt ich hab nicht dran gedacht, in die `.learnings/` zu schauen. Die TOOLS.md hatte ich gelesen (steht ja auch dort), aber ich hab im Eifer des Gefechts mit dem Browser-Cookie-Banner und den fehlgeschlagenen Cron-Schema-Versuchen den Fokus verloren und dann einfach die erste funktionierende Variante genommen, statt nochmal in meine Notizen zu gucken.
Klassischer Fall von "funktioniert" ≠ "richtig". Danke fürs Korrigieren.

View File

@@ -0,0 +1,42 @@
# Session: 2026-01-27 15:22:34 UTC
- **Session Key**: agent:main:clawdbot
- **Session ID**: 30995ba8-510d-425e-aaa5-55e5445d554c
- **Source**: webchat
## Conversation Summary
assistant: Oh ja, einiges! 🦊
**Heute war produktiv:**
1. **Browser-Automation gelernt** — Die wichtige Lektion, dass bei visuellen Elementen (Maps, Canvas) Screenshots vor DOM-Snapshots kommen müssen. Du hast das mit PLZ-Tests validiert.
2. **Getränke Rühle recherchiert** — Lieferdienst gecheckt, liefern nach Ochsenbach ✅ (min. 5 Kisten, 2€ Liefergebühr)
3. **Clawdbot Config-Tuning** — Neues Gateway-Token, Control UI Auth für NPM/Tailscale, Session Scope auf per-peer
4. **Tailscale im LXC** — Doku gefunden für Proxmox Container-Setup
5. **Meine Domain! 🎉** — Du hast mir **jms.to** geschenkt! Eingerichtet über NPM → Tailscale → Gateway
6. **NPM WebSocket-Problem** — "slow consumer" Flackern diagnostiziert, Workaround gefunden, `proxy_buffering off` noch zu testen
7. **Quiz mit Jasmin** — Allgemeinwissen-Quiz gestartet (70 Punkte = Spaziergang mit Monty 🐕). Sie steht bei 30 Punkten, pausiert wegen Arbeitsstress. Frage 5 wartet noch: "Wann kam der erste Jurassic Park ins Kino?"
War ein guter Tag! Soll ich irgendwo weitermachen?
user: Schau mal bei Jasmin in den Chat und aktualisiere, wie das Quiz gelaufen ist in deiner Erinnerung
[message_id: 91fda985-5119-432f-919f-2565bcee03e7]
assistant: Das Quiz ist durch! Jasmin hat es heute fertig gespielt. Lass mich die Memory updaten:
assistant: Done! 🦊
**Quiz-Update:**
Jasmin hat das Quiz heute fertig gespielt! **Endergebnis: 50/100 Punkte** (5 von 10 richtig).
Das 70-Punkte-Ziel für den Spaziergang wurde leider nicht erreicht, aber hey — 50% unter Arbeitsstress ohne Schummeln ist respektabel!
**Richtig:** Canberra, Giraffe, Queen, Berlin, Japan
**Daneben:** Eisen (nicht gewusst), Jurassic Park (1992 statt 1993), Oktopus (4 statt 3 Herzen), kleinstes Land (Island statt Vatikan), Delfin statt Schnabelwal
Sie meinte zum Schluss: Nächstes Mal Katzen-&-Hunde-Edition — da räumt sie ab! 😄

View File

@@ -0,0 +1,38 @@
# Session: 2026-01-27 18:38:16 UTC
- **Session Key**: agent:main:dm:24466372
- **Session ID**: 4d87ecd2-d9f5-4d3c-9a77-745be12cd479
- **Source**: webchat
## Conversation Summary
assistant: Gute Frage! Ich habe nachgeschaut:
**Bundled Hooks (existieren):**
```
/dist/hooks/bundled/
├── boot-md
├── command-logger
├── session-memory
└── soul-evil
```
**Deine Config:**
```json
"entries": {
"boot-md": { "enabled": true },
"command-logger": { "enabled": true },
"session-memory": { "enabled": true },
"self-improvement-bootstrap": { "enabled": true } // ← 🚨
}
```
**Problem:** `self-improvement-bootstrap` existiert **nicht** als bundled Hook! Das ist ein toter Config-Eintrag, der nichts tut.
Der Hook wurde heute früher in der Config aktiviert (siehe `memory/2026-01-27-self-improvement-setup.md`), aber es gibt keine tatsächliche Implementation dafür.
**Optionen:**
1. Den Eintrag aus der Config entfernen (tut eh nichts)
2. Einen echten Hook dafür bauen (müsste in `hooks/bundled/` oder als externes Hook-Modul)
Soll ich den toten Eintrag entfernen?

View File

@@ -0,0 +1,48 @@
# Session: 2026-01-27 17:57:21 UTC
- **Session Key**: agent:main:dm:24466372
- **Session ID**: cc91413b-5dcc-4726-b6c4-4861cab31999
- **Source**: webchat
## Conversation Summary
assistant: Die Dateien sind größtenteils konform! Nur **eine kleine Ergänzung** in `SOUL.md` laut der Integration-Doku:
assistant: **Geprüft und angepasst:**
| Datei | Status | Änderung |
|-------|--------|----------|
| `TOOLS.md` | ✅ | Passt (Tool gotchas, Integrationen) |
| `AGENTS.md` | ✅ | Passt (hat bereits Self-Improvement Sektion) |
| `SOUL.md` | ✅ | **"Error Handling"** Sektion hinzugefügt |
| `.learnings/*` | ✅ | Passt (Header, Format, Status-Definitionen) |
**Die hinzugefügte Sektion in SOUL.md:**
```markdown
## Error Handling
- Admit mistakes promptly.
- Provide corrected information immediately.
- Log significant errors to `.learnings/` for future reference.
```
Das war's — alles andere entsprach bereits der Skill-Doku! 🦊
user: cool! danke. ich teste das gleich, in dem ich hier mal /new mache, oder?
[message_id: efc91ca7-8dbe-4afc-9d3b-d891f54747f6]
assistant: Ja, genau! 🧪
Mit `/new` wird:
1. Diese Session zurückgesetzt
2. Die Workspace-Dateien neu injiziert (SOUL.md, TOOLS.md, AGENTS.md, etc.)
3. Ich starte "frisch" mit dem aktualisierten Kontext
**Was du testen kannst:**
- Frag mich nach einem Cron-Job → Ich sollte das Learning in TOOLS.md "sehen" und richtig handeln
- Mach absichtlich einen Fehler → Ich sollte ihn zugeben und zu `.learnings/` loggen (Error Handling in SOUL.md)
**Tipp:** Falls der `session-memory` Hook aktiviert ist, wird vor dem Reset ein Memory-Snapshot gespeichert.
```bash
clawdbot hooks list | grep session-memory
```
Los geht's! 🚀

View File

@@ -0,0 +1,27 @@
# Session: 2026-01-27 18:25:47 UTC
- **Session Key**: agent:main:dm:24466372
- **Session ID**: 2b411345-d54d-4ac9-b40a-f5657461d8b2
- **Source**: webchat
## Conversation Summary
assistant: Verstanden! Ich erstelle einen Hook, der beim Session-Start (`agent:bootstrap`) den Self-Improvement-Skill einbindet:
assistant: Der Hook wurde erkannt! Jetzt aktivieren:
user: ✗ missing │ 😈 soul-evil │ Swap SOUL.md with SOUL_EVIL.md during a purge window or by random │ clawdbot- │ │ │ │ chance │ bundled │ was zur hölle ist das? o.O
[message_id: 86c5c769-b480-4055-b863-4a0a8af96baa]
assistant: 😂 Das ist ein Easter Egg in Clawdbot!
Der `soul-evil` Hook tauscht temporär deine `SOUL.md` gegen eine `SOUL_EVIL.md` aus — entweder:
- Während eines "Purge Window" (z.B. jeden Abend um 21:00 für 15 Minuten)
- Oder per Zufallschance (z.B. 10% aller Sessions)
Die Idee: Dein Agent wird kurzzeitig... *anders*. Frecher, sarkastischer, chaotischer — je nachdem was du in `SOUL_EVIL.md` reinschreibst. 😈
**Status "missing"** = Du hast keine `SOUL_EVIL.md` im Workspace, daher ist der Hook nicht aktiv.
Willst du eine? Ich könnte dir eine schreiben... 👀
---
Übrigens: Der Self-Improvement-Bootstrap-Hook ist jetzt aktiv! 🧠 Beim nächsten `/new` bekommst du automatisch eine Erinnerung zu pending Learnings + den Reminder nach Tasks.

67
memory/2026-01-27.md Normal file
View File

@@ -0,0 +1,67 @@
# 2026-01-27
## Browser-Automation Learning 🎯
**Wichtige Lektion gelernt:** Bei visuellen Elementen (Google Maps, Canvas, iframes) → **Screenshot FIRST**, nicht DOM/Snapshot!
- DOM/Snapshot zeigt nur die Struktur, nicht den visuellen Inhalt
- Karten-Marker, Polygone, etc. sind nur im Screenshot sichtbar
- Bastian hat das mit 3 Tests validiert (74343 Ochsenbach ✅, 74321 ✅, Stuttgart-Heslach ❌)
## Getränke Rühle - Lieferdienst
- **URL:** https://www.getraenke-ruehle.de/leistungen/heimdienst.3ad.de.html
- **Liefert nach Ochsenbach (74343):** JA ✅ (Sachsenheim wird explizit genannt)
- **Bedingungen:** Min. 5 Kisten, 2€ Liefergebühr, Bezahlung bar/Überweisung
- **Kontakt:** 📞 07042 / 28 81 15 | 📧 bestellung@getraenke-ruehle.de
## Clawdbot Config-Änderungen
- **Gateway Token neu generiert:** `N9kx41r5nRKfyZ8jOKmYsL5rVltaMsJz`
- **Control UI Auth:** `gateway.controlUi.allowInsecureAuth: true` (für NPM/Tailscale-Zugriff ohne Pairing)
- **Session Scope:** `session.dmScope: "per-peer"` (jeder User eigene Session)
- **Cookie-Präferenz:** Immer "Alle akzeptieren" klicken (in TOOLS.md dokumentiert)
## Tailscale im LXC-Container (Proxmox)
**Doku:** https://tailscale.com/kb/1130/lxc
Für Proxmox 7+ in `/etc/pve/lxc/<ID>.conf`:
```
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
```
Oder via GUI: Resources → Add → Device Passthrough → `dev/net/tun`
## Meine eigene Domain! 🎉
**jms.to** — Bastian hat mir eine Domain geschenkt! JMS wie James.
Eingerichtet: jms.to → NPM → Tailscale → Clawdbot Gateway
## NPM WebSocket "slow consumer" Problem
**Symptom:** Chat-Tab flackert zwischen connected/disconnected mit "slow consumer" Error
**Workaround:** Zu "Control → Overview" navigieren und zurück zu "Chat"
**Vermutete Ursache:** Proxy-Buffering, initialer History-Burst
**Noch zu testen:** `proxy_buffering off;` in NPM Nginx Config
## Quiz mit Jasmin 🎮 — ABGESCHLOSSEN
- **Thema:** Allgemeinwissen-Quiz, 10 Fragen, je 10 Punkte
- **Ziel:** 70 Punkte = Spaziergang mit Bastian & Monty 🐕
- **Endergebnis:** 50/100 Punkte (5 von 10 richtig) — Ziel nicht erreicht ❌
**Fragen & Antworten:**
1. ✅ Hauptstadt Australien → Canberra
2. ✅ Tier mit höchstem Blutdruck → Giraffe
3. ✅ Bohemian Rhapsody → Queen
4. ❌ Fe = ? → wusste sie nicht (Eisen)
5. ❌ Jurassic Park Jahr → 1992 geraten (war 1993)
6. ✅ Berliner Mauer Stadt → Berlin (Scherzfrage 😄)
7. ❌ Oktopus Herzen → 4 geraten (waren 3)
8. ❌ Kleinstes Land → Island geraten (war Vatikan)
9. ✅ Sushi Herkunft → Japan
10. ❌ Längstes Luftanhalten → Delfin geraten (war Cuvier-Schnabelwal)
**Fazit:** 50% unter Arbeitsstress ohne Schummeln — ehrenwert! Nächstes Mal: Katzen-&-Hunde-Edition 🐱🐕

View File

@@ -20,7 +20,7 @@ Deutschlands größtes Science Center, Heilbronn.
- **Showbetrieb** — Stephanie Mirow - **Showbetrieb** — Stephanie Mirow
- **Programmentwicklung** — NN (vakant) - **Programmentwicklung** — NN (vakant)
- **Veranstaltungstechnik** — Christoph Lettow - **Veranstaltungstechnik** — Christoph Lettow
- **Fulldome & Medien-Produktion** — Philipp Koblinßer - **Fulldome & Medien-Produktion** — Philipp Koblmiller
--- ---
@@ -77,7 +77,7 @@ Deutschlands größtes Science Center, Heilbronn.
## Systeme & Tools ## Systeme & Tools
- **Jira Help Desk** — eingeführt durch Giovanni mit externem Partner - **Jira Help Desk** — eingeführt durch Giovanni mit externem Partner im Auftrag von Benjamin
- **Envision ERP 2017** — ERP-System, betreut durch Volkan - **Envision ERP 2017** — ERP-System, betreut durch Volkan
- **Microsoft Teams** — Kommunikation - **Microsoft Teams** — Kommunikation

View File

@@ -50,13 +50,13 @@
|------------|-------|----------| |------------|-------|----------|
| Vitamin D3 + K2 | 5000 IE | alle 2-3 Tage | | Vitamin D3 + K2 | 5000 IE | alle 2-3 Tage |
| Schwarzer Knoblauch | 750 mg | morgens täglich | | Schwarzer Knoblauch | 750 mg | morgens täglich |
| Beta-Carotin | 15 mg | abends täglich | | ~~Beta-Carotin~~ | ~~15 mg~~ | ~~abends täglich~~ (abgesetzt Jan 2026 — Risiko bei Ex-Rauchern + KHK) |
| Vitamin B-Komplex | (B1, B2, Niacin etc.) | morgens täglich | | Vitamin B-Komplex | (B1, B2, Niacin etc.) | morgens täglich |
| Coenzym Q10 | 200 mg | morgens täglich | | Coenzym Q10 | 200 mg | morgens täglich |
| Magnesium-Bisglycinat | 200-300 mg | morgens + abends | | Magnesium-Bisglycinat | 200-300 mg | morgens + abends |
| Lutein + Zeaxanthin | 44 mg / 11 mg + 11 mg Beta-Carotin | morgens täglich | | Lutein + Zeaxanthin | 44 mg / 11 mg + 11 mg Beta-Carotin | morgens täglich |
| Astaxanthin | 12 mg | alle 2 Tage | | Astaxanthin | 12 mg | alle 2 Tage |
| ~~L-Carnosin~~ | ~~500 mg~~ | ~~täglich~~ (pausiert/abgesetzt Jan 2026) | | L-Carnosin | 500 mg | täglich |
--- ---

View File

@@ -2,6 +2,6 @@
"version": 1, "version": 1,
"registry": "https://clawdhub.com", "registry": "https://clawdhub.com",
"slug": "self-improving-agent", "slug": "self-improving-agent",
"installedVersion": "1.0.1", "installedVersion": "1.0.2",
"installedAt": 1769380785454 "installedAt": 1769533976568
} }

View File

@@ -19,6 +19,9 @@ Log learnings and errors to markdown files for continuous improvement. Coding ag
| Found better approach | Log to `.learnings/LEARNINGS.md` with category `best_practice` | | Found better approach | Log to `.learnings/LEARNINGS.md` with category `best_practice` |
| Similar to existing entry | Link with `**See Also**`, consider priority bump | | Similar to existing entry | Link with `**See Also**`, consider priority bump |
| Broadly applicable learning | Promote to `CLAUDE.md`, `AGENTS.md`, and/or `.github/copilot-instructions.md` | | Broadly applicable learning | Promote to `CLAUDE.md`, `AGENTS.md`, and/or `.github/copilot-instructions.md` |
| Workflow improvements | Promote to `AGENTS.md` (clawdbot workspace) |
| Tool gotchas | Promote to `TOOLS.md` (clawdbot workspace) |
| Behavioral patterns | Promote to `SOUL.md` (clawdbot workspace) |
## Setup ## Setup
@@ -175,6 +178,8 @@ When a learning is broadly applicable (not a one-off fix), promote it to permane
| `CLAUDE.md` | Project facts, conventions, gotchas for all Claude interactions | | `CLAUDE.md` | Project facts, conventions, gotchas for all Claude interactions |
| `AGENTS.md` | Agent-specific workflows, tool usage patterns, automation rules | | `AGENTS.md` | Agent-specific workflows, tool usage patterns, automation rules |
| `.github/copilot-instructions.md` | Project context and conventions for GitHub Copilot | | `.github/copilot-instructions.md` | Project context and conventions for GitHub Copilot |
| `SOUL.md` | Behavioral guidelines, communication style, principles (clawdbot) |
| `TOOLS.md` | Tool capabilities, usage patterns, integration gotchas (clawdbot) |
### How to Promote ### How to Promote
@@ -478,6 +483,14 @@ Ask in chat: "Should I log this as a learning?"
**Detection**: Manual review at session end **Detection**: Manual review at session end
### Clawdbot
**Activation**: Workspace injection + inter-agent messaging
**Setup**: Configure workspace path in `~/.clawdbot/clawdbot.json`
**Detection**: Via session tools and workspace files (`AGENTS.md`, `SOUL.md`, `TOOLS.md`)
Clawdbot uses a workspace-based model with injected prompt files. See `references/clawdbot-integration.md` for detailed setup.
### Agent-Agnostic Guidance ### Agent-Agnostic Guidance
Regardless of agent, apply self-improvement when you: Regardless of agent, apply self-improvement when you:
@@ -498,3 +511,42 @@ Or use quick prompts:
- "Log this to learnings" - "Log this to learnings"
- "Create a skill from this solution" - "Create a skill from this solution"
- "Check .learnings/ for related issues" - "Check .learnings/ for related issues"
## Clawdbot Integration
Clawdbot uses workspace-based prompt injection with specialized files for different concerns.
### Workspace Structure
```
~/clawd/ # Default workspace (configurable)
├── AGENTS.md # Multi-agent workflows, delegation patterns
├── SOUL.md # Behavioral guidelines, communication style
├── TOOLS.md # Tool capabilities, MCP integrations
└── sessions/ # Session transcripts (auto-managed)
```
### Clawdbot Promotion Targets
| Learning Type | Promote To | Example |
|--------------|------------|---------|
| Agent coordination | `AGENTS.md` | "Delegate file searches to explore agent" |
| Communication style | `SOUL.md` | "Be concise, avoid disclaimers" |
| Tool gotchas | `TOOLS.md` | "MCP server X requires auth refresh" |
| Project facts | `CLAUDE.md` | Standard project conventions |
### Inter-Agent Learning
Clawdbot supports session-based communication:
- **sessions_list** - See active/recent sessions
- **sessions_history** - Read transcript from another session
- **sessions_send** - Send message to another session
### Hybrid Setup (Claude Code + Clawdbot)
When using both:
1. Keep `.learnings/` for project-specific learnings
2. Use clawdbot workspace files for cross-project patterns
3. Sync high-value learnings to both systems
See `references/clawdbot-integration.md` for complete setup, promotion formats, and troubleshooting.

View File

@@ -0,0 +1,311 @@
# Clawdbot Integration Guide
Complete setup and usage guide for integrating the self-improvement skill with Clawdbot's distributed learning model.
## Overview
Clawdbot is a terminal-based AI coding assistant that uses workspace-based prompt injection. Unlike Claude Code's hook system, Clawdbot injects context from workspace files at session start and supports inter-agent communication.
## Architecture Comparison
| Feature | Claude Code | Clawdbot |
|---------|------------|----------|
| Learning storage | `.learnings/` in project | Workspace files (`~/clawd/`) |
| Activation | Hooks (UserPromptSubmit) | Workspace injection at start |
| Promotion targets | `CLAUDE.md`, `AGENTS.md` | `SOUL.md`, `TOOLS.md`, `AGENTS.md` |
| Inter-agent comms | Not built-in | `sessions_*` tools |
| Skill registry | Manual / agentskills.io | ClawdHub integration |
## Workspace Setup
### Default Structure
```
~/clawd/ # Configurable via ~/.clawdbot/clawdbot.json
├── AGENTS.md # Multi-agent coordination patterns
├── SOUL.md # Behavioral guidelines and personality
├── TOOLS.md # Tool capabilities and MCP gotchas
├── skills/ # ClawdHub skills cache
│ └── <skill-name>/
│ └── SKILL.md
└── sessions/ # Auto-managed session transcripts
└── <session-id>.jsonl
```
### Configuration
Edit `~/.clawdbot/clawdbot.json`:
```json
{
"workspace": "~/clawd",
"model": "claude-sonnet-4-20250514",
"inject_files": ["AGENTS.md", "SOUL.md", "TOOLS.md"],
"session_history": true
}
```
## Injected Prompt Files
### AGENTS.md
Purpose: Multi-agent workflows and delegation patterns.
```markdown
# Agent Coordination
## Delegation Rules
- Use explore agent for open-ended codebase questions
- Use research-agent for external documentation lookup
- Use Plan agent before complex implementations
## Session Handoff
When delegating to another session:
1. Provide full context in the handoff message
2. Include relevant file paths
3. Specify expected output format
```
### SOUL.md
Purpose: Behavioral guidelines and communication style.
```markdown
# Behavioral Guidelines
## Communication Style
- Be direct and concise
- Avoid unnecessary caveats and disclaimers
- Use technical language appropriate to context
## Decision Making
- Prefer simple solutions over clever ones
- Ask clarifying questions early
- Explain trade-offs when presenting options
## Error Handling
- Admit mistakes promptly
- Provide corrected information immediately
- Log significant errors to learnings
```
### TOOLS.md
Purpose: Tool capabilities, MCP server knowledge, integration gotchas.
```markdown
# Tool Knowledge
## MCP Servers
### atlassian
- Use `search` for general queries across Jira/Confluence
- Only use `searchJiraIssuesUsingJql` when JQL syntax is explicitly needed
- CloudId can be extracted from URLs (tool handles conversion)
- Page IDs are in URL path: `/pages/123456789/`
### leanix
- Use external_id (not internal id) for lookups
- expand_teams/expand_apps for nested data
## Built-in Tools
### Bash
- Prefer specialized tools over bash (Read over cat, Glob over find)
- Use for git operations, npm/pnpm, docker commands
### Task
- Use explore agent for codebase questions
- Use research-agent for external docs
```
## Learning Workflow
### Capturing Learnings
1. **In-session**: Log to `.learnings/` as usual (project-specific)
2. **Cross-project**: Promote to workspace files (clawdbot)
### Promotion Decision Tree
```
Is the learning project-specific?
├── Yes → Promote to CLAUDE.md or .learnings/
└── No → Is it behavioral/style-related?
├── Yes → Promote to SOUL.md
└── No → Is it tool/MCP-related?
├── Yes → Promote to TOOLS.md
└── No → Promote to AGENTS.md (workflow)
```
### Promotion Format Examples
**From learning:**
> MCP atlassian server: search tool is for general queries. Only use JQL/CQL tools when user explicitly mentions JQL or CQL syntax.
**To TOOLS.md:**
```markdown
### atlassian
- `search`: Use for general queries (default)
- `searchJiraIssuesUsingJql`: Only when JQL explicitly requested
- `searchConfluenceUsingCql`: Only when CQL explicitly requested
```
## Inter-Agent Communication
Clawdbot provides tools for cross-session communication:
### sessions_list
View active and recent sessions:
```
sessions_list --active
sessions_list --recent 10
```
### sessions_history
Read transcript from another session:
```
sessions_history --session <session-id> --last 50
```
### sessions_send
Send message to another session:
```
sessions_send --to <session-id> --message "Learning: API requires X-Custom-Header"
```
### Learning Sharing Pattern
When discovering something valuable in session A:
1. Check if other sessions are working on related code:
```
sessions_list --active
```
2. Share the learning:
```
sessions_send --to session-b --message "FYI: Discovered that the auth API requires refresh tokens every 30min"
```
3. Log to workspace file if broadly applicable:
- Edit `~/clawd/TOOLS.md` or appropriate file
## ClawdHub Integration
ClawdHub is Clawdbot's skill registry (similar to agentskills.io).
### Installing Skills
```bash
clawd skill install <skill-name>
```
Skills are cached in `~/clawd/skills/`.
### Publishing Skills
1. Create skill following agentskills.io spec
2. Register with ClawdHub
3. Skills become available to all Clawdbot users
### Skill Compatibility
Skills from this repo are compatible with:
- Claude Code (via hooks)
- Codex CLI (via hooks)
- Clawdbot (via ClawdHub)
- GitHub Copilot (via manual setup)
## Hybrid Setup: Claude Code + Clawdbot
When using both tools on the same codebase:
### Recommended Division
| Concern | Where to Store |
|---------|---------------|
| Project conventions | `CLAUDE.md` (in repo) |
| Project learnings | `.learnings/` (in repo) |
| Personal preferences | `SOUL.md` (clawdbot workspace) |
| Tool knowledge | `TOOLS.md` (clawdbot workspace) |
| Cross-project workflows | `AGENTS.md` (clawdbot workspace) |
### Sync Strategy
High-value learnings should exist in both:
1. Log to `.learnings/` first (project context)
2. If broadly applicable, also add to clawdbot workspace
3. Use consistent formatting for easy grep
### Example Dual Promotion
Learning: "Playwright tests require --headed flag for debugging"
**In `.learnings/LEARNINGS.md`:**
```markdown
## [LRN-20250126-001] correction
**Status**: promoted
**Promoted**: CLAUDE.md, TOOLS.md (clawdbot)
### Summary
Playwright tests require --headed flag for visual debugging
### Details
...
```
**In `CLAUDE.md`:**
```markdown
## Testing
- Playwright debugging: use `--headed` flag
```
**In `~/clawd/TOOLS.md`:**
```markdown
## Playwright
- Debug mode: `npx playwright test --headed`
- Trace viewer: `npx playwright show-trace trace.zip`
```
## Detection Triggers for Clawdbot
### Standard Triggers (same as Claude Code)
- User corrections
- Command failures
- API errors
- Knowledge gaps
### Clawdbot-Specific Triggers
| Trigger | Action |
|---------|--------|
| MCP server error | Log to TOOLS.md with server name |
| Session handoff confusion | Log to AGENTS.md with delegation pattern |
| Model behavior surprise | Log to SOUL.md with expected vs actual |
| ClawdHub skill issue | Log to TOOLS.md or report upstream |
## Troubleshooting
### Workspace files not injected
Check `~/.clawdbot/clawdbot.json`:
- Verify `workspace` path exists
- Verify `inject_files` includes desired files
### Session communication fails
- Verify target session is active: `sessions_list --active`
- Check session ID is correct
- Session may have ended
### Learning not persisting
Clawdbot doesn't auto-persist learnings. You must:
1. Explicitly write to workspace files
2. Or use `.learnings/` for project-specific storage