Daily Evolution (consiliul automat zilnic)

Ce face

În fiecare zi, fără să-l declanșezi tu, un consiliu de 5 lentile rulează în background pe Grok și răspunde la o singură întrebare fixă:

“What is today’s single highest-ROI improvement to Wednesday/Nevermore?”

(Care e singura îmbunătățire cu cel mai mare ROI azi pentru sistem.)

E aceeași structură ca LLM Council-ul manual — 5 advisors (Contrarian / First Principles / Expansionist / Outsider / Executor), peer review anonimizat A-E, chairman synthesis — dar diferă în trei locuri:

  1. Întrebarea e fixă, generată din contextul curent al workspace-ului (scratchpad _infra/config/scratchpad.md + master tasklist + ultimele 5 lessons din wednesday_memory.db).
  2. Toate cele 11 chemări rulează pe Grok grok-4.3, nu pe Claude sub-agents. Doctrina de cost Phase 334+: folosește modelul cel mai ieftin care livrează 95%+ din rezultat. Council-ul manual rămâne pe Claude pentru calitate; daily-ul rulează masiv, deci pe Grok.
  3. Output-ul e scurt și actionable: doar The Recommendation + The One Thing to Do First. Fără tabele de telemetry sau debate text — toate verbatim-urile sunt în transcript, dar artefactul operator-facing e o pagină scurtă.

Logged ca Episodes row în SQLite (session_id='EVOLUTION_COUNCIL'), idempotent — nu rulează de două ori în aceeași zi decât cu --force.

Când îmi folosește

  • Vrei să vezi ce-ar prioritiza sistemul înainte să te apuci de altceva.
  • Te uiți la lista de task-uri și nu știi de unde să începi.
  • Vrei un al doilea unghi pe priority queue-ul tău — fără să întrebi.
  • Vrei să verifici dacă scratchpad-ul tău reflectă încă realitatea (dacă recomandarea consiliului e complet decuplată de scratchpad, ceva e drift).

NU e pentru:

  • Decizii cu mize specifice (“ar trebui să adopt X?“) → ăla e job de council manual.
  • Întrebări factuale.
  • Generare de content / task-uri creative.

Cum îl declanșez

În practică nu îl declanșezi tu — rulează automat (planificarea cron e setată pentru a-l invoca; manual operator activation per memoria proiectului). Dar dacă vrei să-l forțezi:

python3 _infra/scripts/wednesday_daily_evolution.py --force

Fără --force se va opri cu exit code 4 dacă a rulat deja azi.

Exit codes utile pentru debugging:

  • 0 — succes
  • 1 — dispatch Grok eșuat (advisorii)
  • 2 — chairman synthesis eșuat
  • 3 — scriere pe disk eșuată
  • 4 — already ran today

Triggere prin Wednesday:

  • arată-mi daily evolution-ul de azi
  • ce a zis consiliul azi?
  • force daily evolution run

Exemplu real

2026-05-27. Operatorul tocmai închisese o rulare Darwinian de 6h30m care produsese un rubric champion (5bd890b79487, fitness 0.981 — vs seed 0.506). Scratchpad-ul descria run-2 ca COMPLETED și menționa promote subcommand-ul ca next step.

Daily Evolution s-a aprins peste noapte. Cinci verdicte:

  • Contrarian — “Champion-ul a baked în exclusion list care drop-uiește exact slice-ul dominant de utilizare (erotic/roleplay/casual). Plus, evolver-ul tratează 6h30m ca atomic. Adaugă guardrail + atomic checkpoint.”
  • Executor — “Run promote subcommand pe 5bd890b79487 acum. Un singur command, <3 minute, totul devine reboot-survivable.”
  • Outsider — “Scrie un usage guide plain-English. Restul e plumbing intern.”
  • Expansionist — “Lansează imediat o nouă rulare cu champion-ul ca substrat pe dossierele de income.”
  • First Principles — “Promote subcommand-ul în sine trebuie să fie gate-ul: hash check + atomic swap + boot test + scratchpad write.”

Peer reviewers au votat B (Executor) ca strongest majoritar, cu First Principles ca runner-up (atomic gate). Chairman-ul a sintetizat:

Recommendation: Promote champion 5bd890b79487 acum prin existing subcommand, apoi verifică imediat hash + cold restart + 5-line test pentru exclusion list. One Thing: python -m darwinian promote 5bd890b79487 + hash check + boot test + scratchpad write.

Full transcript: _raw/reviews/Council_Debates/2026-05-27-daily-evolution.md. Short verdict: _raw/reviews/Daily_Evolution/2026-05-27.md.

Output / unde aterizează

Două fișiere, ambele scrise atomic la finalul rulării:

  1. Transcript complet_raw/reviews/Council_Debates/YYYY-MM-DD-daily-evolution.md

    • Frontmatter cu session_id, chairman, advisors, peer_reviewers, runtime_split, status: DELIVERED
    • Framed Question + context snapshot
    • Round 1: 5 advisor analyses verbatim
    • Round 2: 5 peer reviews (referențiază răspunsurile prin litere)
    • Chairman Verdict (the short artifact)
  2. Verdict scurt_raw/reviews/Daily_Evolution/YYYY-MM-DD.md

    • Doar # Daily Evolution: YYYY-MM-DD + Recommendation + One Thing to Do First
    • Format Quartz-friendly pentru publicare pe sabin.uk

Plus o row în SQLite Episodes (table wednesday_memory.db) cu outcome: COMPLETED și state_vector = primul rând non-heading din verdict (pentru search ulterior cu Karlie).

Limitări

  • Întrebarea e fixă. Nu poți să întrebi “Daily Evolution: care e prioritatea pe income tracks?“. Pentru asta folosești council manual.
  • Context = doar scratchpad + tasklist + 5 lessons. Dacă scratchpad-ul tău e stale, consiliul răspunde la o realitate stale. Verifică State Drift Gate (din boot Wednesday) dacă recomandarea pare complet ruptă de prezent.
  • Toate verdictele sunt Grok. Asta e by design (cost), dar dacă întrebarea cere arhitectură subtilă, recomandarea poate fi mai shallow decât council-ul manual pe Claude. Nu e contra-indicat — e doar trade-off de cost.
  • Idempotent pe day. Dacă vrei o a doua rulare în aceeași zi (ex: după ce ai aplicat recomandarea de dimineață și vrei un re-prompt), folosește --force. Asta scrie peste fișierul existent — pierzi prima versiune dacă nu o backup-ai.
  • Non-blocant pentru boot. Chiar dacă rulul de azi a picat, Wednesday boot-uiește normal. Surface-ul e via dashboards (Daemon_Health.md) dacă picul a fost recurent.