From 43236af73e0d3515a1169712bf6614e764715a2b Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Thu, 1 Oct 2026 19:45:08 +0000 Subject: [PATCH] PROGRESS: predare inainte de modulul 5 Fluxul complet pentru un modul nou (download, extract_audio, transcribe, sumarizare, verificare, render), capcanele cozilor, si cine ce agent e. 17_STRATEGII ramane terminat; deschise doar cele doua intrebari pentru user. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ --- PROGRESS.md | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) diff --git a/PROGRESS.md b/PROGRESS.md index 5d638f6..c25a5ef 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -1,4 +1,109 @@ -# Progres — atm-curs-dl (actualizat 2026-09-22, 20:30 UTC) +# Progres — atm-curs-dl (actualizat 2026-10-01) + +--- + +# PREDARE 01.10.2026 — URMEAZA MODULUL 5 + +Userul a primit acces la **modulul 5** si vrea sa fie prelucrat. **Nu e nimic +pe disc inca** (`summaries/` si `transcripts/` au 01, 02, 03, 04 = M1, M2, M3, +M4, plus catalizatori, analiza zilnica, Q&A, analiza fundamentala). +**Repo curat, pushat, nimic nu ruleaza.** Ultimul commit: `119b611`. + +## Primul lucru de facut la reluare + +Intreaba userul **ce anume are**: acces in cont (atunci descarcarea e +automata), sau fisiere pe care le-a pus undeva pe disc. Fluxul difera. + +## Fluxul complet pentru un modul nou, in ordine + +**Pasii 1-3 nu au nevoie de niciun model.** Sunt scripturi; un agent pus sa le +supravegheze adauga doar cost si moduri noi de esec. Lanseaza-le detasat si +asteapta-le cu monitorul, nu cu polling. + +1. **`python download.py`** — ia videourile prin API-ul systeme.io. Cere + `.env` cu `ATM_EMAIL` / `ATM_PASSWORD`. Reluabil (Range + `videos/manifest.json`). + **De sarit, de obicei:** pasul 2 nu are nevoie de video pe disc. +2. **`python extract_audio.py`** — ffmpeg citeste MP4-ul direct de pe + CloudFront si scrie doar pista audio (mono 16 kHz) in `audio//`. + Niciun video nu atinge discul. Reluabil prin existenta fisierului. +3. **`python transcribe.py`** — `audio//*.mp3` → `transcripts//*.txt` + cu faster-whisper pe CPU. **Sterge audio-ul dupa transcriere reusita.** + Reluabil: sare peste lectiile care au deja transcriere. + - **`python extract_text_lessons.py`** — lectiile FARA video (text/quiz), pe + care `extract_audio.py` le sare. Scrie in acelasi loc, ca sa intre in + acelasi flux. + - Daca o parte din coada merge pe moltbot: **`./pull_moltbot.sh `**, + niciodata `scp` + `find -size -1k -delete` (a sters o data o transcriere + de sub procesul care o scria, iar audio-ul era deja sters). +4. **Sumarizare, cu agenti opencode**, unul per transcriere. Formatul si + regulile: `STYLE.md`. Agentul existent pentru asta e `recoltor` + (`.opencode/agents/recoltor.md`). +5. **Verificare, cu agenti separati de cei care au scris.** Pasul asta nu se + sare niciodata — vezi sectiunea de mai jos, „de ce". +6. **`.venv/bin/python render_html.py`** (NU `python3` — `markdown` nu e in + python-ul de sistem). + +## Doua capcane ale cozilor, platite deja + +- **`transcribe.py` creeaza fisierul `.txt` gol la start.** Un `git add` pe + folderul de transcrieri in timpul cozii comite un stub de 0 octeti, iar un + agent lansat pe el raporteaza „nimic de recoltat". Ruleaza + `find transcripts -size 0` inainte de commit **si** inainte sa dai un fisier + unui agent. +- **`pgrep -f ` intr-un wrapper de shell se prinde pe el insusi** — + o coada a stat degeaba doua ore asa. Scrie `pgrep -f "[a]udio_fingerprint"`, + sau asteapta pe un PID. +- Inainte de transcriere, `audio_fingerprint.py` prinde duplicatele de sesiune + **pe audio**, deci inainte sa platesti transcrierea. Validat: 1.000 pe + duplicat, 0.038 pe sesiuni diferite. + +## Starea lui `17_STRATEGII` — TERMINAT, nu-l redeschide fara motiv + +Toate cele 8 capitole: text nou dupa sablon, diagrame complete, **verificate si +reparate** (47 de probleme, 22.09). Cele 92 de diagrame ies curate la +`audit_diagrams.py`. Nimic in lucru. + +**Singurele doua lucruri deschise, amandoua intrebari pentru user:** +1. `00_harta.md` si `00_SHORTLIST.md` mai au `fisier:linie` in corp — intra si + ele in regula sablonului? Nu sunt capitole (unul e cuprins, altul clasament). +2. Anexele `A1_risc`, `A2_contradictii`, `A3_intrarea` se reconstruiesc dupa + sablon? Nu sunt strategii. + +## Agentii opencode, cine pe ce + +Cheia userului din 22.09 e in `~/.local/share/opencode/auth.json` (cea veche, +cu limita lunara atinsa, e `auth.json.bak`). 24 de rulari fara eroare de cota. + +| Agent | Domeniu | +|---|---| +| `recoltor` | citit o transcriere si scos regulile | +| `redactor`, `corector`, `verificator` | documentele din `08_ANALIZA_ZILNICA`, prin `triaj/DECIZII.md` | +| `verif_strat` | verifica un capitol din `17_STRATEGII`, categoriile A-F, `edit: deny` | +| `corector_strat` | aplica o lista numerotata de reparatii data in prompt | +| `grafician` | deseneaza o diagrama noua, dintr-un `.spec.txt` | +| `reparator_grafic` | repara un generator existent; n-are voie la niciun `.md` | +| `unealta` | repara o unealta Python din radacina; lasa in urma `--selftest` | + +**Impartirea de permisiuni care face ca trei agenti sa lucreze pe acelasi +capitol fara sa se calce:** verificatorul nu scrie deloc; corectorul nu atinge +`gen/` si nici blocurile `` din `.md`; reparatorul de grafic nu atinge +niciun `.md` si nu ruleaza `substituie.py`. Pipeline-ul (`substituie.py`, apoi +`render_html.py`) il rulezi **tu**, o data, la final. Comiti tot tu, pe cai. + +## De ce verificarea nu se sare, pe scurt + +Pe 22.09, cinci verificatori au gasit 47 de probleme in capitole care pareau +gata. Tiparul cel mai valoros, prins independent la **trei** capitole: **cifre +ilustrative dintr-un SVG de sumar, promovate la „cifrele cursului"**. Testul e +ieftin — `grep -n "" transcripts/.../.txt`; daca transcrierea +n-o rosteste, documentul n-are voie sa spuna ca e a cursului. **Aplica-l de la +inceput la modulul 5**, nu dupa. + +Celelalte doua tipare care se repeta: **contradictia fabricata** (documentul +zice „materialul nu e clar aici" pe un lucru pe care sursa il spune explicit — +verifica fiecare intrare din sectiunea de contradictii in sursa) si **eticheta +ramasa in urma desenului** (o fraza adevarata despre o versiune veche a +diagramei). ---