Spark — pune-i lui Wednesday o sarcină pe care o duce singură 24/7

Categorie: skill · Unde merge: Claude Code · Telegram (prin Hermes) · daemon-ul rulează non-stop pe Mac Sursă: .claude/skills/spark · runner _infra/scripts/spark-runner.py · CLI _infra/scripts/spark-task.py


Ce e, pe scurt

Versiunea lui Wednesday pentru Gemini Spark (Google I/O 2026). Îi dai o sarcină în limbaj normal — care se repetă, e programată, sau se declanșează la un eveniment — și ea o rulează 24/7 în fundal, te întreabă înainte să facă ceva ireversibil, și îți trimite rezultatul pe Telegram. „Pui și uiți.”

Rulează pe Grok/Gemini (ieftin, rapid — niciodată pe Claude pentru muncă de fundal), exact ca Spark-ul Google care merge pe Gemini 3.5 Flash.


Cele 3 concepte (la fel ca la Spark)

ConceptCe eExemplu
Tasktreaba propriu-zisă (poate avea mai mulți pași)„adună notițele din ședință → Doc → draft de email”
Skillo acțiune învățată o dată, refolosită mereu„citește-mi ultimele 50 de emailuri → fă-mi un ghid de stil → salvează-l ca skill ghostwriter
Scheduledeclanșatorul: timp sau eveniment„în fiecare luni la 9:00” / „când primesc un email despre X”

Un job Spark = (declanșator) → (sarcină) → (te întreabă la pașii periculoși) → (îți livrează rezultatul).


Cum îi ceri (2 căi)

A. Vorbit natural — cu Wednesday (în Claude Code SAU pe Telegram)

Spui ce vrei și ea îl înregistrează singură:

„Wednesday, în fiecare luni la 9 dimineața scanează-mi inbox-ul, fă-mi un rezumat al săptămânii și o listă de priorități, și blochează-mi timp de deep-work în calendar.” „Când îmi vine un email despre fotografie, extrage clientul și data și loghează-l în sheet-ul Client Tracker.”

B. Direct din terminal (CLI)

python3 ~/Nevermore/_infra/scripts/spark-task.py add "<titlu>" <trigger> --task "<ce să facă, în limbaj normal>"
python3 ~/Nevermore/_infra/scripts/spark-task.py list

Tipurile de declanșator — cu exemplu pentru fiecare

# ZILNIC la o oră
spark-task.py add "Rezumat zilnic" --daily 09:00 \
  --task "Scanează inbox-ul, dă-mi cele mai importante 5 lucruri și o listă de to-do prioritizată"
 
# SĂPTĂMÂNAL, în zile alese
spark-task.py add "Recap luni" --weekly 09:00 --days mon \
  --task "Rezumă săptămâna trecută din Gmail+Calendar și propune prioritățile săptămânii"
 
# LA INTERVAL (la fiecare N minute)
spark-task.py add "Watch preț" --every 60 --no-approval \
  --task "Verifică prețul la <produs> și pingează-mă DOAR dacă a scăzut sub X"
 
# O SINGURĂ DATĂ, la o dată/oră
spark-task.py add "Pregătește ședința" --once 2026-06-02T08:00 \
  --task "Strânge toate documentele legate de proiectul Y într-un rezumat"
 
# PE EVENIMENT (email nou care conține un cuvânt)
spark-task.py add "Lead fotografie" --on-event email_received --contains fotografie \
  --task "Extrage numele clientului + data, loghează lead-ul în sheet-ul Client Tracker, fă un folder în Drive cu numele clientului"

Flag-uri trigger: --daily HH:MM · --weekly HH:MM --days mon,tue · --every MIN · --once ISO · --on-event TIP [--from-source X] [--contains Y]. Opțional: --profile researcher|coder (rutează la un specialist Hermes), --connectors gmail,drive (informativ).


Aprobarea — butoanele de pe Telegram (implicit pornit)

Implicit, Spark e propose-only: la un pas periculos (trimite email, cheltuie bani, șterge, postează, rezervă) NU face singur — îți trimite pe Telegram propunerea cu două butoane:

