1 · Captura memoriei
Fiecare sesiune Claude Code emite evenimente la fiecare tool-use. Un hook le prinde și le scrie într-un buffer local rapid, fără să încetinească sesiunea.
capture.py— hook pe ToolUse (trebuie <50ms). Ignoră tool-urile zgomotoase (Read, Glob, LS…). Scrie înpending_observationsdin SQLite (~/.claude/memory/buffer.db): session_id, timestamp, tool_name, content (max 2000 ch), project_path.flush_buffer.py— launchd la fiecare 10 minute (com.elevarts.claude-memory-flush). Mută observațiile din SQLite în Postgresmemory.raw_observations, idempotent.
2 · Procesarea nocturnă
Masterul e nightly_processor.py, rulat de launchd la 03:30 (com.elevarts.claude-memory-nightly). Pipeline:
- Flush — cheamă flush_buffer ca să fie tot în Postgres.
- Grupare — observațiile pe sesiune, pe chunk-uri de proximitate temporală (max 20 obs / chunk, gap 60s).
- Compresie —
gemma3via Ollama extrage: summary (2–3 fraze), tags, importance (0–1), key_facts. Prag minim importanță 0.3. - Embedding —
nomic-embed-text(768-dim) → pgvector. - Dedupe — cosine vs ultimele ~50 memorii din proiect; > 0.95 → skip.
- Insert —
memory.processed_memories(raw_ids[], summary, embedding, tags, importance, project_path). - Obsidian — dacă importanță ≥ 0.5, scrie notă markdown în
40-MEMORY/auto/YYYY-MM-DD/cu frontmatter + tags ca wiki-links.
# config: ~/.claude/memory/config.yaml (valori, fără secrete) thresholds: importance_min: 0.3 # sub asta, observația se aruncă obsidian_importance_min: 0.5 # peste asta, devine notă Obsidian dedupe_similarity: 0.95 # cosine; mai sus = duplicat injection_similarity: 0.65 # prag pentru recall la SessionStart injection_top_k: 8 # câte memorii injectează
3 · Recall & injecție de context
context_injector.py rulează pe hook-ul SessionStart. Embedează semnalul proiectului, caută în processed_memories prin similaritate vectorială (embedding <=> query), ia top-8 cu similaritate ≥ 0.65 și le prepend-uiește ca „Relevant Past Context". Tu nu faci nimic — apare singur.
Pentru recall manual / țintit: skill elevarts-memory-recall face hybrid search (vector + tsvector) peste memory.decisions, memory.bugfixes, memory.processed_memories. Bun când vrei „ce am decis despre X" sau „am mai văzut bug-ul ăsta".
4 · Orchestrare — Maestro / Hermes / Ruflo
Maestro e numele-umbrelă (nu un script nou) pentru bucla autonomă self-improving. Trei funcții:
| Rol | Componentă | Când | Ce face |
|---|---|---|---|
| Decizie | opus-autonomous-agent.py | 01:30 | Triază incidente + skills Hermes + recs Ruflo + service health → create_task / dismiss → loghează în ops.autonomous_decisions. |
| Execuție | nightly-autopilot.sh | 00:00–05:00 | Rulează taskurile pending eligibile prin run-claude-task.sh. |
| Verificare | self-review-task.sh | după fiecare done | Re-verifică independent; prinde „marcat done dar nu merge". |
| Verificare | cross-validate-tasks.sh | săptămânal | Re-verifică un eșantion de taskuri din ultimele 30 zile. |
| Senzori | maestro-sensors.sh | orar (min :17) | Materializează cron-failures în ops.incidents (excl. heartbeat / git_autosync). |
Hermes (workflow n8n nocturn) comprimă conversațiile și extrage skills candidate. Ruflo observă din 5 surse, detectează tipare și propune recomandări (workflow_fix, team_insight, faq_candidate, optimization). Maestro arbitrează între ele. Tot e vizibil în Mission Control (/mission-control, tab Brain).
5 · Telegram & ingest de taskuri
telegram-listener.py— rulează continuu (launchd KeepAlive). Long-poll, transcriere voce (whisper.cpp), creare task din text/voce cu confirmare, butoane inline pentru deblocaj, detecție URL Instagram → rutează la skill. Alerte critice pe chat-ul lui George.task-extractor.py— hook Stop. Extrage taskuri acționabile din conversație (llama3.2) și le trimite la endpoint-ul de ingest al internal-app. Categorii: infra, n8n, bug, app, research, video, project.
6 · Scouts — radarul autonom
| Scout | Sursă | Când | Unde scrie |
|---|---|---|---|
stack_updates_scout.py | GitHub releases | 23:00 | processed_memories + dashboards.suggestions |
research_scout.py | Hacker News (Algolia) | 23:30 | processed_memories (tag research-scout) |
anthropic_updates_scout.py | anthropic.com news/eng/research | ~23:35 | processed_memories + suggestions |
Toate triază cu Claude Haiku (via LiteLLM), vectorizează cu nomic-embed-text și deduplică vs ultimele 30 zile. Domenii monitorizate: AI-agents, web-dev, video/remotion, psych/iboga.
7 · RAG, Graph & Obsidian
Flowise (RAG)
Chatboți cu retrieval pe vectorstore, intern + extern, plus catalogul de servicii vectorizat. Logging în flowise.chat_logs (cu view top_questions_weekly). Port 3001.
graphify (knowledge graph)
Skill care transformă orice input — cod, docs, paper, imagine, video — în graph navigabil cu community detection, audit trail și export GraphRAG-ready (graph.json / .html / .svg / .graphml + Cypher pentru Neo4j). Output în graphify-out/. Generat deja pentru: scripturile din ~/.local/bin, sistemul de memorie, procesele de business și codebase-ul internal-app. Trigger: /graphify.
Obsidian Vault
Rădăcină: ~/Documents/Elevarts Brain/20-MEMORY/obsidian-vault/. Structură: 40-MEMORY/auto/ (note auto din nightly), 40-DAILY-REPORTS/, 30-RESEARCH/, 30-people/, 50-projects/, 60-graphify/.
8 · Hooks & guardrails
Trăiesc în /opt/elevarts/claude-pack/hooks/ (partajat în echipă, sync din GitHub la SessionStart).
SessionStart-sync.sh— pull claude-pack la start (non-blocking, 5s timeout).pretooluse-guardrails.sh— blochează înainte de execuție: scriere pe căi de credentials / team-secrets / chei SSH / .env, drop de volume Docker,DROP DATABASE,rm -rfpe home/root, unload de servicii critice. Permitegit pushsimplu (blochează doar--force).telegram-inbox-inject.py— injectează mesaje Telegram pending ca context (UserPromptSubmit).inject-nightly-report.py— injectează raportul autopilot la SessionStart, apoi îl arhivează.
9 · Scheme DB (Postgres elevarts)
| Schema | Tabele cheie | Rol |
|---|---|---|
memory | raw_observations, processed_memories, decisions, bugfixes | Memoria semantică (vector + tsvector) |
hermes | session_events, extracted_skills, recommendations | Extracție skills + învățare |
ruflo | observations, recommendations | Detecție tipare din 5 surse |
ops | incidents, autonomous_decisions, changes, snapshots | Intelligence operațional |
app | tasks, task_runs, clients, quotes, invoices, catalog_services | Internal-app (CRM, taskuri) |
dashboards | work_reports, suggestions, employees | Pontaj & raportare |
flowise | chat_logs | Logging chatboți RAG |
vault | documents, credentials | Knowledge base vectorizat |
n8n | (gestionat de n8n) | Workflow-uri & execuții |
10 · Modele & routing
- Ollama (local, :11434):
gemma3/hermes3:8b(compresie),nomic-embed-text(embeddings 768-dim),llama3.2(extracție taskuri). - LiteLLM (:4000): router unificat — rutează spre Ollama sau API-uri Claude/OpenAI. Folosit de scouts pentru triaj Haiku.
- Claude (via Max OAuth): Opus pentru plan / architect / review / decizie autonomă, Sonnet pentru heavy-lifting delegat, Haiku pentru triaj cost-optim. Caching pe partea statică reduce costul.
11 · Cum & când accesezi — cheat-sheet
| Vrei să… | Folosește |
|---|---|
| Continui de unde ai rămas pe un proiect | Context se injectează automat la SessionStart · sau skill elevarts-context-load |
| Afli „ce am decis despre X / am mai văzut bug-ul ăsta" | skill elevarts-memory-recall (hybrid search) |
| Înțelegi un codebase / domeniu fără să-l citești tot | /graphify |
| Răspuns pentru un client din catalog/documente | Flowise RAG (chatbot servicii) |
| Spargi o idee mare în plan executabil | /ceo-debate → writing-plans |
| Creezi task de la telefon | Telegram bot (text sau voce) |
| Vezi starea business-ului / Brain-ului | internal-app → /mission-control |