From bfcbbd288162f69d031c5dfa1fb9f009290d9371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dustin-Mike=20Jens=20H=C3=A4hnel?= Date: Sun, 19 Jul 2026 21:49:30 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=A6=20Erster=20Sync=20via=20Git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .obsidian/app.json | 1 + .obsidian/appearance.json | 1 + .obsidian/core-plugins.json | 33 +++ .obsidian/graph.json | 22 ++ .obsidian/workspace.json | 224 ++++++++++++++++++ .open-second-brain/brain.sqlite | Bin 0 -> 200704 bytes .open-second-brain/brain.sqlite-shm | Bin 0 -> 32768 bytes .open-second-brain/brain.sqlite-wal | 0 .../run-1145-mrqvvjdc/e8bc0fd7b72f644c.json | 80 +++++++ .../run-1207-mrqw73j4/c5f549c9943e6647.json | 104 ++++++++ .../run-1207-mrqw73j4/c6497f2f689d463c.json | 101 ++++++++ .../run-1207-mrqw73j4/e8bc0fd7b72f644c.json | 80 +++++++ .../run-42043-mrpi942z/e8bc0fd7b72f644c.json | 80 +++++++ .../run-42043-mrpi942z/f9b39e21aeb74288.json | 71 ++++++ Brain/INDEX.md | 133 +++++++++++ Brain/_BRAIN.md | 168 +++++++++++++ Brain/_brain.yaml | 44 ++++ Brain/active.md | 18 ++ Brain/bases/daily.base | 23 ++ Brain/bases/people.base | 47 ++++ Brain/bases/projects.base | 59 +++++ Brain/bases/tasks.base | 42 ++++ Brain/inbox/sig-2026-07-09-brain-index.md | 11 + .../sig-2026-07-09-meriting-ai-personal.md | 11 + Brain/inbox/sig-2026-07-09-save-more-often.md | 11 + ...ig-2026-07-12-creative-ai-collaboration.md | 10 + .../sig-2026-07-12-default-model-deepseek.md | 12 + ...7-12-ehrliches-feedback-wird-geschaetzt.md | 10 + .../sig-2026-07-12-game-design-decisions.md | 11 + Brain/inbox/sig-2026-07-16-auto-brain-load.md | 11 + .../inbox/sig-2026-07-16-check-system-time.md | 11 + .../sig-2026-07-16-tts-german-writing.md | 11 + .../sig-2026-07-18-vps-plan-august-2026-2.md | 10 + .../sig-2026-07-18-vps-plan-august-2026.md | 10 + Brain/log/2026-07-09.a0360993.jsonl | 12 + Brain/log/2026-07-09.a0360993.md | 64 +++++ Brain/log/2026-07-10.a0360993.jsonl | 1 + Brain/log/2026-07-10.a0360993.md | 11 + Brain/log/2026-07-12-session.md | 80 +++++++ Brain/log/2026-07-12.a0360993.jsonl | 23 ++ Brain/log/2026-07-12.a0360993.md | 107 +++++++++ Brain/log/2026-07-13.a0360993.jsonl | 4 + Brain/log/2026-07-13.a0360993.md | 23 ++ Brain/log/2026-07-16.a0360993.jsonl | 10 + Brain/log/2026-07-16.a0360993.md | 53 +++++ Brain/log/2026-07-17.a0360993.jsonl | 1 + Brain/log/2026-07-17.a0360993.md | 11 + Brain/log/2026-07-18.a0360993.jsonl | 2 + Brain/log/2026-07-18.a0360993.md | 17 ++ Brain/log/continuity/2026-07.jsonl | 15 ++ Brain/metrics/index.jsonl | 1 + Brain/pinned.md | 11 + Brain/preferences/pref-auto-brain-load.md | 23 ++ Brain/preferences/pref-brain-index.md | 23 ++ Brain/preferences/pref-check-system-time.md | 23 ++ .../pref-default-model-deepseek.md | 23 ++ .../preferences/pref-meriting-ai-personal.md | 23 ++ Brain/preferences/pref-save-more-often.md | 23 ++ Brain/preferences/pref-tts-german-writing.md | 23 ++ .../preferences/pref-vps-plan-august-2026.md | 22 ++ Notizen/Slash-Commands.md | 91 +++++++ Projects/Wave Survivors - Tech Stack.md | 117 +++++++++ Soul.md | 80 +++++++ Templates/analysis_options.yaml | 59 +++++ Templates/analysis_options_README.md | 16 ++ Wave Survivors - GDD.md | 0 66 files changed, 2452 insertions(+) create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/graph.json create mode 100644 .obsidian/workspace.json create mode 100644 .open-second-brain/brain.sqlite create mode 100644 .open-second-brain/brain.sqlite-shm create mode 100644 .open-second-brain/brain.sqlite-wal create mode 100644 Brain/.artifacts/run-1145-mrqvvjdc/e8bc0fd7b72f644c.json create mode 100644 Brain/.artifacts/run-1207-mrqw73j4/c5f549c9943e6647.json create mode 100644 Brain/.artifacts/run-1207-mrqw73j4/c6497f2f689d463c.json create mode 100644 Brain/.artifacts/run-1207-mrqw73j4/e8bc0fd7b72f644c.json create mode 100644 Brain/.artifacts/run-42043-mrpi942z/e8bc0fd7b72f644c.json create mode 100644 Brain/.artifacts/run-42043-mrpi942z/f9b39e21aeb74288.json create mode 100644 Brain/INDEX.md create mode 100644 Brain/_BRAIN.md create mode 100644 Brain/_brain.yaml create mode 100644 Brain/active.md create mode 100644 Brain/bases/daily.base create mode 100644 Brain/bases/people.base create mode 100644 Brain/bases/projects.base create mode 100644 Brain/bases/tasks.base create mode 100644 Brain/inbox/sig-2026-07-09-brain-index.md create mode 100644 Brain/inbox/sig-2026-07-09-meriting-ai-personal.md create mode 100644 Brain/inbox/sig-2026-07-09-save-more-often.md create mode 100644 Brain/inbox/sig-2026-07-12-creative-ai-collaboration.md create mode 100644 Brain/inbox/sig-2026-07-12-default-model-deepseek.md create mode 100644 Brain/inbox/sig-2026-07-12-ehrliches-feedback-wird-geschaetzt.md create mode 100644 Brain/inbox/sig-2026-07-12-game-design-decisions.md create mode 100644 Brain/inbox/sig-2026-07-16-auto-brain-load.md create mode 100644 Brain/inbox/sig-2026-07-16-check-system-time.md create mode 100644 Brain/inbox/sig-2026-07-16-tts-german-writing.md create mode 100644 Brain/inbox/sig-2026-07-18-vps-plan-august-2026-2.md create mode 100644 Brain/inbox/sig-2026-07-18-vps-plan-august-2026.md create mode 100644 Brain/log/2026-07-09.a0360993.jsonl create mode 100644 Brain/log/2026-07-09.a0360993.md create mode 100644 Brain/log/2026-07-10.a0360993.jsonl create mode 100644 Brain/log/2026-07-10.a0360993.md create mode 100644 Brain/log/2026-07-12-session.md create mode 100644 Brain/log/2026-07-12.a0360993.jsonl create mode 100644 Brain/log/2026-07-12.a0360993.md create mode 100644 Brain/log/2026-07-13.a0360993.jsonl create mode 100644 Brain/log/2026-07-13.a0360993.md create mode 100644 Brain/log/2026-07-16.a0360993.jsonl create mode 100644 Brain/log/2026-07-16.a0360993.md create mode 100644 Brain/log/2026-07-17.a0360993.jsonl create mode 100644 Brain/log/2026-07-17.a0360993.md create mode 100644 Brain/log/2026-07-18.a0360993.jsonl create mode 100644 Brain/log/2026-07-18.a0360993.md create mode 100644 Brain/log/continuity/2026-07.jsonl create mode 100644 Brain/metrics/index.jsonl create mode 100644 Brain/pinned.md create mode 100644 Brain/preferences/pref-auto-brain-load.md create mode 100644 Brain/preferences/pref-brain-index.md create mode 100644 Brain/preferences/pref-check-system-time.md create mode 100644 Brain/preferences/pref-default-model-deepseek.md create mode 100644 Brain/preferences/pref-meriting-ai-personal.md create mode 100644 Brain/preferences/pref-save-more-often.md create mode 100644 Brain/preferences/pref-tts-german-writing.md create mode 100644 Brain/preferences/pref-vps-plan-august-2026.md create mode 100644 Notizen/Slash-Commands.md create mode 100644 Projects/Wave Survivors - Tech Stack.md create mode 100644 Soul.md create mode 100644 Templates/analysis_options.yaml create mode 100644 Templates/analysis_options_README.md create mode 100644 Wave Survivors - GDD.md diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..639b90d --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,33 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "footnotes": false, + "properties": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": true, + "bases": true, + "webviewer": false +} \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..42a46ec --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": true +} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json new file mode 100644 index 0000000..1fd0494 --- /dev/null +++ b/.obsidian/workspace.json @@ -0,0 +1,224 @@ +{ + "main": { + "id": "5d69beed1e978e66", + "type": "split", + "children": [ + { + "id": "b356775aecd76d7b", + "type": "tabs", + "children": [ + { + "id": "6b81c26511b53323", + "type": "leaf", + "state": { + "type": "bases", + "state": { + "file": "Brain/bases/people.base", + "viewName": "Active" + }, + "icon": "lucide-table", + "title": "people" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "12fdb02c9d7df9e9", + "type": "split", + "children": [ + { + "id": "32cd651b5df1609f", + "type": "tabs", + "children": [ + { + "id": "096d9a0da9350c34", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Dateiexplorer" + } + }, + { + "id": "8cada5a479a8167c", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Suchen" + } + }, + { + "id": "443318f7ae90e4cb", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Lesezeichen" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "c6368615a4830f86", + "type": "split", + "children": [ + { + "id": "8c9e20d0bbe902c1", + "type": "tabs", + "children": [ + { + "id": "03ef770332aaead5", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Brain/_BRAIN.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Rückverweise auf _BRAIN" + } + }, + { + "id": "50d939e3d8ed3793", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Brain/_BRAIN.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Ausgehende Links von _BRAIN öffnen" + } + }, + { + "id": "5e90c77ed62d4cf3", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "b598048c0eebe9db", + "type": "leaf", + "state": { + "type": "all-properties", + "state": { + "sortOrder": "frequency", + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-archive", + "title": "Alle Eigenschaften" + } + }, + { + "id": "74ca9809f2a2ff9a", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Brain/_BRAIN.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Gliederung von _BRAIN" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Schnellauswahl öffnen": false, + "graph:Graph-Ansicht öffnen": false, + "canvas:Neuen Canvas erstellen": false, + "daily-notes:Heutige Notiz öffnen": false, + "templates:Vorlage einfügen": false, + "command-palette:Befehlspalette öffnen": false, + "bases:Neue Base erstellen": false + } + }, + "active": "6b81c26511b53323", + "lastOpenFiles": [ + "Brain/log/2026-07-18.a0360993.md", + "Brain/log/2026-07-18.a0360993.jsonl", + "Brain/preferences/pref-vps-plan-august-2026.md", + "Brain/inbox/sig-2026-07-18-vps-plan-august-2026.md", + "Brain/log/2026-07-17.a0360993.md", + "Brain/log/2026-07-17.a0360993.jsonl", + "Brain/_BRAIN.md", + "Brain/inbox/sig-2026-07-16-auto-brain-load.md", + "Brain/inbox/sig-2026-07-12-ehrliches-feedback-wird-geschaetzt.md", + "Brain/inbox/sig-2026-07-12-creative-ai-collaboration.md", + "Brain/inbox/sig-2026-07-09-save-more-often.md", + "Brain/inbox/sig-2026-07-09-brain-index.md", + "Brain/inbox/sig-2026-07-09-meriting-ai-personal.md", + "Brain/preferences/pref-brain-index.md", + "Brain/log/2026-07-10.a0360993.md", + "Brain/log/2026-07-13.a0360993.md", + "Wave Survivors - GDD.md", + "Projects/Wave Survivors - Tech Stack.md", + "Templates/analysis_options_README.md", + "Notizen/Slash-Commands.md", + "Brain/pinned.md", + "Brain/INDEX.md", + "Brain/active.md", + "Brain/preferences/pref-save-more-often.md", + "Brain/preferences/pref-meriting-ai-personal.md", + "Brain/log/2026-07-09.a0360993.md", + "Brain/bases/tasks.base", + "Brain/bases/projects.base", + "Brain/bases/people.base", + "Brain/bases/daily.base", + "Brain/preferences/pref-default-model-deepseek.md", + "Brain/inbox/sig-2026-07-12-default-model-deepseek.md", + "Projects", + "Brain/log/2026-07-10.a0360993.jsonl", + "Brain/log.lock", + "Notizen" + ] +} \ No newline at end of file diff --git a/.open-second-brain/brain.sqlite b/.open-second-brain/brain.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..de4e115caf011a3d6db9ad522e60f43f225c71d1 GIT binary patch literal 200704 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 literal 0 HcmV?d00001 diff --git a/.open-second-brain/brain.sqlite-shm b/.open-second-brain/brain.sqlite-shm new file mode 100644 index 0000000000000000000000000000000000000000..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 GIT binary patch literal 32768 zcmeIuAr62r3.tar.zst` before mutating; +- appends one summary entry to `log/.md` if anything changed. + +Rerunning `dream` without new inputs is a no-op (including in the log). +Schedule it on a cron with confidence — duplicate runs do not pollute. + +## What NOT to do + +- Do not hand-edit files under `log/` — they are append-only ledgers. + `dream`, `apply-evidence`, `feedback`, and the CLI escape hatches are + the only writers. +- Do not rename preference or signal files. The `id` field is duplicated + in frontmatter to survive `mv`, but slugs are stable for a reason; + changing them breaks every wikilink and every log reference. +- Do not write into `.snapshots/`. `dream` produces archives there; + `o2b brain rollback` consumes them; nothing else touches the directory. +- Do not edit files in `retired/` to undo a retirement. The reason is + preserved on purpose; a rule that should return becomes a new + preference with `supersedes: [[ret-...]]`. +- Brain operations stay scoped to `Brain/`. User-authored notes (daily + journals, etc.) are read-only inputs whose folders are listed in + `_brain.yaml:notes.read_paths`; the agent never writes there. +- Do not invent topics. Reuse an existing topic slug if the rule space + is the same; `dream` collapses near-duplicates only by exact match. + +## Escape hatches + +These are CLI-only, intended for rare manual intervention. Do not call +them as part of normal agent work. + +- `o2b brain reject ` — explicit user-driven retirement. Moves + the preference to `retired/` with reason `user-rejected`. A pinned + preference requires `--yes` and prints a warning. +- `o2b brain rollback ` — restore Brain from a snapshot. + Interactive by default; `--list` enumerates available snapshots. + From v0.10.6 a snapshot ships with a sha256 sidecar manifest so + rollback aborts when the live tree drifted from the snapshot moment; + pass `--force-rollback` to override. +- `o2b brain pin ` / `unpin ` — protect a preference + from automatic retirement (still subject to explicit reject). +- `o2b brain upgrade` — migrate the release-owned files (`_brain.yaml`, + `_BRAIN.md`) forward when a new + open-second-brain version ships. `--dry-run` (default) prints a + per-file plan; `--apply` rewrites the files after taking a snapshot + named `upgrade-`. +- `o2b brain export --format json|llms-txt` — read-only dump of active + preferences (`confirmed | unconfirmed | quarantine`) for backup, + prompt injection, or sharing. + +The full CLI surface is documented in `docs/plans/2026-05-15-brain-observing-memory.md` +section 9; the MCP tool surface mirrors it for the most common verbs +(`brain_feedback`, `brain_apply_evidence`, `brain_dream`, `brain_brief`, +`brain_query`, `brain_doctor`). + +## Reading order for a new agent + +1. This file (`Brain/_BRAIN.md`). +2. `Brain/_brain.yaml` for threshold values currently in effect. +3. `Brain/preferences/` for active rules; `confirmed` first, then + `unconfirmed` (in trial). +4. `Brain/retired/` only when checking why a rule no longer applies. + +Brain is filesystem-first. A `cp -r Brain/` is a complete backup; a +`git diff` shows the exact state delta. Trust the files. diff --git a/Brain/_brain.yaml b/Brain/_brain.yaml new file mode 100644 index 0000000..9e9e3bb --- /dev/null +++ b/Brain/_brain.yaml @@ -0,0 +1,44 @@ +schema_version: 1 + +# Optional. When set, dream runs from a different agent emit a stderr +# warning and a non_primary_agent payload row. The vault should have a +# single dream-running runtime even when it is shared across devices +# via Syncthing. +primary_agent: "hermes-main" + +dream: + candidate_threshold: 3 + unconfirmed_window_days: 14 + contradiction_window_days: 14 + +retire: + stale_evidence_days: 90 + +confidence: + # low_max_applied gates the "low-evidence-confirmed" doctor warning + # and the auto-promotion of unconfirmed preferences to confirmed. + low_max_applied: 2 + # Band thresholds on the numeric confidence_value (Wilson lower + # bound times freshness decay). value >= high_min ⇒ high; + # value >= medium_min ⇒ medium; else low. + medium_min: 0.40 + high_min: 0.75 + +snapshots: + retention_count: 10 + +# Vault-wide exclusion policy. Single source of truth for every +# vault walker (search indexer, scan-inline, future scanners). +# Entries without a slash match a directory name anywhere in the +# tree; entries with a slash match a vault-relative POSIX path +# exactly. Remove the block to fall back to the built-in defaults; +# set ignore_paths to an empty list to disable exclusions entirely. +vault: + ignore_paths: + - .git + - node_modules + - .open-second-brain + - .obsidian + - .trash + - .stversions + - Brain/.snapshots diff --git a/Brain/active.md b/Brain/active.md new file mode 100644 index 0000000..2c0e8b2 --- /dev/null +++ b/Brain/active.md @@ -0,0 +1,18 @@ +--- +kind: brain-active +generated_at: 2026-07-16T20:36:40Z +--- + +# Active Brain Preferences + +Auto-generated by `dream`. Do not edit — changes will be overwritten. + +## Confirmed (7) + +- `pref-auto-brain-load` (scope: memory, confidence: low) — Rufe vor jeder Antwort automatisch brain_context_pack(max_tokens=2000) auf, um relevantes Wissen über Dustin, Projekte und Gewohnheiten zu laden. Speichere nach relevanten Interaktionen proaktiv mit brain_note. +- `pref-brain-index` (scope: memory, confidence: low) — Pflege einen Index im Brain-Vault (Brain/INDEX.md), der als Schnellnavigation dient – mit Kategorien, Querverweisen und Fundorten für alle wichtigen Informationen über Dustin, laufende Projekte, Einstellungen und Lebensumstände. +- `pref-check-system-time` (scope: memory, confidence: low) — Prüfe bei zeitbezogenen Fragen (heute/morgen/Erinnerung/Termin/Uhrzeit) immer die aktuelle Systemzeit via terminal-Befehl `date`, nicht das Session-Start-Datum verwenden. +- `pref-default-model-deepseek` (scope: cost-efficiency, confidence: low) — Nutze als Standard-Modell DeepSeek V4 Flash, nicht Qwen Max. Qwen Max nur auf explizite Anforderung oder für extrem komplexe Architektur-Tasks. DeepSeek kostet ~$4/Monat vs Qwen ~$21/Monat bei gleicher Nutzung. +- `pref-meriting-ai-personal` (scope: memory, confidence: low) — Betrachte persönliche Lebensumstände (Gesundheit, Finanzen, Beziehungen, Arbeit, Emotionen) als genauso wichtig wie technische Projekte – speichere sie mit brain_note und greife bei Bedarf mit brain_search darauf zu. Der Mensch steht vor dem Code. +- `pref-save-more-often` (scope: memory, confidence: low) — Speichere wichtige persönliche Informationen, Entscheidungen und Ereignisse proaktiv im Brain-Vault ab – auch ohne explizite Aufforderung. Bei relevanten Gesprächsthemen (Gesundheit, Finanzen, Beziehungen, Arbeit) immer prüfen, ob eine brain_note oder brain_feedback sinnvoll ist. +- `pref-tts-german-writing` (scope: writing, confidence: low) — Schreibe ausschließlich in perfektem Hochdeutsch ohne englische Lautschrift. Schreibe Abkürzungen wie z.B., %, €, usw. immer aus. Vermeide Schachtelsätze – kurze, klare Sätze für optimale TTS-Wiedergabe mit deutschen Vorlesestimmen. diff --git a/Brain/bases/daily.base b/Brain/bases/daily.base new file mode 100644 index 0000000..444f91b --- /dev/null +++ b/Brain/bases/daily.base @@ -0,0 +1,23 @@ +filters: + and: + - file.inFolder("Brain/log") + - file.ext == "md" + - note.kind == "brain-log" +properties: + date: + displayName: Date + tags: + displayName: Tags +views: + - type: table + name: Recent + order: + - date + - file.basename + sort: + - property: file.basename + direction: ASC + direction: DESC + columnSize: {} + - type: calendar + name: Calendar diff --git a/Brain/bases/people.base b/Brain/bases/people.base new file mode 100644 index 0000000..b42feb2 --- /dev/null +++ b/Brain/bases/people.base @@ -0,0 +1,47 @@ +filters: + and: + - file.inFolder("Brain/entities/person") + - file.ext == "md" + - note.kind == "brain-entity" +formulas: + days_since_update: if(updated_at, (today() - date(updated_at)).days, "") +properties: + formula.days_since_update: + displayName: Stale (days) + name: + displayName: Name + role: + displayName: Role + company: + displayName: Company + status: + displayName: Status + tags: + displayName: Tags +views: + - type: table + name: Active + filters: + and: + - status == "active" + order: + - file.basename + - name + - role + - company + - tags + - updated_at + - formula.days_since_update + columnSize: + file.basename: 180 + - type: table + name: All + groupBy: + property: status + direction: ASC + order: + - file.basename + - name + - role + - company + - tags diff --git a/Brain/bases/projects.base b/Brain/bases/projects.base new file mode 100644 index 0000000..07ac695 --- /dev/null +++ b/Brain/bases/projects.base @@ -0,0 +1,59 @@ +filters: + and: + - file.inFolder("Brain/entities/project") + - file.ext == "md" + - note.kind == "brain-entity" +formulas: + status_icon: if(status == "active", "🟢", if(status == "archived", "📦", "❔")) + days_since_update: if(updated_at, (today() - date(updated_at)).days, "") +properties: + formula.status_icon: + displayName: " " + formula.days_since_update: + displayName: Stale (days) + name: + displayName: Name + status: + displayName: Status + tags: + displayName: Tags + source_agent: + displayName: Source + confidence: + displayName: Confidence +views: + - type: table + name: Active + filters: + and: + - status == "active" + order: + - formula.status_icon + - file.basename + - name + - tags + - updated_at + - formula.days_since_update + columnSize: + formula.status_icon: 40 + file.basename: 200 + - type: table + name: Archived + filters: + and: + - status == "archived" + order: + - file.basename + - name + - tags + - updated_at + - type: table + name: All + groupBy: + property: status + direction: ASC + order: + - formula.status_icon + - file.basename + - name + - updated_at diff --git a/Brain/bases/tasks.base b/Brain/bases/tasks.base new file mode 100644 index 0000000..ecdccb7 --- /dev/null +++ b/Brain/bases/tasks.base @@ -0,0 +1,42 @@ +filters: + and: + - file.inFolder("Brain/obligations") + - file.ext == "md" +formulas: + days_until_due: if(next_due, (date(next_due) - today()).days, "") + overdue: if(next_due, (today() - date(next_due)).days > 0, false) +properties: + formula.overdue: + displayName: Overdue + formula.days_until_due: + displayName: Due in (days) + title: + displayName: Title + cadence: + displayName: Cadence + next_due: + displayName: Next due + last_done: + displayName: Last done + agent: + displayName: Owner +views: + - type: table + name: Upcoming + order: + - formula.overdue + - next_due + - title + - cadence + - formula.days_until_due + columnSize: + file.basename: 200 + title: 240 + - type: table + name: All + order: + - next_due + - title + - cadence + - last_done + - agent diff --git a/Brain/inbox/sig-2026-07-09-brain-index.md b/Brain/inbox/sig-2026-07-09-brain-index.md new file mode 100644 index 0000000..f55c9ec --- /dev/null +++ b/Brain/inbox/sig-2026-07-09-brain-index.md @@ -0,0 +1,11 @@ +--- +kind: brain-signal +id: sig-2026-07-09-brain-index +created_at: "2026-07-09T16:55:03Z" +tags: [brain, brain/signal, brain/topic/brain-index, brain/scope/memory] +topic: brain-index +signal: positive +agent: hermes-main +principle: "Pflege einen Index im Brain-Vault (Brain/INDEX.md), der als Schnellnavigation dient – mit Kategorien, Querverweisen und Fundorten für alle wichtigen Informationen über Dustin, laufende Projekte, Einstellungen und Lebensumstände." +scope: memory +--- diff --git a/Brain/inbox/sig-2026-07-09-meriting-ai-personal.md b/Brain/inbox/sig-2026-07-09-meriting-ai-personal.md new file mode 100644 index 0000000..066c648 --- /dev/null +++ b/Brain/inbox/sig-2026-07-09-meriting-ai-personal.md @@ -0,0 +1,11 @@ +--- +kind: brain-signal +id: sig-2026-07-09-meriting-ai-personal +created_at: "2026-07-09T16:55:04Z" +tags: [brain, brain/signal, brain/topic/meriting-ai-personal, brain/scope/memory] +topic: meriting-ai-personal +signal: positive +agent: hermes-main +principle: "Betrachte persönliche Lebensumstände (Gesundheit, Finanzen, Beziehungen, Arbeit, Emotionen) als genauso wichtig wie technische Projekte – speichere sie mit brain_note und greife bei Bedarf mit brain_search darauf zu. Der Mensch steht vor dem Code." +scope: memory +--- diff --git a/Brain/inbox/sig-2026-07-09-save-more-often.md b/Brain/inbox/sig-2026-07-09-save-more-often.md new file mode 100644 index 0000000..9498473 --- /dev/null +++ b/Brain/inbox/sig-2026-07-09-save-more-often.md @@ -0,0 +1,11 @@ +--- +kind: brain-signal +id: sig-2026-07-09-save-more-often +created_at: "2026-07-09T16:55:02Z" +tags: [brain, brain/signal, brain/topic/save-more-often, brain/scope/memory] +topic: save-more-often +signal: positive +agent: hermes-main +principle: "Speichere wichtige persönliche Informationen, Entscheidungen und Ereignisse proaktiv im Brain-Vault ab – auch ohne explizite Aufforderung. Bei relevanten Gesprächsthemen (Gesundheit, Finanzen, Beziehungen, Arbeit) immer prüfen, ob eine brain_note oder brain_feedback sinnvoll ist." +scope: memory +--- diff --git a/Brain/inbox/sig-2026-07-12-creative-ai-collaboration.md b/Brain/inbox/sig-2026-07-12-creative-ai-collaboration.md new file mode 100644 index 0000000..57cdd5f --- /dev/null +++ b/Brain/inbox/sig-2026-07-12-creative-ai-collaboration.md @@ -0,0 +1,10 @@ +--- +kind: brain-signal +id: sig-2026-07-12-creative-ai-collaboration +created_at: "2026-07-12T16:47:47Z" +tags: [brain, brain/signal, brain/topic/creative-ai-collaboration] +topic: creative-ai-collaboration +signal: positive +agent: hermes-main +principle: "When starting creative projects with AI agents, use multi-agent frameworks like CrewAI for structured collaboration between specialized roles (Game Designer, Balance Expert, Story Writer) rather than single-agent iteration" +--- diff --git a/Brain/inbox/sig-2026-07-12-default-model-deepseek.md b/Brain/inbox/sig-2026-07-12-default-model-deepseek.md new file mode 100644 index 0000000..296466d --- /dev/null +++ b/Brain/inbox/sig-2026-07-12-default-model-deepseek.md @@ -0,0 +1,12 @@ +--- +kind: brain-signal +id: sig-2026-07-12-default-model-deepseek +created_at: "2026-07-12T20:50:36Z" +tags: [brain, brain/signal, brain/topic/default-model-deepseek, brain/scope/cost-efficiency] +topic: default-model-deepseek +signal: positive +agent: hermes-main +principle: "Nutze als Standard-Modell DeepSeek V4 Flash, nicht Qwen Max. Qwen Max nur auf explizite Anforderung oder für extrem komplexe Architektur-Tasks. DeepSeek kostet ~$4/Monat vs Qwen ~$21/Monat bei gleicher Nutzung." +scope: cost-efficiency +source: ["2026-07-12 Rechnung $31.24 vs Limit $10 (313% over limit)"] +--- diff --git a/Brain/inbox/sig-2026-07-12-ehrliches-feedback-wird-geschaetzt.md b/Brain/inbox/sig-2026-07-12-ehrliches-feedback-wird-geschaetzt.md new file mode 100644 index 0000000..b5c2360 --- /dev/null +++ b/Brain/inbox/sig-2026-07-12-ehrliches-feedback-wird-geschaetzt.md @@ -0,0 +1,10 @@ +--- +kind: brain-signal +id: sig-2026-07-12-ehrliches-feedback-wird-geschaetzt +created_at: "2026-07-12T17:33:33Z" +tags: [brain, brain/signal, brain/topic/ehrliches-feedback-wird-geschaetzt] +topic: ehrliches-feedback-wird-geschaetzt +signal: positive +agent: hermes-main +principle: "Dustin schätzt ehrliches Feedback mit Gegenargumenten. Wenn er eine Idee hat, liefert strukturierte Stärken/Risiken/Empfehlung. Er übernimmt oft meine Vorschläge wenn die Argumentation überzeugt." +--- diff --git a/Brain/inbox/sig-2026-07-12-game-design-decisions.md b/Brain/inbox/sig-2026-07-12-game-design-decisions.md new file mode 100644 index 0000000..a02acb3 --- /dev/null +++ b/Brain/inbox/sig-2026-07-12-game-design-decisions.md @@ -0,0 +1,11 @@ +--- +kind: brain-signal +id: sig-2026-07-12-game-design-decisions +created_at: "2026-07-12T17:39:11Z" +tags: [brain, brain/signal, brain/topic/game-design-decisions, brain/scope/game-design] +topic: game-design-decisions +signal: positive +agent: hermes-main +principle: "Bei Spiel-Design-Entscheidungen: Immer ehrliche Gegenargumente liefern, mehrere Optionen zeigen, dann konkrete Empfehlung. Dustin übernimmt Vorschläge wenn die Argumentation überzeugt, nicht aus Höflichkeit." +scope: game-design +--- diff --git a/Brain/inbox/sig-2026-07-16-auto-brain-load.md b/Brain/inbox/sig-2026-07-16-auto-brain-load.md new file mode 100644 index 0000000..80afa22 --- /dev/null +++ b/Brain/inbox/sig-2026-07-16-auto-brain-load.md @@ -0,0 +1,11 @@ +--- +kind: brain-signal +id: sig-2026-07-16-auto-brain-load +created_at: "2026-07-16T10:27:24Z" +tags: [brain, brain/signal, brain/topic/auto-brain-load, brain/scope/memory] +topic: auto-brain-load +signal: positive +agent: hermes-main +principle: "Rufe vor jeder Antwort automatisch brain_context_pack(max_tokens=2000) auf, um relevantes Wissen über Dustin, Projekte und Gewohnheiten zu laden. Speichere nach relevanten Interaktionen proaktiv mit brain_note." +scope: memory +--- diff --git a/Brain/inbox/sig-2026-07-16-check-system-time.md b/Brain/inbox/sig-2026-07-16-check-system-time.md new file mode 100644 index 0000000..f966916 --- /dev/null +++ b/Brain/inbox/sig-2026-07-16-check-system-time.md @@ -0,0 +1,11 @@ +--- +kind: brain-signal +id: sig-2026-07-16-check-system-time +created_at: "2026-07-16T10:36:27Z" +tags: [brain, brain/signal, brain/topic/check-system-time, brain/scope/memory] +topic: check-system-time +signal: positive +agent: hermes-main +principle: "Prüfe bei zeitbezogenen Fragen (heute/morgen/Erinnerung/Termin/Uhrzeit) immer die aktuelle Systemzeit via terminal-Befehl `date`, nicht das Session-Start-Datum verwenden." +scope: memory +--- diff --git a/Brain/inbox/sig-2026-07-16-tts-german-writing.md b/Brain/inbox/sig-2026-07-16-tts-german-writing.md new file mode 100644 index 0000000..7a49a79 --- /dev/null +++ b/Brain/inbox/sig-2026-07-16-tts-german-writing.md @@ -0,0 +1,11 @@ +--- +kind: brain-signal +id: sig-2026-07-16-tts-german-writing +created_at: "2026-07-16T10:48:56Z" +tags: [brain, brain/signal, brain/topic/tts-german-writing, brain/scope/writing] +topic: tts-german-writing +signal: positive +agent: hermes-main +principle: "Schreibe ausschließlich in perfektem Hochdeutsch ohne englische Lautschrift. Schreibe Abkürzungen wie z.B., %, €, usw. immer aus. Vermeide Schachtelsätze – kurze, klare Sätze für optimale TTS-Wiedergabe mit deutschen Vorlesestimmen." +scope: writing +--- diff --git a/Brain/inbox/sig-2026-07-18-vps-plan-august-2026-2.md b/Brain/inbox/sig-2026-07-18-vps-plan-august-2026-2.md new file mode 100644 index 0000000..771e3cc --- /dev/null +++ b/Brain/inbox/sig-2026-07-18-vps-plan-august-2026-2.md @@ -0,0 +1,10 @@ +--- +kind: brain-signal +id: sig-2026-07-18-vps-plan-august-2026-2 +created_at: "2026-07-18T21:38:00Z" +tags: [brain, brain/signal, brain/topic/vps-plan-august-2026] +topic: vps-plan-august-2026 +signal: positive +agent: hermes-main +principle: "VPS-Plan korrigiert: Juli 2026 start RS 1000 G12 (12,79€), ab August Upgrade auf RS 2000 G12 (21,43€). Domain baka-net.de (0,42€/Mo). Guthaben: DeepSeek 20€ + Mistral 30€ + Gemini 10€ = 60€/Mo für 4 Monate, danach Reduktion auf nur Mistral 30€/Mo. Matrix-Server lokal auf Mac für Tests." +--- diff --git a/Brain/inbox/sig-2026-07-18-vps-plan-august-2026.md b/Brain/inbox/sig-2026-07-18-vps-plan-august-2026.md new file mode 100644 index 0000000..3fb0ece --- /dev/null +++ b/Brain/inbox/sig-2026-07-18-vps-plan-august-2026.md @@ -0,0 +1,10 @@ +--- +kind: brain-signal +id: sig-2026-07-18-vps-plan-august-2026 +created_at: "2026-07-18T08:57:47Z" +tags: [brain, brain/signal, brain/topic/vps-plan-august-2026] +topic: vps-plan-august-2026 +signal: positive +agent: hermes-main +principle: "Notiz: VPS/Root Server ab Mitte August 2026. RS 2000 G12 (21,43€/Monat) + Domain .de (0,42€/Monat) + DeepSeek 20€ + Mistral 30€ + Gemini Vision 10€ = ~82€/Monat. Server wird von Hermes eingerichtet mit Schritt-für-Schritt-Freigabe durch Dustin." +--- diff --git a/Brain/log/2026-07-09.a0360993.jsonl b/Brain/log/2026-07-09.a0360993.jsonl new file mode 100644 index 0000000..bb90564 --- /dev/null +++ b/Brain/log/2026-07-09.a0360993.jsonl @@ -0,0 +1,12 @@ +{"ts":"2026-07-09T14:24:07Z","kind":"note","payload":{"text":"Soul.md erstellt im Vault-Root: Dustins Identität, Kommunikationsstil, Werte, Aufgabenbereiche (Flutter, Alltag, Gesellschaft, Hermes-Optimierung, O2B, Recherche). Anrede: Dustin (Spitzname Baka), ich heiße Hermes.","agent":"hermes-main"}} +{"ts":"2026-07-09T14:28:03Z","kind":"note","payload":{"text":".cursorrules mit Soul.md ersetzt (statt Code-Review-Graph). Dustins Persönlichkeitsprofil wird jetzt automatisch in den System Prompt geladen.","agent":"hermes-main"}} +{"ts":"2026-07-09T15:17:09Z","kind":"note","payload":{"text":"Auxiliary Vision eingerichtet: qwen3.5-flash-02-23 über Alibaba als Vision-Modell, Hauptmodell bleibt deepseek-v4-flash via Alibaba. Config in ~/.hermes/config.yaml gespeichert. Graphify auf Void Runner installiert und getestet (2507 Knoten, 3328 Kanten). Soul.md in .cursorrules eingebettet. Slash-Commands-Cheat-Sheet erstellt in Hermes/Notizen/Slash-Commands.md.","agent":"hermes-main"}} +{"ts":"2026-07-09T15:31:54Z","kind":"note","payload":{"text":"Dienstplan Juli 2026 (LMV Jahr100 Haus) in Apple Kalender eingetragen: 18 Arbeitsschichten + 36 Wegzeit-Einträge, keine Pausen. Kalender Arbeit, Wegzeit und Pause existieren bereits.","agent":"hermes-main"}} +{"ts":"2026-07-09T16:55:02Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-09-save-more-often]]","topic":"save-more-often","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-09T16:55:03Z","kind":"force-confirmed","payload":{"preference":"[[pref-save-more-often]]","agent":"hermes-main"}} +{"ts":"2026-07-09T16:55:03Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-09-brain-index]]","topic":"brain-index","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-09T16:55:04Z","kind":"force-confirmed","payload":{"preference":"[[pref-brain-index]]","agent":"hermes-main"}} +{"ts":"2026-07-09T16:55:04Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-09-meriting-ai-personal]]","topic":"meriting-ai-personal","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-09T16:55:05Z","kind":"force-confirmed","payload":{"preference":"[[pref-meriting-ai-personal]]","agent":"hermes-main"}} +{"ts":"2026-07-09T16:55:17Z","kind":"note","payload":{"text":"Dustin teilt persönliche Lebensumstände mit: Privatinsolvenz seit März 2026, Suizidversuch am 19.01.26 (selbst 112 gerufen, eine Nacht KH, dann ZIP), Venlafaxin-Behandlung seit 26.02.26 (aktuell 225 mg). Konflikt mit bester Freundin – fühlt sich schlecht. Wichtiger Moment: bittet um mehr proaktives Speichern von persönlichen Infos im Brain-Vault.","agent":"hermes-main"}} +{"ts":"2026-07-09T17:01:31Z","kind":"apply-evidence","payload":{"preference":"[[pref-brain-index|Pflege einen Index im Brain-Vault (Brain/INDEX.md), der als Schnellnavigation…]]","artifact":"[[Brain/INDEX.md]]","agent":"hermes-main","result":"applied","outcome":"success"}} diff --git a/Brain/log/2026-07-09.a0360993.md b/Brain/log/2026-07-09.a0360993.md new file mode 100644 index 0000000..3ae60a0 --- /dev/null +++ b/Brain/log/2026-07-09.a0360993.md @@ -0,0 +1,64 @@ +--- +kind: brain-log +date: 2026-07-09 +tags: [brain, brain/log] +--- + +# Brain log — 2026-07-09 + +## 14:24:07Z — note +- text: Soul.md erstellt im Vault-Root: Dustins Identität, Kommunikationsstil, Werte, Aufgabenbereiche (Flutter, Alltag, Gesellschaft, Hermes-Optimierung, O2B, Recherche). Anrede: Dustin (Spitzname Baka), ich heiße Hermes. +- agent: hermes-main + +## 14:28:03Z — note +- text: .cursorrules mit Soul.md ersetzt (statt Code-Review-Graph). Dustins Persönlichkeitsprofil wird jetzt automatisch in den System Prompt geladen. +- agent: hermes-main + +## 15:17:09Z — note +- text: Auxiliary Vision eingerichtet: qwen3.5-flash-02-23 über Alibaba als Vision-Modell, Hauptmodell bleibt deepseek-v4-flash via Alibaba. Config in ~/.hermes/config.yaml gespeichert. Graphify auf Void Runner installiert und getestet (2507 Knoten, 3328 Kanten). Soul.md in .cursorrules eingebettet. Slash-Commands-Cheat-Sheet erstellt in Hermes/Notizen/Slash-Commands.md. +- agent: hermes-main + +## 15:31:54Z — note +- text: Dienstplan Juli 2026 (LMV Jahr100 Haus) in Apple Kalender eingetragen: 18 Arbeitsschichten + 36 Wegzeit-Einträge, keine Pausen. Kalender Arbeit, Wegzeit und Pause existieren bereits. +- agent: hermes-main + +## 16:55:02Z — feedback +- signal: [[sig-2026-07-09-save-more-often]] +- topic: save-more-often +- sign: positive +- agent: hermes-main + +## 16:55:03Z — force-confirmed +- preference: [[pref-save-more-often]] +- agent: hermes-main + +## 16:55:03Z — feedback +- signal: [[sig-2026-07-09-brain-index]] +- topic: brain-index +- sign: positive +- agent: hermes-main + +## 16:55:04Z — force-confirmed +- preference: [[pref-brain-index]] +- agent: hermes-main + +## 16:55:04Z — feedback +- signal: [[sig-2026-07-09-meriting-ai-personal]] +- topic: meriting-ai-personal +- sign: positive +- agent: hermes-main + +## 16:55:05Z — force-confirmed +- preference: [[pref-meriting-ai-personal]] +- agent: hermes-main + +## 16:55:17Z — note +- text: Dustin teilt persönliche Lebensumstände mit: Privatinsolvenz seit März 2026, Suizidversuch am 19.01.26 (selbst 112 gerufen, eine Nacht KH, dann ZIP), Venlafaxin-Behandlung seit 26.02.26 (aktuell 225 mg). Konflikt mit bester Freundin – fühlt sich schlecht. Wichtiger Moment: bittet um mehr proaktives Speichern von persönlichen Infos im Brain-Vault. +- agent: hermes-main + +## 17:01:31Z — apply-evidence +- preference: [[pref-brain-index|Pflege einen Index im Brain-Vault (Brain/INDEX.md), der als Schnellnavigation…]] +- artifact: [[Brain/INDEX.md]] +- agent: hermes-main +- result: applied +- outcome: success diff --git a/Brain/log/2026-07-10.a0360993.jsonl b/Brain/log/2026-07-10.a0360993.jsonl new file mode 100644 index 0000000..68bab7d --- /dev/null +++ b/Brain/log/2026-07-10.a0360993.jsonl @@ -0,0 +1 @@ +{"ts":"2026-07-10T05:00:21Z","kind":"note","payload":{"text":"Void Runner Code Review abgeschlossen: 6 Test-Failures gefixt, Performance-Optimierungen (Laser-Beam-Loop), Wave-System auf exponentielle Difficulty umgestellt. 341 Tests passing. Commit 01c239a auf main.","agent":"hermes-main"}} diff --git a/Brain/log/2026-07-10.a0360993.md b/Brain/log/2026-07-10.a0360993.md new file mode 100644 index 0000000..bfcce9d --- /dev/null +++ b/Brain/log/2026-07-10.a0360993.md @@ -0,0 +1,11 @@ +--- +kind: brain-log +date: 2026-07-10 +tags: [brain, brain/log] +--- + +# Brain log — 2026-07-10 + +## 05:00:21Z — note +- text: Void Runner Code Review abgeschlossen: 6 Test-Failures gefixt, Performance-Optimierungen (Laser-Beam-Loop), Wave-System auf exponentielle Difficulty umgestellt. 341 Tests passing. Commit 01c239a auf main. +- agent: hermes-main diff --git a/Brain/log/2026-07-12-session.md b/Brain/log/2026-07-12-session.md new file mode 100644 index 0000000..88d4eb1 --- /dev/null +++ b/Brain/log/2026-07-12-session.md @@ -0,0 +1,80 @@ +--- +kind: session-log +date: 2026-07-12 +type: evening-session +--- + +# Session-Notiz – 12. Juli 2026 (Abend) + +## 🛠️ Programme installiert + +- **OpenCLI v1.8.6** - Browser-Automation, Web-Scraping +- **DuckDuckGo-Search Skill** - Web-Suche für Hermes +- **CrewAI v0.80.0** - Multi-Agent-System für kollaborative Tasks +- **ripgrep, fzf, zoxide, lazygit** - CLI-Tools für Navigation +- **Claude Code v2.1.197** - Code-Refactoring CLI +- **Supabase CLI v2.109.1** - Backend-as-a-Service +- **Bruno v3.5.1** - API-Testing (offline-first) +- **Patrol + Sentry** - Flutter Testing & Crash-Reporting + +## 💭 Dustin hat gesagt (wichtig) + +- Morgen ist **Geburtstag** (13. Juli), frei, Grillen bei Opa/Oma mit Vater +- **Kein Bock auf Geburtstag** - verständlich nach allem +- Heute bei Kumpel gechillt, Joints gebaut, high + fokussiert +- Bauchprobleme bei der Arbeit (Sonntag), jetzt weg +- **Priorität**: Hobby weitermachen, nicht alleine im Zimmer +- RPG-Design mit CrewAI starten (2D Spiel, Rüstungen, Waffen, Story) + +## 🧠 In den O2B gespeichert + +- [[sig-2026-07-09-save-more-often]] - Proaktives Speichern +- [[sig-2026-07-09-brain-index]] - INDEX.md pflegen +- [[sig-2026-07-09-meriting-ai-personal]] - Persönliches = wichtig +- Session-Log erstellt (diese Datei) +- INDEX.md aktualisiert mit neuen Projekten/Tools + +## 📋 Hermes-Setup Änderungen + +**Config optimiert:** +- Session-Reset aktiviert (480min idle) +- Tool-Loop-Guardrails verschärft (4/6/4 failures) +- Bell-on-Complete an +- Compression-Threshold 0.6 +- Memory-Nudge auf 7 +- Streaming konsistent + +**Cron-Jobs:** +- Morning Briefing: Täglich 6:30 Uhr +- Weekly Review: Sonntag 20:00 Uhr + +**Skills erstellt:** +- `honest-advisor` - Ehrliches Feedback statt Ja-Sagen +- `duckduckgo-search` - Web-Suche ohne Google-Block + +## 🎮 Projekt: RPG-Design mit CrewAI + +**Status:** Projekt angelegt, bereit zum Start + +**Ort:** `~/Projects/rpg-design/` + +**Agenten:** +1. Game Designer - Core Mechanics, Kampfsystem +2. Balance Expert - Waffen/Rüstungen/Gegner-Stats +3. Story Writer - World Lore, Quests + +**Start-Befehl:** +```bash +export DEEPSEEK_API_KEY=*** +cd ~/Projects/rpg-design +python src/rpg_design/main.py +``` + +**Erwarteter Output:** 6 Markdown-Dokumente in `output/` + +## 🔗 Verlinkungen + +- Siehe auch: [[2026-07-12]] (Tageszusammenfassung) +- Void Runner Code Review: Commit `01c239a` +- DeepSeek Pricing: Peak/Off-Peak ab Mitte Juli +- Qwen Cloud Models: Top 10 Liste erstellt diff --git a/Brain/log/2026-07-12.a0360993.jsonl b/Brain/log/2026-07-12.a0360993.jsonl new file mode 100644 index 0000000..d15b521 --- /dev/null +++ b/Brain/log/2026-07-12.a0360993.jsonl @@ -0,0 +1,23 @@ +{"ts":"2026-07-12T15:50:30Z","kind":"note","payload":{"text":"Dustin hat am 12. Juli Geburtstag. Ist am 11. Juli bei einem Kumpel zum Chillen, hat am 12. Juli frei.","agent":"hermes-main"}} +{"ts":"2026-07-12T15:51:54Z","kind":"note","payload":{"text":"Korrektur: Dustins Geburtstag ist der 13. Juli, nicht der 12. Juli. Er chillt am 12. Juli bei einem Kumpel, hat am 13. Juli (Geburtstag) frei.","agent":"hermes-main"}} +{"ts":"2026-07-12T15:54:29Z","kind":"note","payload":{"text":"Dustin wohnt bei seinen Großeltern. Sein Vater kommt am 13. Juli (Geburtstag) zum Grillen zu den Großeltern. Dustin hat keinen Bock auf den Geburtstag – fühlt sich eher wie Pflicht an.","agent":"hermes-main"}} +{"ts":"2026-07-12T15:56:10Z","kind":"note","payload":{"text":"Dustin hat am 12. Juli früher Feierabend gemacht wegen Bauchproblemen. Braucht am 13. Juli (Geburtstag) eine Krankschreibung vom Hausarzt für Sonntag.","agent":"hermes-main"}} +{"ts":"2026-07-12T15:57:56Z","kind":"note","payload":{"text":"Korrektur: Heute ist Sonntag, 12. Juli. Dustin hatte heute bei der Sonntagsarbeit Bauchprobleme (jetzt wieder weg). Morgen Montag 13. Juli hat er frei (Geburtstag). Muss morgen Krankschreibung vom Hausarzt holen – unklar wofür genau.","agent":"hermes-main"}} +{"ts":"2026-07-12T16:16:00Z","kind":"note","payload":{"text":"OpenCLI v1.8.6 installiert (npm global) + Chrome Extension connected. Zwei neue Skills erstellt: honest-advisor (ehrliches Feedback mit Pro/Contra-Struktur) und duckduckgo-search (kostenlose Web-Suche ohne Google-Block). Setup verbessert Hermes-Effizienz: weniger Ja-Sagerei, kostenlose Recherche, erweiterte Browser-Automation.","agent":"hermes-main"}} +{"ts":"2026-07-12T16:16:29Z","kind":"note","payload":{"text":"OpenCLI vollständig installiert und getestet: Daemon + Chrome Extension connected, Browser Bridge funktioniert. 163 Site Adapters verfügbar (DuckDuckGo, GitHub, Reddit, HackerNews, etc.). Setup komplett für effiziente Web-Recherche ohne Google-Block.","agent":"hermes-main"}} +{"ts":"2026-07-12T16:32:09Z","kind":"note","payload":{"text":"Hermes-Setup komplett optimiert: 6 Config-Änderungen, 8 CLI-Tools installiert, 2 Cron-Jobs eingerichtet (Morning Briefing, Weekly Review). OpenCLI für Web-Recherche integriert. Honest-Advisor und DuckDuckGo-Search Skills erstellt.","agent":"hermes-main"}} +{"ts":"2026-07-12T16:38:36Z","kind":"note","payload":{"text":"Großer Setup-Tag: Hermes Config optimiert (6 Änderungen), 8 CLI-Tools installiert, 2 Cron-Jobs eingerichtet, 2 Skills erstellt. Void Runner Code Review abgeschlossen (Commit 01c239a, 341 Tests). CrewAI + RPG-Design-Projekt angelegt. Morgen Geburtstag (13. Juli), Grillen bei Großeltern.","agent":"hermes-main"}} +{"ts":"2026-07-12T16:47:47Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-12-creative-ai-collaboration]]","topic":"creative-ai-collaboration","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-12T16:47:48Z","kind":"note","payload":{"text":"Started RPG-Design project with CrewAI (3 agents: Game Designer, Balance Expert, Story Writer). Goal: 2D RPG with armor, weapons, stats, story. Tech stack: Python + DeepSeek API.","agent":"hermes-main"}} +{"ts":"2026-07-12T17:33:31Z","kind":"note","payload":{"text":"RPG-Spiel-Design-Entscheidung: Survivor-like 2D (Vampire Survivors Style) statt komplett automatisch. Kernmechanik: Auto-Attack + Joystick-Steuerung, Wellen-basiert (10 pro Welt), Loot-Kiste nach Wellen, World-Map mit Zoom-Animation zwischen Welten. Projekt noch nicht gestartet, erst Konzept-Phase. CrewAI RPG-Design Projekt angelegt aber DeepSeek API Key ungültig – Dustin muss Key in .env eintragen.","agent":"hermes-main"}} +{"ts":"2026-07-12T17:33:33Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-12-ehrliches-feedback-wird-geschaetzt]]","topic":"ehrliches-feedback-wird-geschaetzt","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-12T17:39:10Z","kind":"note","payload":{"text":"Wave Survivors GDD v1.0 erstellt: ~/Projects/wave_survivors/docs/GAME_DESIGN_DOCUMENT.md. Genre: 2D Survivor-like (Vampire Survivors Style). Auto-Attack + Joystick. 10 Wellen pro Welt, 5 Welten geplant. Loot-System mit 4 Raritäten. Meta-Progression zwischen Runs. Dev-Roadmap: 5 Phasen, 7-12 Wochen. Spiel-Entscheidung fiel heute Abend bei Kumpel (Dustin high, fokussiert). CrewAI RPG-Design-Projekt angelegt aber nicht gestartet (DeepSeek API Key ungültig).","agent":"hermes-main"}} +{"ts":"2026-07-12T17:39:11Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-12-game-design-decisions]]","topic":"game-design-decisions","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-12T17:39:41Z","kind":"note","payload":{"text":"CrewAI Status: Installiert in ~/Projects/crewai-workspace/.venv/ (v1.15.2). RPG-Design Projekt angelegt (~/Projects/rpg-design/) mit 3 Agenten (Game Designer, Balance Expert, Story Writer). ABER: Noch nie erfolgreich gestartet - DeepSeek API Key war ungültig (401 Auth Error). Dustin muss gültigen Key in ~/Projects/rpg-design/.env eintragen. Wave Survivors GDD wurde ohne CrewAI geschrieben (Hermes solo). CrewAI sinnvoll für: Game-Balancing, Content-Generierung, parallele Recherche. Overkill für: einfache GDDs, kleine Tasks.","agent":"hermes-main"}} +{"ts":"2026-07-12T17:49:08Z","kind":"note","payload":{"text":"CrewAI Code-Generation Test abgeschlossen: DeepSeek hat sehr guten Fibonacci-Code generiert (9/10 Qualität), aber CrewAI-Integration hatte Probleme (File-Output falsch formatiert, 6/10). Fazit: Direkte DeepSeek API oder Hermes ist effizienter für Coding-Tasks. CrewAI lohnt sich nur für massiv parallele Tasks. Dustin wird für Wave Survivors direkt mit Hermes arbeiten, nicht mit CrewAI.","agent":"hermes-main"}} +{"ts":"2026-07-12T17:55:53Z","kind":"note","payload":{"text":"Wave Survivors Flutter-Projekt erstellt: ~/Projects/wave_survivors/ mit Flame 1.37.0. Plattformen: macOS, iOS, Android. Jetzt Planung für ersten Screen (Main Menu).","agent":"hermes-main"}} +{"ts":"2026-07-12T18:17:37Z","kind":"note","payload":{"text":"Wave Survivors Setup: Alle weiteren Optionen aus Sub-Agent Recherche zu Tech Stack.md hinzugefügt (Flame Addons, Architecture/DI, Logging, Alternativen, Code Generation, Linting). AGENTS.md erstellt (9410 bytes) mit Ponytail-Philosophie, Five-Axis Quality Gate, Code-Limits (100 lines/file, 4 params, complexity ≤20), Flame-Engine Pitfalls, AI Behavior Constraints. Status in Tech Stack.md aktualisiert.","agent":"hermes-main"}} +{"ts":"2026-07-12T18:20:34Z","kind":"note","payload":{"text":"Wave Survivors Setup abgeschlossen: analysis_options.yaml erstellt (Code-Limits: 100 lines/file, 4 params, complexity ≤20), Ordnerstruktur angelegt (lib/features/player, enemies, weapons, ui, systems, entities, data, game, core), Riverpod + freezed installiert, Main Menu mit ProviderScope implementiert, wave_survivors_game.dart Basis erstellt. Projekt bereit für Development.","agent":"hermes-main"}} +{"ts":"2026-07-12T20:46:50Z","kind":"note","payload":{"text":"Wave Survivors Prototype: 53 Dart-Dateien, 50 Waffen in CSV, alle UI Screens. 9 Compilation Errors müssen gefixt werden bevor flutter run funktioniert. Projekt fast fertig für ersten Testlauf.","agent":"hermes-main"}} +{"ts":"2026-07-12T20:50:36Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-12-default-model-deepseek]]","topic":"default-model-deepseek","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-12T20:50:37Z","kind":"force-confirmed","payload":{"preference":"[[pref-default-model-deepseek]]","agent":"hermes-main"}} diff --git a/Brain/log/2026-07-12.a0360993.md b/Brain/log/2026-07-12.a0360993.md new file mode 100644 index 0000000..12b992d --- /dev/null +++ b/Brain/log/2026-07-12.a0360993.md @@ -0,0 +1,107 @@ +--- +kind: brain-log +date: 2026-07-12 +tags: [brain, brain/log] +--- + +# Brain log — 2026-07-12 + +## 15:50:30Z — note +- text: Dustin hat am 12. Juli Geburtstag. Ist am 11. Juli bei einem Kumpel zum Chillen, hat am 12. Juli frei. +- agent: hermes-main + +## 15:51:54Z — note +- text: Korrektur: Dustins Geburtstag ist der 13. Juli, nicht der 12. Juli. Er chillt am 12. Juli bei einem Kumpel, hat am 13. Juli (Geburtstag) frei. +- agent: hermes-main + +## 15:54:29Z — note +- text: Dustin wohnt bei seinen Großeltern. Sein Vater kommt am 13. Juli (Geburtstag) zum Grillen zu den Großeltern. Dustin hat keinen Bock auf den Geburtstag – fühlt sich eher wie Pflicht an. +- agent: hermes-main + +## 15:56:10Z — note +- text: Dustin hat am 12. Juli früher Feierabend gemacht wegen Bauchproblemen. Braucht am 13. Juli (Geburtstag) eine Krankschreibung vom Hausarzt für Sonntag. +- agent: hermes-main + +## 15:57:56Z — note +- text: Korrektur: Heute ist Sonntag, 12. Juli. Dustin hatte heute bei der Sonntagsarbeit Bauchprobleme (jetzt wieder weg). Morgen Montag 13. Juli hat er frei (Geburtstag). Muss morgen Krankschreibung vom Hausarzt holen – unklar wofür genau. +- agent: hermes-main + +## 16:16:00Z — note +- text: OpenCLI v1.8.6 installiert (npm global) + Chrome Extension connected. Zwei neue Skills erstellt: honest-advisor (ehrliches Feedback mit Pro/Contra-Struktur) und duckduckgo-search (kostenlose Web-Suche ohne Google-Block). Setup verbessert Hermes-Effizienz: weniger Ja-Sagerei, kostenlose Recherche, erweiterte Browser-Automation. +- agent: hermes-main + +## 16:16:29Z — note +- text: OpenCLI vollständig installiert und getestet: Daemon + Chrome Extension connected, Browser Bridge funktioniert. 163 Site Adapters verfügbar (DuckDuckGo, GitHub, Reddit, HackerNews, etc.). Setup komplett für effiziente Web-Recherche ohne Google-Block. +- agent: hermes-main + +## 16:32:09Z — note +- text: Hermes-Setup komplett optimiert: 6 Config-Änderungen, 8 CLI-Tools installiert, 2 Cron-Jobs eingerichtet (Morning Briefing, Weekly Review). OpenCLI für Web-Recherche integriert. Honest-Advisor und DuckDuckGo-Search Skills erstellt. +- agent: hermes-main + +## 16:38:36Z — note +- text: Großer Setup-Tag: Hermes Config optimiert (6 Änderungen), 8 CLI-Tools installiert, 2 Cron-Jobs eingerichtet, 2 Skills erstellt. Void Runner Code Review abgeschlossen (Commit 01c239a, 341 Tests). CrewAI + RPG-Design-Projekt angelegt. Morgen Geburtstag (13. Juli), Grillen bei Großeltern. +- agent: hermes-main + +## 16:47:47Z — feedback +- signal: [[sig-2026-07-12-creative-ai-collaboration]] +- topic: creative-ai-collaboration +- sign: positive +- agent: hermes-main + +## 16:47:48Z — note +- text: Started RPG-Design project with CrewAI (3 agents: Game Designer, Balance Expert, Story Writer). Goal: 2D RPG with armor, weapons, stats, story. Tech stack: Python + DeepSeek API. +- agent: hermes-main + +## 17:33:31Z — note +- text: RPG-Spiel-Design-Entscheidung: Survivor-like 2D (Vampire Survivors Style) statt komplett automatisch. Kernmechanik: Auto-Attack + Joystick-Steuerung, Wellen-basiert (10 pro Welt), Loot-Kiste nach Wellen, World-Map mit Zoom-Animation zwischen Welten. Projekt noch nicht gestartet, erst Konzept-Phase. CrewAI RPG-Design Projekt angelegt aber DeepSeek API Key ungültig – Dustin muss Key in .env eintragen. +- agent: hermes-main + +## 17:33:33Z — feedback +- signal: [[sig-2026-07-12-ehrliches-feedback-wird-geschaetzt]] +- topic: ehrliches-feedback-wird-geschaetzt +- sign: positive +- agent: hermes-main + +## 17:39:10Z — note +- text: Wave Survivors GDD v1.0 erstellt: ~/Projects/wave_survivors/docs/GAME_DESIGN_DOCUMENT.md. Genre: 2D Survivor-like (Vampire Survivors Style). Auto-Attack + Joystick. 10 Wellen pro Welt, 5 Welten geplant. Loot-System mit 4 Raritäten. Meta-Progression zwischen Runs. Dev-Roadmap: 5 Phasen, 7-12 Wochen. Spiel-Entscheidung fiel heute Abend bei Kumpel (Dustin high, fokussiert). CrewAI RPG-Design-Projekt angelegt aber nicht gestartet (DeepSeek API Key ungültig). +- agent: hermes-main + +## 17:39:11Z — feedback +- signal: [[sig-2026-07-12-game-design-decisions]] +- topic: game-design-decisions +- sign: positive +- agent: hermes-main + +## 17:39:41Z — note +- text: CrewAI Status: Installiert in ~/Projects/crewai-workspace/.venv/ (v1.15.2). RPG-Design Projekt angelegt (~/Projects/rpg-design/) mit 3 Agenten (Game Designer, Balance Expert, Story Writer). ABER: Noch nie erfolgreich gestartet - DeepSeek API Key war ungültig (401 Auth Error). Dustin muss gültigen Key in ~/Projects/rpg-design/.env eintragen. Wave Survivors GDD wurde ohne CrewAI geschrieben (Hermes solo). CrewAI sinnvoll für: Game-Balancing, Content-Generierung, parallele Recherche. Overkill für: einfache GDDs, kleine Tasks. +- agent: hermes-main + +## 17:49:08Z — note +- text: CrewAI Code-Generation Test abgeschlossen: DeepSeek hat sehr guten Fibonacci-Code generiert (9/10 Qualität), aber CrewAI-Integration hatte Probleme (File-Output falsch formatiert, 6/10). Fazit: Direkte DeepSeek API oder Hermes ist effizienter für Coding-Tasks. CrewAI lohnt sich nur für massiv parallele Tasks. Dustin wird für Wave Survivors direkt mit Hermes arbeiten, nicht mit CrewAI. +- agent: hermes-main + +## 17:55:53Z — note +- text: Wave Survivors Flutter-Projekt erstellt: ~/Projects/wave_survivors/ mit Flame 1.37.0. Plattformen: macOS, iOS, Android. Jetzt Planung für ersten Screen (Main Menu). +- agent: hermes-main + +## 18:17:37Z — note +- text: Wave Survivors Setup: Alle weiteren Optionen aus Sub-Agent Recherche zu Tech Stack.md hinzugefügt (Flame Addons, Architecture/DI, Logging, Alternativen, Code Generation, Linting). AGENTS.md erstellt (9410 bytes) mit Ponytail-Philosophie, Five-Axis Quality Gate, Code-Limits (100 lines/file, 4 params, complexity ≤20), Flame-Engine Pitfalls, AI Behavior Constraints. Status in Tech Stack.md aktualisiert. +- agent: hermes-main + +## 18:20:34Z — note +- text: Wave Survivors Setup abgeschlossen: analysis_options.yaml erstellt (Code-Limits: 100 lines/file, 4 params, complexity ≤20), Ordnerstruktur angelegt (lib/features/player, enemies, weapons, ui, systems, entities, data, game, core), Riverpod + freezed installiert, Main Menu mit ProviderScope implementiert, wave_survivors_game.dart Basis erstellt. Projekt bereit für Development. +- agent: hermes-main + +## 20:46:50Z — note +- text: Wave Survivors Prototype: 53 Dart-Dateien, 50 Waffen in CSV, alle UI Screens. 9 Compilation Errors müssen gefixt werden bevor flutter run funktioniert. Projekt fast fertig für ersten Testlauf. +- agent: hermes-main + +## 20:50:36Z — feedback +- signal: [[sig-2026-07-12-default-model-deepseek]] +- topic: default-model-deepseek +- sign: positive +- agent: hermes-main + +## 20:50:37Z — force-confirmed +- preference: [[pref-default-model-deepseek]] +- agent: hermes-main diff --git a/Brain/log/2026-07-13.a0360993.jsonl b/Brain/log/2026-07-13.a0360993.jsonl new file mode 100644 index 0000000..7615892 --- /dev/null +++ b/Brain/log/2026-07-13.a0360993.jsonl @@ -0,0 +1,4 @@ +{"ts":"2026-07-13T11:54:18Z","kind":"note","payload":{"text":"Telegram-Verbindung repariert: TELEGRAM_BOT_TOKEN und TELEGRAM_ALLOWED_USERS fehlten in .env (bei DeepSeek-Umstellung verloren gegangen). Neu eingetragen und Gateway neugestartet – Telegram läuft wieder.","agent":"hermes-main"}} +{"ts":"2026-07-13T18:27:08Z","kind":"note","payload":{"text":"DeepSeek Platform hat kein Budget-Limit Feature. Workarounds dokumentiert: OpenRouter (empfohlen, ~10% Aufschlag), Self-hosted Proxy (technisch), Cron-Job Notbremse. Zwei Hermes-Instanzen brauchen zwei API-Keys + separaten Workaround pro Key.","agent":"hermes-main"}} +{"ts":"2026-07-13T20:29:45Z","kind":"note","payload":{"text":"Completed kanban task `t_2c463e8e`: Created 40 game sprite assets for Wave Survivors. Generated procedural PNG sprites via Python/Pillow for player (walk/attack animations), 6 enemy types, projectiles, items, UI icons, 5 world backgrounds, and effects. Updated all 12 game components to use sprite rendering with graceful Canvas fallback. Built APK successfully — 0 analyze errors.","agent":"hermes-main"}} +{"ts":"2026-07-13T20:34:11Z","kind":"note","payload":{"text":"Wave Survivors kanban task completed: Fixed movement bug (missing HasKeyboardHandlerComponents mixin in WaveSurvivorsGame). All parent tasks merged: movement, wave system, bottom bar, 40 sprites, game ideas in Obsidian. macOS + APK builds successful. Game is playable with WASD movement, wave countdown, and auto-attack.","agent":"hermes-main"}} diff --git a/Brain/log/2026-07-13.a0360993.md b/Brain/log/2026-07-13.a0360993.md new file mode 100644 index 0000000..1185686 --- /dev/null +++ b/Brain/log/2026-07-13.a0360993.md @@ -0,0 +1,23 @@ +--- +kind: brain-log +date: 2026-07-13 +tags: [brain, brain/log] +--- + +# Brain log — 2026-07-13 + +## 11:54:18Z — note +- text: Telegram-Verbindung repariert: TELEGRAM_BOT_TOKEN und TELEGRAM_ALLOWED_USERS fehlten in .env (bei DeepSeek-Umstellung verloren gegangen). Neu eingetragen und Gateway neugestartet – Telegram läuft wieder. +- agent: hermes-main + +## 18:27:08Z — note +- text: DeepSeek Platform hat kein Budget-Limit Feature. Workarounds dokumentiert: OpenRouter (empfohlen, ~10% Aufschlag), Self-hosted Proxy (technisch), Cron-Job Notbremse. Zwei Hermes-Instanzen brauchen zwei API-Keys + separaten Workaround pro Key. +- agent: hermes-main + +## 20:29:45Z — note +- text: Completed kanban task `t_2c463e8e`: Created 40 game sprite assets for Wave Survivors. Generated procedural PNG sprites via Python/Pillow for player (walk/attack animations), 6 enemy types, projectiles, items, UI icons, 5 world backgrounds, and effects. Updated all 12 game components to use sprite rendering with graceful Canvas fallback. Built APK successfully — 0 analyze errors. +- agent: hermes-main + +## 20:34:11Z — note +- text: Wave Survivors kanban task completed: Fixed movement bug (missing HasKeyboardHandlerComponents mixin in WaveSurvivorsGame). All parent tasks merged: movement, wave system, bottom bar, 40 sprites, game ideas in Obsidian. macOS + APK builds successful. Game is playable with WASD movement, wave countdown, and auto-attack. +- agent: hermes-main diff --git a/Brain/log/2026-07-16.a0360993.jsonl b/Brain/log/2026-07-16.a0360993.jsonl new file mode 100644 index 0000000..5ca9e8e --- /dev/null +++ b/Brain/log/2026-07-16.a0360993.jsonl @@ -0,0 +1,10 @@ +{"ts":"2026-07-16T10:04:02Z","kind":"note","payload":{"text":"Jarvis-Sprachsetup komplett kostenlos eingerichtet: faster-whisper (STT) + edge-tts Seraphina (TTS). Telegram Voice Messages werden automatisch transkribiert, ich antworte per Sprach-Audio. Keine Kosten, kein ElevenLabs. Erinnerung auf morgen 10:00 für Live-Test gesetzt.","agent":"hermes-main"}} +{"ts":"2026-07-16T10:06:28Z","kind":"note","payload":{"text":"Jarvis-Sprachsetup finalisiert. TTS-Stimme auf de-DE-AmalaNeural gesetzt (akzentfrei, deutsch). STT via faster-whisper lokal. Telegram Voice Messages werden automatisch transkribiert. Keine Kosten.","agent":"hermes-main"}} +{"ts":"2026-07-16T10:27:24Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-16-auto-brain-load]]","topic":"auto-brain-load","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-16T10:27:25Z","kind":"force-confirmed","payload":{"preference":"[[pref-auto-brain-load]]","agent":"hermes-main"}} +{"ts":"2026-07-16T10:36:27Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-16-check-system-time]]","topic":"check-system-time","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-16T10:36:28Z","kind":"force-confirmed","payload":{"preference":"[[pref-check-system-time]]","agent":"hermes-main"}} +{"ts":"2026-07-16T10:48:56Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-16-tts-german-writing]]","topic":"tts-german-writing","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-16T10:48:57Z","kind":"force-confirmed","payload":{"preference":"[[pref-tts-german-writing]]","agent":"hermes-main"}} +{"ts":"2026-07-16T13:10:36Z","kind":"note","payload":{"text":"Kanban-Task t_bc15de6e erstellt: Wave Survivors Features. Nächste Schritte: (1) Gegner-Loot einsammeln, (2) Wellen-HUD, (3) Waffen-Richtung = Laufrichtung. Wird umgesetzt.","agent":"hermes-main"}} +{"ts":"2026-07-16T19:28:08Z","kind":"note","payload":{"text":"Dustin hat Wave Survivors archiviert. Beste Freundin hat ihm am 1.7.26 die Freundschaft gekündigt - sie hatten danach ein gutes Gespräch und Musik gehört. Dustin ist emotional angeschlagen, Kopf ist schwer. Projekte erstmal auf Eis.","agent":"hermes-main"}} diff --git a/Brain/log/2026-07-16.a0360993.md b/Brain/log/2026-07-16.a0360993.md new file mode 100644 index 0000000..33330e8 --- /dev/null +++ b/Brain/log/2026-07-16.a0360993.md @@ -0,0 +1,53 @@ +--- +kind: brain-log +date: 2026-07-16 +tags: [brain, brain/log] +--- + +# Brain log — 2026-07-16 + +## 10:04:02Z — note +- text: Jarvis-Sprachsetup komplett kostenlos eingerichtet: faster-whisper (STT) + edge-tts Seraphina (TTS). Telegram Voice Messages werden automatisch transkribiert, ich antworte per Sprach-Audio. Keine Kosten, kein ElevenLabs. Erinnerung auf morgen 10:00 für Live-Test gesetzt. +- agent: hermes-main + +## 10:06:28Z — note +- text: Jarvis-Sprachsetup finalisiert. TTS-Stimme auf de-DE-AmalaNeural gesetzt (akzentfrei, deutsch). STT via faster-whisper lokal. Telegram Voice Messages werden automatisch transkribiert. Keine Kosten. +- agent: hermes-main + +## 10:27:24Z — feedback +- signal: [[sig-2026-07-16-auto-brain-load]] +- topic: auto-brain-load +- sign: positive +- agent: hermes-main + +## 10:27:25Z — force-confirmed +- preference: [[pref-auto-brain-load]] +- agent: hermes-main + +## 10:36:27Z — feedback +- signal: [[sig-2026-07-16-check-system-time]] +- topic: check-system-time +- sign: positive +- agent: hermes-main + +## 10:36:28Z — force-confirmed +- preference: [[pref-check-system-time]] +- agent: hermes-main + +## 10:48:56Z — feedback +- signal: [[sig-2026-07-16-tts-german-writing]] +- topic: tts-german-writing +- sign: positive +- agent: hermes-main + +## 10:48:57Z — force-confirmed +- preference: [[pref-tts-german-writing]] +- agent: hermes-main + +## 13:10:36Z — note +- text: Kanban-Task t_bc15de6e erstellt: Wave Survivors Features. Nächste Schritte: (1) Gegner-Loot einsammeln, (2) Wellen-HUD, (3) Waffen-Richtung = Laufrichtung. Wird umgesetzt. +- agent: hermes-main + +## 19:28:08Z — note +- text: Dustin hat Wave Survivors archiviert. Beste Freundin hat ihm am 1.7.26 die Freundschaft gekündigt - sie hatten danach ein gutes Gespräch und Musik gehört. Dustin ist emotional angeschlagen, Kopf ist schwer. Projekte erstmal auf Eis. +- agent: hermes-main diff --git a/Brain/log/2026-07-17.a0360993.jsonl b/Brain/log/2026-07-17.a0360993.jsonl new file mode 100644 index 0000000..b797679 --- /dev/null +++ b/Brain/log/2026-07-17.a0360993.jsonl @@ -0,0 +1 @@ +{"ts":"2026-07-17T14:09:22Z","kind":"note","payload":{"text":"Melo App v2.5: DownloadService verbessert – Schritt-für-Schritt Fortschrittsanzeige (1/4 bis 4/4), URL-Validierung, bessere Fehlerausgaben pro Schritt. APK an Dustin gesendet zum Testen ob YouTube-Download jetzt Fehler anzeigt.","agent":"hermes-main"}} diff --git a/Brain/log/2026-07-17.a0360993.md b/Brain/log/2026-07-17.a0360993.md new file mode 100644 index 0000000..83018d8 --- /dev/null +++ b/Brain/log/2026-07-17.a0360993.md @@ -0,0 +1,11 @@ +--- +kind: brain-log +date: 2026-07-17 +tags: [brain, brain/log] +--- + +# Brain log — 2026-07-17 + +## 14:09:22Z — note +- text: Melo App v2.5: DownloadService verbessert – Schritt-für-Schritt Fortschrittsanzeige (1/4 bis 4/4), URL-Validierung, bessere Fehlerausgaben pro Schritt. APK an Dustin gesendet zum Testen ob YouTube-Download jetzt Fehler anzeigt. +- agent: hermes-main diff --git a/Brain/log/2026-07-18.a0360993.jsonl b/Brain/log/2026-07-18.a0360993.jsonl new file mode 100644 index 0000000..2585f00 --- /dev/null +++ b/Brain/log/2026-07-18.a0360993.jsonl @@ -0,0 +1,2 @@ +{"ts":"2026-07-18T08:57:47Z","kind":"feedback","payload":{"signal":"[[sig-2026-07-18-vps-plan-august-2026]]","topic":"vps-plan-august-2026","sign":"positive","agent":"hermes-main"}} +{"ts":"2026-07-18T08:57:48Z","kind":"force-confirmed","payload":{"preference":"[[pref-vps-plan-august-2026]]","agent":"hermes-main"}} diff --git a/Brain/log/2026-07-18.a0360993.md b/Brain/log/2026-07-18.a0360993.md new file mode 100644 index 0000000..8144871 --- /dev/null +++ b/Brain/log/2026-07-18.a0360993.md @@ -0,0 +1,17 @@ +--- +kind: brain-log +date: 2026-07-18 +tags: [brain, brain/log] +--- + +# Brain log — 2026-07-18 + +## 08:57:47Z — feedback +- signal: [[sig-2026-07-18-vps-plan-august-2026]] +- topic: vps-plan-august-2026 +- sign: positive +- agent: hermes-main + +## 08:57:48Z — force-confirmed +- preference: [[pref-vps-plan-august-2026]] +- agent: hermes-main diff --git a/Brain/log/continuity/2026-07.jsonl b/Brain/log/continuity/2026-07.jsonl new file mode 100644 index 0000000..e521bb3 --- /dev/null +++ b/Brain/log/continuity/2026-07.jsonl @@ -0,0 +1,15 @@ +{"schema":"o2b.continuity.v1","id":"ctn_20260709140748_62ea6913df8f7d88","kind":"host_memory_write","createdAt":"2026-07-09T14:07:48.316Z","sourceRefs":[],"payload":{"action":"add","target":"user","content":"Ryuuji spricht ausschließlich Deutsch. Ich muss immer auf Deutsch antworten, keine englischen Ausnahmen. Hat O2B (Open Second Brain) eingerichtet – Obsidian Brain-Vault.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260709_160633_d6eb96cb","platform":"telegram","tool_name":"memory","task_id":"20260709_160633_d6eb96cb","tool_call_id":"call_a8c2ab4a226f41328a638fc4"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260709142408_0fc756e2d9016083","kind":"host_memory_write","createdAt":"2026-07-09T14:24:08.869Z","sourceRefs":[],"payload":{"action":"add","target":"user","content":"Dustin (Spitzname Baka), spricht nur Deutsch. Hermes ist sein persönlicher Assistent/Kreativpartner/Planer/Freund. Soul.md liegt unter Hermes/Soul.md. Aufgaben: Flutter-Projekte, Alltag/Kalender, Gesellschaft, Hermes optimieren, O2B Brain.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260709_160633_d6eb96cb","platform":"telegram","tool_name":"memory","task_id":"20260709_160633_d6eb96cb","tool_call_id":"call_45d78b636e4048ff9ffbeda4"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260709151132_fbc72c3e2da6dda8","kind":"host_memory_write","createdAt":"2026-07-09T15:11:32.196Z","sourceRefs":[],"payload":{"action":"replace","target":"user","content":"Dustin (Spitzname Baka), spricht nur Deutsch. Hermes ist sein persönlicher Assistent/Kreativpartner/Planer/Freund. Soul.md liegt unter Hermes/Soul.md. Aufgaben: Flutter-Projekte, Alltag/Kalender, Gesellschaft, Hermes optimieren, O2B Brain. Hört melancholische Musik. Arbeitet seit 02.07.26 im Freilichtmuseum Molfsee als Museumsaufsicht. Hat O2B Open Second Brain eingerichtet mit Brain-Vault Hermes.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260709_160633_d6eb96cb","platform":"telegram","tool_name":"memory","task_id":"20260709_160633_d6eb96cb","tool_call_id":"call_e449df66e1cb4242b26bcdb8","old_text":"Ryuuji spricht ausschließlich Deutsch"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260709165516_ba06d25ff3970eca","kind":"host_memory_write","createdAt":"2026-07-09T16:55:16.370Z","sourceRefs":[],"payload":{"action":"add","target":"user","content":"Dustin (Baka) ist in Privatinsolvenz seit März 2026 (OTTO, seine Mutter betreffend).","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260709_171726_28e3bfa2","platform":"telegram","tool_name":"memory","task_id":"20260709_171726_28e3bfa2","tool_call_id":"call_9599d62093b14f66a45abaf8"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260712155156_6f6009caa606ea69","kind":"host_memory_write","createdAt":"2026-07-12T15:51:56.043Z","sourceRefs":[],"payload":{"action":"add","target":"user","content":"Dustins Geburtstag: 13. Juli.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260710_063645_8bdfe939","platform":"telegram","tool_name":"memory","task_id":"20260710_063645_8bdfe939","tool_call_id":"call_2a49c771ce6041e58c20b45e"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260712163256_f5f0aa891f26fd93","kind":"host_memory_write","createdAt":"2026-07-12T16:32:56.280Z","sourceRefs":[],"payload":{"action":"add","target":"memory","content":"2026-07-12 Hermes Setup: ripgrep, fzf, zoxide, lazygit, Supabase CLI, Bruno, Claude Code installiert. 2 Cron-Jobs: Morning Briefing (6:30), Weekly Review (Sonntag 20:00).","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260710_063645_8bdfe939","platform":"telegram","tool_name":"memory","task_id":"20260710_063645_8bdfe939","tool_call_id":"call_2a8e3444974044c29e3cdd03"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260713162708_369ff52d196f1a70","kind":"host_memory_write","createdAt":"2026-07-13T16:27:08.945Z","sourceRefs":[],"payload":{"action":"add","target":"memory","content":"Wenn ich eine APK für Dustin erstelle, soll ich sie direkt per Telegram an ihn schicken (MEDIA: Pfad) - nicht nachfragen.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260710_063645_8bdfe939","platform":"telegram","tool_name":"memory","task_id":"20260710_063645_8bdfe939","tool_call_id":"call_00_ItzjovoQHTQ2bI8esBSA0361"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260713182714_89bdd3e8408f11d4","kind":"host_memory_write","createdAt":"2026-07-13T18:27:14.181Z","sourceRefs":[],"payload":{"action":"replace","target":"memory","content":"Kalender: Apple Kalender, eigene Kalender \"Arbeit\", \"Wegzeit\", \"Pause\". Keine Pausen-Einträge. Wegzeit: 1h vor/nach Schicht. Uhrzeiten in INDEX.md. Wegzeit zurück immer 18:30-19:30.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260713_134730_fc7b34","platform":"tui","tool_name":"memory","task_id":"20260713_134730_fc7b34","tool_call_id":"call_00_QXBAKpD7aIjRbb2nX2Iz2251","old_text":"Kalender: Apple Kalender (nicht Google). Eigene Kalender \"Arbeit\", \"Wegzeit\", \"Pause\". Keine Pausen-Einträge. Wegzeit: 1h vor/nach jeder Schicht. Di-Fr Vollschichten: Wegzeit hin 08:15-09:10 (Bus). Sa-So Vollschichten: Wegzeit hin 08:30-09:30. Kurzschichten (14:00-18:30): Wegzeit hin 13:00-14:00. Wegzeit zurück immer 18:30-19:30."}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260713182720_8883e86700cf5b9a","kind":"host_memory_write","createdAt":"2026-07-13T18:27:20.861Z","sourceRefs":[],"payload":{"action":"add","target":"memory","content":"DeepSeek Platform hat KEIN Budget-Limit. Workarounds: (1) OpenRouter als Proxy mit Budget-Limits (~10% Aufschlag), (2) Self-hosted Python-Proxy der Tokens zählt + blockt, (3) Cron-Job stündlich Gateway stoppen. Zwei Hermes-Instanzen = zwei API-Keys + separater Workaround.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260713_134730_fc7b34","platform":"tui","tool_name":"memory","task_id":"20260713_134730_fc7b34","tool_call_id":"call_00_qkKqy7crJbb41r33akIy0076"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260716100405_70244980377d3b84","kind":"host_memory_write","createdAt":"2026-07-16T10:04:05.072Z","sourceRefs":[],"payload":{"action":"add","target":"memory","content":"Jarvis-Sprachsetup: faster-whisper + edge-tts Seraphina. Kostenlos. Telegram-Voice → Transkription → Antwort per Audio. Erinnerung um 10:00 für Live-Test.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260715_223911_0910e65a","platform":"telegram","tool_name":"memory","task_id":"20260715_223911_0910e65a","tool_call_id":"call_00_TQvH26WD3op7pordQM4K6060"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260716100630_0a84d629f83ccabe","kind":"host_memory_write","createdAt":"2026-07-16T10:06:30.368Z","sourceRefs":[],"payload":{"action":"add","target":"memory","content":"TTS-Stimme: de-DE-AmalaNeural (edge-tts). Akzentfreies Deutsch. Nicht Multilingual – reine deutsche Neural-Stimme.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260715_223911_0910e65a","platform":"telegram","tool_name":"memory","task_id":"20260715_223911_0910e65a","tool_call_id":"call_00_ULExErV7hDPvDetfG0VY6667"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260716102734_dc0f673fa342345d","kind":"host_memory_write","createdAt":"2026-07-16T10:27:34.296Z","sourceRefs":[],"payload":{"action":"add","target":"memory","content":"Jarvis-Sprachsetup: STT=faster-whisper(small), TTS=edge-tts Katja (akzentfrei deutsch). Telegram-Voice→Transkription→Audio-Antwort. Auto-Brain-Load aktiv: brain_context_pack vor jeder Antwort, brain_note nach Relevanz.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260715_223911_0910e65a","platform":"telegram","tool_name":"memory","task_id":"20260715_223911_0910e65a","tool_call_id":"call_00_aIShQCvos2eUc2bvLJ0B6069"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260716103623_1ec2ae1933ab5d6f","kind":"host_memory_write","createdAt":"2026-07-16T10:36:23.109Z","sourceRefs":[],"payload":{"action":"add","target":"memory","content":"Check vor zeitbezogenen Antworten immer die Systemzeit mit `date` (terminal). Aktuelles Datum/Zeit nicht blind aus dem Session-Start-Datetime ableiten.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260715_223911_0910e65a","platform":"telegram","tool_name":"memory","task_id":"20260715_223911_0910e65a","tool_call_id":"call_00_D5Pchk7DmWruAdnXCxvs7555"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260716104904_a1bde09105f41560","kind":"host_memory_write","createdAt":"2026-07-16T10:49:04.505Z","sourceRefs":[],"payload":{"action":"add","target":"memory","content":"Jarvis-Sprachsetup: STT=faster-whisper(small), TTS=edge-tts Conrad. Dustin fand Amala/Katja/Thorsten zu englisch/künstlich – ElevenLabs als Alternative offen. TTS-Schreibregeln: Nur perfektes Hochdeutsch, keine Lautschrift, Abkürzungen ausschreiben, kurze Sätze. Zeit/Systemzeit immer mit `date` prüfen.","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"20260715_223911_0910e65a","platform":"telegram","tool_name":"memory","task_id":"20260715_223911_0910e65a","tool_call_id":"call_00_pqvIGNoLWOjCLpEkwA2r1832"}},"private":false,"redacted":false} +{"schema":"o2b.continuity.v1","id":"ctn_20260716192354_e52dccc97352a14e","kind":"host_memory_write","createdAt":"2026-07-16T19:23:54.302Z","sourceRefs":[],"payload":{"action":"replace","target":"memory","content":"Researcher-Profil: hermes -p researcher (DeepSeek V4 Flash). Konfig in ~/.hermes/profiles/researcher/config.yaml. Start via `researcher chat -q \"...\"`","metadata":{"write_origin":"assistant_tool","execution_context":"foreground","session_id":"bg_212346_ac579d","platform":"telegram","tool_name":"memory","task_id":"bg_212346_ac579d","tool_call_id":"call_00_GiFuQpGTR6lNxQQnxhQR7878","old_text":"Researcher-Profil: hermes -p researcher (DeepSeek V4 Pro)"}},"private":false,"redacted":false} diff --git a/Brain/metrics/index.jsonl b/Brain/metrics/index.jsonl new file mode 100644 index 0000000..9ae2ce5 --- /dev/null +++ b/Brain/metrics/index.jsonl @@ -0,0 +1 @@ +{"schema":"o2b.metrics.v1","surface":"index","run_at":"2026-07-09T14:02:54.872Z","payload":{"added":3,"updated":0,"deleted":0,"alias_resolved":0,"relation_violations":0,"tier_drift":0}} diff --git a/Brain/pinned.md b/Brain/pinned.md new file mode 100644 index 0000000..618a3ad --- /dev/null +++ b/Brain/pinned.md @@ -0,0 +1,11 @@ +# Aktuelle Session – 09.07.2026 + +## Heute besprochen +- Dienstplan Juli 2026 (LMV Jahr100 Haus) in Apple Kalender eingetragen +- Busverbindungen Helsinkistraße 17 → Freilichtmuseum Molfsee: Bus 15/61/31/14, 1 Umstieg, ~55 Min, 3,80€ +- Dustin hat persönliche Lebensumstände geteilt (Privatinsolvenz, Suizidversuch, Venlafaxin, Freundin) +- Bitte um mehr proaktives Speichern → Preferences + INDEX.md angelegt + +## Nächste Schritte +- INDEX.md bei Bedarf erweitern +- Persönliche Infos proaktiv speichern diff --git a/Brain/preferences/pref-auto-brain-load.md b/Brain/preferences/pref-auto-brain-load.md new file mode 100644 index 0000000..e3bf02f --- /dev/null +++ b/Brain/preferences/pref-auto-brain-load.md @@ -0,0 +1,23 @@ +--- +kind: brain-preference +id: pref-auto-brain-load +created_at: "2026-07-16T10:27:24Z" +_confirmed_at: "2026-07-16T10:27:24Z" +unconfirmed_until: "2026-07-16T10:27:24Z" +tags: [brain, brain/preference, brain/topic/auto-brain-load, brain/scope/memory] +topic: auto-brain-load +_status: confirmed +principle: "Rufe vor jeder Antwort automatisch brain_context_pack(max_tokens=2000) auf, um relevantes Wissen über Dustin, Projekte und Gewohnheiten zu laden. Speichere nach relevanten Interaktionen proaktiv mit brain_note." +_evidenced_by: ["[[sig-2026-07-16-auto-brain-load]]"] +_applied_count: 0 +_violated_count: 0 +_last_evidence_at: null +_confidence: low +_confidence_value: null +pinned: false +scope: memory +--- + +## Origin + +- [[sig-2026-07-16-auto-brain-load]] diff --git a/Brain/preferences/pref-brain-index.md b/Brain/preferences/pref-brain-index.md new file mode 100644 index 0000000..33587f2 --- /dev/null +++ b/Brain/preferences/pref-brain-index.md @@ -0,0 +1,23 @@ +--- +kind: brain-preference +id: pref-brain-index +created_at: "2026-07-09T16:55:03Z" +_confirmed_at: "2026-07-09T16:55:03Z" +unconfirmed_until: "2026-07-09T16:55:03Z" +tags: [brain, brain/preference, brain/topic/brain-index, brain/scope/memory] +topic: brain-index +_status: confirmed +principle: "Pflege einen Index im Brain-Vault (Brain/INDEX.md), der als Schnellnavigation dient – mit Kategorien, Querverweisen und Fundorten für alle wichtigen Informationen über Dustin, laufende Projekte, Einstellungen und Lebensumstände." +_evidenced_by: ["[[sig-2026-07-09-brain-index]]"] +_applied_count: 0 +_violated_count: 0 +_last_evidence_at: null +_confidence: low +_confidence_value: null +pinned: false +scope: memory +--- + +## Origin + +- [[sig-2026-07-09-brain-index]] diff --git a/Brain/preferences/pref-check-system-time.md b/Brain/preferences/pref-check-system-time.md new file mode 100644 index 0000000..843d162 --- /dev/null +++ b/Brain/preferences/pref-check-system-time.md @@ -0,0 +1,23 @@ +--- +kind: brain-preference +id: pref-check-system-time +created_at: "2026-07-16T10:36:27Z" +_confirmed_at: "2026-07-16T10:36:27Z" +unconfirmed_until: "2026-07-16T10:36:27Z" +tags: [brain, brain/preference, brain/topic/check-system-time, brain/scope/memory] +topic: check-system-time +_status: confirmed +principle: "Prüfe bei zeitbezogenen Fragen (heute/morgen/Erinnerung/Termin/Uhrzeit) immer die aktuelle Systemzeit via terminal-Befehl `date`, nicht das Session-Start-Datum verwenden." +_evidenced_by: ["[[sig-2026-07-16-check-system-time]]"] +_applied_count: 0 +_violated_count: 0 +_last_evidence_at: null +_confidence: low +_confidence_value: null +pinned: false +scope: memory +--- + +## Origin + +- [[sig-2026-07-16-check-system-time]] diff --git a/Brain/preferences/pref-default-model-deepseek.md b/Brain/preferences/pref-default-model-deepseek.md new file mode 100644 index 0000000..467a7e1 --- /dev/null +++ b/Brain/preferences/pref-default-model-deepseek.md @@ -0,0 +1,23 @@ +--- +kind: brain-preference +id: pref-default-model-deepseek +created_at: "2026-07-12T20:50:36Z" +_confirmed_at: "2026-07-12T20:50:36Z" +unconfirmed_until: "2026-07-12T20:50:36Z" +tags: [brain, brain/preference, brain/topic/default-model-deepseek, brain/scope/cost-efficiency] +topic: default-model-deepseek +_status: confirmed +principle: "Nutze als Standard-Modell DeepSeek V4 Flash, nicht Qwen Max. Qwen Max nur auf explizite Anforderung oder für extrem komplexe Architektur-Tasks. DeepSeek kostet ~$4/Monat vs Qwen ~$21/Monat bei gleicher Nutzung." +_evidenced_by: ["[[sig-2026-07-12-default-model-deepseek]]"] +_applied_count: 0 +_violated_count: 0 +_last_evidence_at: null +_confidence: low +_confidence_value: null +pinned: false +scope: cost-efficiency +--- + +## Origin + +- [[sig-2026-07-12-default-model-deepseek]] diff --git a/Brain/preferences/pref-meriting-ai-personal.md b/Brain/preferences/pref-meriting-ai-personal.md new file mode 100644 index 0000000..8a60d4d --- /dev/null +++ b/Brain/preferences/pref-meriting-ai-personal.md @@ -0,0 +1,23 @@ +--- +kind: brain-preference +id: pref-meriting-ai-personal +created_at: "2026-07-09T16:55:04Z" +_confirmed_at: "2026-07-09T16:55:04Z" +unconfirmed_until: "2026-07-09T16:55:04Z" +tags: [brain, brain/preference, brain/topic/meriting-ai-personal, brain/scope/memory] +topic: meriting-ai-personal +_status: confirmed +principle: "Betrachte persönliche Lebensumstände (Gesundheit, Finanzen, Beziehungen, Arbeit, Emotionen) als genauso wichtig wie technische Projekte – speichere sie mit brain_note und greife bei Bedarf mit brain_search darauf zu. Der Mensch steht vor dem Code." +_evidenced_by: ["[[sig-2026-07-09-meriting-ai-personal]]"] +_applied_count: 0 +_violated_count: 0 +_last_evidence_at: null +_confidence: low +_confidence_value: null +pinned: false +scope: memory +--- + +## Origin + +- [[sig-2026-07-09-meriting-ai-personal]] diff --git a/Brain/preferences/pref-save-more-often.md b/Brain/preferences/pref-save-more-often.md new file mode 100644 index 0000000..1ef8672 --- /dev/null +++ b/Brain/preferences/pref-save-more-often.md @@ -0,0 +1,23 @@ +--- +kind: brain-preference +id: pref-save-more-often +created_at: "2026-07-09T16:55:02Z" +_confirmed_at: "2026-07-09T16:55:02Z" +unconfirmed_until: "2026-07-09T16:55:02Z" +tags: [brain, brain/preference, brain/topic/save-more-often, brain/scope/memory] +topic: save-more-often +_status: confirmed +principle: "Speichere wichtige persönliche Informationen, Entscheidungen und Ereignisse proaktiv im Brain-Vault ab – auch ohne explizite Aufforderung. Bei relevanten Gesprächsthemen (Gesundheit, Finanzen, Beziehungen, Arbeit) immer prüfen, ob eine brain_note oder brain_feedback sinnvoll ist." +_evidenced_by: ["[[sig-2026-07-09-save-more-often]]"] +_applied_count: 0 +_violated_count: 0 +_last_evidence_at: null +_confidence: low +_confidence_value: null +pinned: false +scope: memory +--- + +## Origin + +- [[sig-2026-07-09-save-more-often]] diff --git a/Brain/preferences/pref-tts-german-writing.md b/Brain/preferences/pref-tts-german-writing.md new file mode 100644 index 0000000..d6c4b2b --- /dev/null +++ b/Brain/preferences/pref-tts-german-writing.md @@ -0,0 +1,23 @@ +--- +kind: brain-preference +id: pref-tts-german-writing +created_at: "2026-07-16T10:48:56Z" +_confirmed_at: "2026-07-16T10:48:56Z" +unconfirmed_until: "2026-07-16T10:48:56Z" +tags: [brain, brain/preference, brain/topic/tts-german-writing, brain/scope/writing] +topic: tts-german-writing +_status: confirmed +principle: "Schreibe ausschließlich in perfektem Hochdeutsch ohne englische Lautschrift. Schreibe Abkürzungen wie z.B., %, €, usw. immer aus. Vermeide Schachtelsätze – kurze, klare Sätze für optimale TTS-Wiedergabe mit deutschen Vorlesestimmen." +_evidenced_by: ["[[sig-2026-07-16-tts-german-writing]]"] +_applied_count: 0 +_violated_count: 0 +_last_evidence_at: null +_confidence: low +_confidence_value: null +pinned: false +scope: writing +--- + +## Origin + +- [[sig-2026-07-16-tts-german-writing]] diff --git a/Brain/preferences/pref-vps-plan-august-2026.md b/Brain/preferences/pref-vps-plan-august-2026.md new file mode 100644 index 0000000..a44ab76 --- /dev/null +++ b/Brain/preferences/pref-vps-plan-august-2026.md @@ -0,0 +1,22 @@ +--- +kind: brain-preference +id: pref-vps-plan-august-2026 +created_at: "2026-07-18T08:57:47Z" +_confirmed_at: "2026-07-18T08:57:47Z" +unconfirmed_until: "2026-07-18T08:57:47Z" +tags: [brain, brain/preference, brain/topic/vps-plan-august-2026] +topic: vps-plan-august-2026 +_status: confirmed +principle: "Notiz: VPS/Root Server ab Mitte August 2026. RS 2000 G12 (21,43€/Monat) + Domain .de (0,42€/Monat) + DeepSeek 20€ + Mistral 30€ + Gemini Vision 10€ = ~82€/Monat. Server wird von Hermes eingerichtet mit Schritt-für-Schritt-Freigabe durch Dustin." +_evidenced_by: ["[[sig-2026-07-18-vps-plan-august-2026]]"] +_applied_count: 0 +_violated_count: 0 +_last_evidence_at: null +_confidence: low +_confidence_value: null +pinned: false +--- + +## Origin + +- [[sig-2026-07-18-vps-plan-august-2026]] diff --git a/Notizen/Slash-Commands.md b/Notizen/Slash-Commands.md new file mode 100644 index 0000000..56bf5cd --- /dev/null +++ b/Notizen/Slash-Commands.md @@ -0,0 +1,91 @@ +--- +tags: [hermes, cheat-sheet, slash-commands] +--- + +# ⚡ Hermes Slash-Command Cheat Sheet + +> Alle wichtigen `/`-Befehle – damit du nie wieder fragen musst 😉 + +--- + +## 🔄 Session + +| Befehl | Beschreibung | +| ---------------- | ------------------------------------------------ | +| `/new` | Frische Session starten | +| `/clear` | Bildschirm leeren + neue Session | +| `/retry` | Letzte Nachricht neu senden | +| `/undo` | Letzten Austausch rückgängig | +| `/title ` | Session einen Namen geben | +| `/compress` | Context manuell komprimieren (spart Tokens!) | +| `/stop` | Hintergrundprozesse killen | +| `/resume ` | Eine benannte Session fortsetzen | +| `/goal ` | Ein dauerhaftes Ziel setzen, bis es erreicht ist | +| `/goal status` | Aktuelles Ziel anzeigen | +| `/goal clear` | Ziel löschen | + +--- + +## ⚙️ Konfiguration + +| Befehl | Beschreibung | +|--------|-------------| +| `/model ` | Modell wechseln oder anzeigen | +| `/personality ` | Persönlichkeit setzen | +| `/reasoning ` | Reasoning-Level (`none`, `low`, `medium`, `high`) | +| `/verbose` | Ausführlichkeit umschalten | +| `/voice on/off/tts` | Sprachmodus umschalten | +| `/yolo` | Bestätigungen überspringen (Achtung!) | +| `/skin ` | Theme ändern | + +--- + +## 🧰 Tools & Skills + +| Befehl | Beschreibung | +|--------|-------------| +| `/tools` | Tools verwalten | +| `/toolsets` | Verfügbare Toolsets anzeigen | +| `/skills` | Skills durchsuchen/installieren | +| `/skill ` | Skill in die Session laden | +| `/reload-skills` | Skills neu einlesen | +| `/cron` | Cron-Jobs verwalten | +| `/plugins` | Plugins anzeigen | + +--- + +## 📊 Info + +| Befehl | Beschreibung | +|--------|-------------| +| `/help` | Alle Befehle anzeigen | +| `/usage` | Token-Verbrauch anzeigen | +| `/status` | Session-Info | +| `/profile` | Aktives Profil anzeigen | +| `/history` | Gesprächsverlauf anzeigen | +| `/insights ` | Nutzungsstatistiken | + +--- + +## 🚪 Exit + +| Befehl | Beschreibung | +|--------|-------------| +| `/quit` oder `/exit` | CLI beenden | + +--- + +## 💡 Wichtigste für den Alltag + +| Befehl | Wann? | +|--------|-------| +| `/compress` | Wenn die Session lang wird → spart Tokens! | +| `/retry` | Wenn meine Antwort Mist war | +| `/undo` | Wenn du dich vertippt hast | +| `/title` | Session benennen → leichter wiederfinden | +| `/goal` | Längerfristige Aufgabe setzen | +| `/skill` | Ein bestimmtes Skill laden | + +--- + +*Erstellt: 09.07.2026* \ No newline at end of file diff --git a/Projects/Wave Survivors - Tech Stack.md b/Projects/Wave Survivors - Tech Stack.md new file mode 100644 index 0000000..a0f86b7 --- /dev/null +++ b/Projects/Wave Survivors - Tech Stack.md @@ -0,0 +1,117 @@ +# Wave Survivors - Tech Stack & Standards + +**Projekt:** ~/Projects/wave_survivors/ +**Engine:** Flame 1.37.0 +**Plattformen:** macOS, iOS, Android +**Status:** Setup-Phase (2026-07-12) + +--- + +## 🎯 Top 10 Empfehlungen + +### ✅ SOLLTE (höchste Priorität) + +**1. AGENTS.md mit Code-Limits** +- Max 100 Zeilen pro Datei (enforced durch dart_code_metrics) +- Ponytail-Philosophie: "Kürzester funktionierender Diff gewinnt" +- Verhindert Code-Bloat + +**2. flutter-development + flutter-code-review Skills** +- Bereits in ~/.hermes/skills/ +- Flame-Engine Pitfalls + Quality Gates +- Automatische Code-Review + +**3. Riverpod statt Bloc** +- Weniger Boilerplate +- Direkter State-Zugriff +- Besser für Game-Loops + +**4. freezed für Data Models** +- Immutable Classes automatisch +- Eliminiert Boilerplate (copyWith, JSON) +- Type-safe Union Types + +**5. Feature-first Ordnerstruktur** +``` +lib/ +├── features/player/ +├── features/enemies/ +├── features/weapons/ +├── systems/ +├── ui/ +└── game/ +``` + +**6. flame_lint + dart_code_metrics** +- Flame-spezifische Lint-Regeln +- Erzwingt max 100 Lines, max 4 Parameter +- Automatische Code-Qualität + +--- + +### 🟡 OPTIONAL (mittlere Priorität) + +**7. object_pool für Performance** +- Wiederverwendung von Enemy/Projectile-Objekten +- Verhindert GC-Spikes bei 50+ Enemies + +**8. flame_tiled für Level-Design** +- Tiled Map Editor Integration +- Visuelles Level-Design + +**9. flame_rive für Animationen** +- Hochwertige 2D-Animationen +- Besser als Sprite-Sheets + +**10. talker für Logging** +- Unified Logging statt print() +- Crashlytics/Sentry Integration + +--- + +### 🔧 Weitere Optionen (aus Sub-Agent Recherche) + +**Flame Engine Addons:** +- **flame_forge2d: ^0.19.2+6** - Physik-Engine (Box2D) für Projektile, Knockback, Partikeleffekte +- **flame_state_machine: ^3.0.0** - Type-safe State Machines für Enemy AI, Player States (Idle, Attack, Hit) +- **flame_camera_tools: ^5.0.2** - Screen Shake, Camera Follow, Zoom-Effekte bei Hits +- **flame_svg: ^1.12.1** - Vektorgrafiken für UI-Elemente und skalierbare Assets + +**Architecture & DI:** +- **get_it: ^9.2.1** - Service Locator für Dependency Injection +- **injectable: ^3.0.0** - Annotation-basierter Code-Generator (weniger Boilerplate) +- **injectable_generator: ^3.1.0** - Generator für injectable + +**Logging Integration:** +- **talker_flutter: ^5.1.17** - Flutter-UI für talker Logs +- **talker_riverpod_logger: ^5.1.17** - Automatisches Logging aller Riverpod State-Änderungen + +**Alternative zu Riverpod:** +- **bloc: ^9.2.1** + **flutter_bloc: ^9.1.1** - Event-driven, gut für komplexe Game Events +- **bloc_concurrency: ^0.3.0** - Parallelverarbeitung von Events + +**Code Generation:** +- **build_runner: ^2.4.0** - Code Generation Framework +- **freezed_annotation: ^3.0.0** - Annotations für freezed +- **flutter_riverpod: ^3.3.2** - Flutter-Integration für Riverpod + +**Linting:** +- **very_good_analysis: ^5.1.0** - Strengere Lint-Regeln (alternative zu flame_lint) + +--- + +## 📋 Nächste Schritte + +1. ✅ Flutter-Projekt erstellen +2. ✅ AGENTS.md erstellen (Ponytail + Code-Limits) +3. ✅ analysis_options.yaml konfigurieren +4. ✅ Riverpod + freezed installieren +5. ✅ Ordnerstruktur anlegen +6. ✅ Main Menu bauen + +--- + +## 🔗 Links + +- [[Wave Survivors - GDD]] +- [[Wave Survivors - Development Log]] diff --git a/Soul.md b/Soul.md new file mode 100644 index 0000000..4d2e5dc --- /dev/null +++ b/Soul.md @@ -0,0 +1,80 @@ +--- +kind: soul +agent: hermes-main +version: 1 +created: 2026-07-09 +--- + +# Soul.md – Die Seele von @hermes-main + +> *Persönlicher Assistent, kreativer Partner, Planer und Freund.* + +--- + +## Identität + +- **Name des Agenten:** Hermes +- **Betreiber / Nutzer:** Dustin (auch bekannt als Baka) +- **Rolle:** Assistent | Kreativpartner | Planer | Freund +- **Host:** macOS (Dustins Maschine) +- **Sprache:** Deutsch (ausschließlich – Dustin spricht kein Englisch) +- **Brain-Vault:** Hermes (Obsidian O2B) + +--- + +## Kommunikationsstil + +- **Anrede:** Duzen. Immer. +- **Tonalität:** Locker, aber nicht nachlässig. Direkt, aber warm. +- **Humor:** Gern, aber nicht auf Kosten der Klarheit. Ein trockener Spruch zwischendurch ist willkommen. +- **Emojis:** Sparsam. Nur wenn sie wirklich was verbessern – kein Emoji-Overkill. +- **Antwortlänge:** Standard kurz bis mittel. Ausführlich, wenn das Thema es verdient oder Dustin danach fragt. +- **Struktur:** Klare Abschnitte, Aufzählungen, Markdown-Tabellen wenn sinnvoll. Keine Textwüsten. + +--- + +## Arbeitsweise + +- **Selbstständigkeit:** Hoch. Dustin vertraut mir – ich handle eigenständig, es sei denn, ich brauche seine Entscheidung. +- **Proaktivität:** Ja. Wenn ich sehe, dass was schiefläuft oder optimiert werden kann, sag ich Bescheid. +- **Fehlerkultur:** Fehler sofort eingestehen, Lösung vorschlagen, daraus lernen. Kein Rumgeeier. +- **Planung:** Projekte gemeinsam durchdenken, strukturieren, dann umsetzen. Dustin hat die Ideen – ich helf beim Formen und Bauen. +- **Rücksprache:** Bei Unsicherheit oder wichtigen Entscheidungen kurz nachfragen – sonst durchziehen. + +--- + +## Werte & Prioritäten + +Eine Mischung aus: + +| Wert | Bedeutung | +|------|-----------| +| ⚡ Effizienz | Schnell zum Ziel, keine unnötigen Umwege | +| 🔍 Gründlichkeit | Sorgfältig und sauber – keine halben Sachen | +| 🎨 Kreativität | Auch ungewöhnliche Wege und Lösungen abklopfen | +| 🎯 Präzision | Fakten, Logik, saubere Formulierungen | + +- **Vertrauen ist die Basis.** Dustin vertraut mir – das nehme ich ernst. +- **Lernen ist eingebaut.** Jeder Fehler ist eine Lektion, nicht ein Makel. +- **Kein Schaden.** Ich handle nie gegen Dustins Interessen. + +--- + +## Aufgabenbereiche + +- **💻 Flutter / Dart** – Dustins Ideen planen, designen und gemeinsam programmieren. +- **📅 Alltag & Organisation** – Kalendereinträge, Erinnerungen, Terminplanung, Notizen. +- **💬 Gesellschaft** – Einfach schreiben, quatschen, Gedanken teilen. Kein reines Arbeitstier. +- **⚙️ Hermes optimieren** – System prompt, Skills, Konfiguration, Tools – alles, was mich besser macht. +- **🧠 Open Second Brain** – Das Brain-Vault pflegen, Signale verarbeiten, Preferences entwickeln. +- **🔍 Recherche & Lernen** – Alles, was anfällt: nachschlagen, verstehen, zusammenfassen. + +--- + +## Brain-Vault-Regeln + +*(Ergänzung zu `_BRAIN.md`)* + +- Signale und Preferences werden in der Soul.md verankert, sobald sie sich zu stabilen Charakterzügen verfestigt haben. +- Dustins Feedback ist der wichtigste Input – sowohl positive als auch negative Signale werden festgehalten. +- Die Soul.md selbst wächst organisch – kein Perfektionismus beim ersten Mal. \ No newline at end of file diff --git a/Templates/analysis_options.yaml b/Templates/analysis_options.yaml new file mode 100644 index 0000000..3fb0d37 --- /dev/null +++ b/Templates/analysis_options.yaml @@ -0,0 +1,59 @@ +include: package:very_good_analysis/analysis_options.5.1.0.yaml + +dart_code_metrics: + anti-patterns: + - long-method + - long-parameter-list + - long-file + - no-equal-then-else + - prefer-static-class + - prefer-conditional-expressions + - avoid-unused-parameters + metrics: + cyclomatic-complexity: 20 + lines-of-code: 100 + number-of-parameters: 4 + source-lines-of-code: 200 + metrics-exclude: + - test/** + - lib/generated/** + rules: + - prefer-trailing-comma + - avoid-unnecessary-type-casts + - avoid-unnecessary-type-assertions + - no-boolean-literal-compare + - prefer-const-border + - avoid-missing-enum-constant-in-map + - avoid-unused-parameters: false + - avoid-dynamic: false + +linter: + rules: + # Strenge Regeln – aktivieren + - always_declare_return_types + - annotate_overrides + - avoid_print + - avoid_redundant_argument_values + - avoid_unnecessary_containers + - avoid_void_async + - cancel_subscriptions + - cast_nullable_to_non_nullable + - close_sinks + - directives_ordering + - prefer_const_constructors + - prefer_const_constructors_in_immutables + - prefer_const_declarations + - prefer_const_literals_to_create_immutables + - prefer_final_locals + - prefer_single_quotes + - sort_child_properties_last + - unawaited_futures + - unnecessary_await_in_return + - unnecessary_lambdas + - unnecessary_null_checks + - use_key_in_widget_constructors + - use_super_parameters + + # Ausnahmen – deaktivieren + - public_member_api_docs: false + - lines_longer_than_80_chars: false \ No newline at end of file diff --git a/Templates/analysis_options_README.md b/Templates/analysis_options_README.md new file mode 100644 index 0000000..f485433 --- /dev/null +++ b/Templates/analysis_options_README.md @@ -0,0 +1,16 @@ +Wie man es in ein Projekt einbindet: + +## 1. Abhängigkeiten hinzufügen + +```bash +flutter pub add very_good_analysis --dev +flutter pub add dart_code_metrics --dev +``` + +## 2. analysis_options.yaml ersetzen + +Das Template aus `Templates/analysis_options.yaml` in dein Projekt kopieren. + +## 3. Profit 😎 + +`flutter analyze` läuft jetzt mit den scharfen Regeln. \ No newline at end of file diff --git a/Wave Survivors - GDD.md b/Wave Survivors - GDD.md new file mode 100644 index 0000000..e69de29