Deep dive · documentație tehnică

Procesul complet, fără magie

Pagina vizuală îți dă forma. Asta îți dă substanța: ce fișier face ce, când se rulează, în ce tabelă scrie și pe ce tehnologie stă. Fără parole sau credențiale — doar arhitectura.

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 în pending_observations din 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 Postgres memory.raw_observations, idempotent.
De ce buffer SQLite întâi? Ca să nu lovești Postgres la fiecare tool-use și să ții hook-ul sub 50ms. Postgres primește batch-uri la 10 min.

2 · Procesarea nocturnă

Masterul e nightly_processor.py, rulat de launchd la 03:30 (com.elevarts.claude-memory-nightly). Pipeline:

  1. Flush — cheamă flush_buffer ca să fie tot în Postgres.
  2. Grupare — observațiile pe sesiune, pe chunk-uri de proximitate temporală (max 20 obs / chunk, gap 60s).
  3. Compresiegemma3 via Ollama extrage: summary (2–3 fraze), tags, importance (0–1), key_facts. Prag minim importanță 0.3.
  4. Embeddingnomic-embed-text (768-dim) → pgvector.
  5. Dedupe — cosine vs ultimele ~50 memorii din proiect; > 0.95 → skip.
  6. Insertmemory.processed_memories (raw_ids[], summary, embedding, tags, importance, project_path).
  7. 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:

RolComponentăCândCe face
Decizieopus-autonomous-agent.py01:30Triază incidente + skills Hermes + recs Ruflo + service health → create_task / dismiss → loghează în ops.autonomous_decisions.
Execuțienightly-autopilot.sh00:00–05:00Rulează taskurile pending eligibile prin run-claude-task.sh.
Verificareself-review-task.shdupă fiecare doneRe-verifică independent; prinde „marcat done dar nu merge".
Verificarecross-validate-tasks.shsăptămânalRe-verifică un eșantion de taskuri din ultimele 30 zile.
Senzorimaestro-sensors.shorar (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

ScoutSursăCândUnde scrie
stack_updates_scout.pyGitHub releases23:00processed_memories + dashboards.suggestions
research_scout.pyHacker News (Algolia)23:30processed_memories (tag research-scout)
anthropic_updates_scout.pyanthropic.com news/eng/research~23:35processed_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.shblochează înainte de execuție: scriere pe căi de credentials / team-secrets / chei SSH / .env, drop de volume Docker, DROP DATABASE, rm -rf pe home/root, unload de servicii critice. Permite git push simplu (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)

SchemaTabele cheieRol
memoryraw_observations, processed_memories, decisions, bugfixesMemoria semantică (vector + tsvector)
hermessession_events, extracted_skills, recommendationsExtracție skills + învățare
rufloobservations, recommendationsDetecție tipare din 5 surse
opsincidents, autonomous_decisions, changes, snapshotsIntelligence operațional
apptasks, task_runs, clients, quotes, invoices, catalog_servicesInternal-app (CRM, taskuri)
dashboardswork_reports, suggestions, employeesPontaj & raportare
flowisechat_logsLogging chatboți RAG
vaultdocuments, credentialsKnowledge 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 proiectContext 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/documenteFlowise RAG (chatbot servicii)
Spargi o idee mare în plan executabil/ceo-debatewriting-plans
Creezi task de la telefonTelegram bot (text sau voce)
Vezi starea business-ului / Brain-uluiinternal-app → /mission-control
Vrei să mergi înapoi la harta vizuală?Overview  ·  Vrei skill-ul CEO Debate?pagina dedicată