#!/usr/bin/env python3 """Pregateste cele 7 diagrame din 11_selectia_simbolului: - inlocuieste cu perechea de markeri , pastrand spec-ul intr-un fisier separat (specs/.txt), ca sa nu-l pierdem; - scrie .opencode/lot_diagrame.txt, cate o sarcina per diagrama. Fiecare agent scrie DOAR gen/selectia/.py, care produce gen/selectia/.svg. Substitutia in .md o face orchestratorul cu gen/az_selectia.py, ca sa nu scrie sapte agenti in acelasi fisier. """ import pathlib import re MD = pathlib.Path("summaries/08_ANALIZA_ZILNICA/11_selectia_simbolului.md") OUT = pathlib.Path("gen/selectia") OUT.mkdir(parents=True, exist_ok=True) CHEI = ["funnel", "scor", "pe_venit", "cash_flow", "cadrane", "trinity", "sectoare"] md = MD.read_text(encoding="utf-8") specs = re.findall(r"", md, re.S) assert len(specs) == len(CHEI), f"{len(specs)} marcaje, {len(CHEI)} chei" for cheie, spec in zip(CHEI, specs): (OUT / f"{cheie}.spec.txt").write_text(spec.strip() + "\n", encoding="utf-8") md = md.replace( f"", f"\n", 1 ) MD.write_text(md, encoding="utf-8") P = ( "Lucrezi in /workspace/atm-curs-dl. Scrii UN SINGUR fisier: " "gen/selectia/{cheie}.py . Nu atinge niciun alt fisier - nici documentul .md, " "nici generatoarele altora. " "Ce desenezi: citeste specificatia cu cat gen/selectia/{cheie}.spec.txt . " "Contextul in care intra diagrama: deschide " "summaries/08_ANALIZA_ZILNICA/11_selectia_simbolului.md la marcajul " " (grep -n il gaseste) si citeste 60 de linii in jur - " "diagrama trebuie sa spuna ce spune textul de acolo, cu aceleasi cifre. " "Fiecare cifra si fiecare eticheta din diagrama trebuie sa existe in text sau " "in citatele lui; daca spec-ul cere ceva ce textul nu sustine, lasa afara si " "spune in raport. Nu inventa praguri, procente sau culori cu inteles " "(rosu/verde ca semafor) care nu sunt in sursa. " "Cum scrii: Python fara dependinte, care construieste SVG-ul ca string si il " "scrie in gen/selectia/{cheie}.svg . NU folosi svg_candles / pchart - alea " "sunt pentru grafice de pret, iar asta nu e un grafic de pret. Latime 700, " "font-family system-ui / sans-serif, font-size minim 13, text negru pe fundal " "alb, fara umbre si fara gradienti. Culorile din celelalte generatoare, daca " "ai nevoie de accente: #777 gri, #c00 rosu, #188a3e verde, #1a5fb4 albastru, " "#b06000 portocaliu. Pagina se citeste si pe telefon, deci nu inghesui text " "sub 13px si nu lasa etichete care se suprapun. " "VERIFICARE, in sarcina ta, nu optionala: ruleaza " ".venv/bin/python gen/selectia/{cheie}.py , apoi deschide SVG-ul rezultat si " "CITESTE-L (cat / grep) ca sa confirmi ca fiecare eticheta are coordonate in " "interiorul panzei (viewBox), ca nu se suprapun doua texte pe aceeasi pozitie " "si ca toate cifrele sunt cele din document. Daca doua etichete se bat, " "rearanjeaza si ruleaza din nou. " "Daca ajungi la ~250k tokeni, opreste-te si raporteaza. " "INTERZIS: alt fisier, git commit, sub-agenti. " "RAPORT scurt: ce arata diagrama, ce cifre ai folosit si de unde vin, ce ai " "lasat afara din spec si de ce, si ce ai verificat citind SVG-ul." ) pathlib.Path(".opencode/lot_diagrame.txt").write_text( "\n".join(f"{c}\t{P.format(cheie=c)}" for c in CHEI) + "\n" ) print(len(CHEI), "sarcini; markerii sunt in .md, spec-urile in gen/selectia/")