Spark (proposal — approve to execute) — Rezumat zilnic [textul / planul ei] [ ✅ Approve ] [ ❌ Reject ]

  • Apeși ✅ Approve → Spark execută pentru real și îți trimite rezultatul.
  • Apeși ❌ Reject → se anulează, nu se întâmplă nimic.

Dacă vrei o sarcină complet autonomă (fără să te întrebe), adaugi --no-approval. Folosește-l doar la lucruri sigure (citit, monitorizat, rezumat) — nu la acțiuni care trimit/cheltuie.


Gestionarea task-urilor

spark-task.py list                 # toate task-urile + următoarea rulare + ultima stare
spark-task.py run-now <id>         # rulează ACUM, indiferent de program (test)
spark-task.py disable <id>         # oprește temporar
spark-task.py enable <id>          # repornește
spark-task.py rm <id>              # șterge
spark-task.py runs                 # istoricul rulărilor (stare, câte tool-uri, livrat?)

Sau pur și simplu îi spui lui Wednesday: „arată-mi task-urile spark”, „rulează acum rezumatul de luni”, „dezactivează watch-ul de preț”.


De unde îl folosești

  • Claude Code (laptop) — îi spui în chat sau rulezi CLI-ul. Bun pentru setup + task-uri complexe.
  • Telegram (telefon) — îi scrii lui Wednesday (Grok prin Hermes); ea rulează spark-task.py în spate. Aici primești și rezultatele + butoanele de aprobare. Asta e calea mobilă — setezi și aprobi de pe telefon.

Galerie de exemple (copy-paste, pe limbajul tău)

  1. Inbox sintetizat săptămânal„în fiecare luni la 9, ține-mă la curent cu abonamentele și știrile din industrie din inbox și rezumă temele importante.”
  2. Vânătoare de facturi„o dată pe zi, caută în mail facturile și chitanțele rătăcite și organizează-mi-le într-un sheet.”
  3. Plan de grup„transformă lanțul ăsta de mailuri despre excursie într-un plan: loghează cheltuielile într-un sheet și trimite-le tuturor planul” (propose-only — aprobi trimiterea).
  4. Întreținere casă„investighează facturile vechi și pune-mi remindere recurente în Calendar + listă de cumpărături în Keep.”
  5. Ghostwriter (skill învățat)„citește ultimele 50 de emailuri scrise de mine, fă un ghid de stil, salvează-l ca skill ghostwriter și folosește-l când îți cer să scrii emailuri.”
  6. Intake lead pe eveniment — exemplul cu --on-event email_received --contains fotografie de mai sus.
  7. Monitor tăcut„la fiecare oră verifică și pingează-mă doar dacă s-a schimbat” cu --no-approval.

Limite & de știut

  • Fundal = Grok/Gemini, niciodată Claude (regulă de cost). E by-design, ca la Google.
  • Trigger pe email = mail nou primit (prin daemon-ul gmail-event-emitter, la 5 min). Alte surse de evenimente se pot adăuga la cerere.
  • Sarcinile lungi se reiau singure peste rulări (aceeași sesiune), max 3 încercări — apoi raportează că n-a terminat.
  • Verifică că merge: launchctl list | grep -E 'spark-runner|gmail-event' (ambele trebuie să existe).
  • Rezultatul ajunge pe Telegram; istoricul în .spark_runs.jsonl.

FAQ

Trebuie să țin laptopul deschis? Nu. Daemon-ul rulează pe Mac mini 24/7; task-urile merg și când ești plecat. (Mac-ul nu doarme.)

Citește Spark toate mailurile mele? Nu indiscriminat — lucrează doar pe ce-i ceri, și se atinge doar de aplicațiile pe care le conectezi.

E nevoie să știu să programez? Nu. Vorbești normal. CLI-ul e doar dacă vrei control fin.

Ce-i diferit de un simplu reminder? Reminder-ul îți trimite un text. Spark face treaba — pași multipli, în mai multe aplicații, cu rezultat.

Cum opresc un task? spark-task.py disable <id> sau „dezactivează task-ul X”. rm îl șterge de tot.


Cercetarea + designul complet: _infra/core/wednesday/deliverables/2026-05-29-1804-gemini-spark-research-and-wednesday-parity.md. Doctrina AI-facing: _infra/core/wednesday/skills/spark_lane.md.