PROGRESS: reparatiile sunt comise; agent nou verificator, si generatoarele de loturi

Listele de sarcini nu se mai scriu de mana: mk_lot_reparatii.py si
mk_lot_verificare.py le genereaza, cu promptul comun intr-un singur loc.
Fiecare sarcina trimite agentul sa citeasca lista lui din PROGRESS.md cu
sed -n, ca sa nu duplicam textul in prompt si sa nu-l stricam la copiere.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
Claude Agent
2026-09-18 16:20:45 +00:00
parent cef76e1590
commit 483f3f8087
6 changed files with 198 additions and 1 deletions

View File

@@ -0,0 +1,66 @@
#!/usr/bin/env python3
"""Scrie .opencode/lot_reparatii.txt: cate o sarcina de reparatie per document.
Lista reparatiilor sta in PROGRESS.md; fiecare agent isi citeste sectiunea lui
cu sed -n, ca sa nu duplicam textul in prompt (si sa nu-l stricam la copiere).
"""
import pathlib
COMUN = (
"Lucrezi in /workspace/atm-curs-dl. Documentul TAU e {doc} si nu ai voie sa "
"atingi niciun alt fisier. Citeste lista reparatiilor cu: sed -n '{linii}p' "
"PROGRESS.md . Pentru FIECARE punct din ea: (1) deschide documentul la linia "
"indicata si citeste 30 de linii de context, (2) verifica citatul in sursa cu "
"sed -n '<linii>p' transcripts/08_ANALIZA_ZILNICA/<fisier>.txt (directorul are "
"diacritice: foloseste glob transcripts/08_*/<prefix>_*.txt daca nu-l gasesti), "
"(3) abia apoi scrie corectura. Daca citatul nu spune ce zice PROGRESS.md, "
"opreste-te la punctul ala si raporteaza-l, nu corecta pe incredere. Ce e "
"deductie se scrie ca deductie; ce nu reiese din sesiuni se marcheaza "
"'neconfirmat'. Afirmatia gresita e deseori repetata: cauta-o cu grep -n in "
"documentul tau si corecteaz-o peste tot. INTERZIS: alt fisier, stergerea unei "
"sectiuni intregi, cifre care nu sunt in citat, orice atingere a <svg, git commit. "
"Daca ajungi la ~250k tokeni, opreste-te si raporteaza ce a ramas. RAPORT: o "
"linie per punct - ce scria, ce scrie acum, la ce linie, citatul confirmat sau nu."
)
D = "summaries/08_ANALIZA_ZILNICA/"
SARCINI = [
("04_pivoti", D + "04_pivoti_si_proiectii.md", "73,102",
"Sectiunea A. Decizia de formulare e deja luata la liniile 96-102 din PROGRESS: "
"aplic-o exact asa. Textele din <svg se repara in generator, nu de tine - "
"lasa-le si mentioneaza-le in raport."),
("05_volum", D + "05_volum.md", "104,118",
"Sectiunea B. Punctul despre 10_sinteza:~692 NU e al tau, il face alt agent."),
("10_sinteza", D + "10_sinteza.md", "104,127",
"Sectiunile B si C, dar din B doar ce e in 10_sinteza (~692: cazurile Mara si "
"AGEN, care tin de alt rand). Restul lui B e in 05_volum si nu-l atingi."),
("02_mbt10", D + "02_mbt10.md", "163,183",
"Sectiunea E - cea mai grava din lot. Verifica si tu cu grep -i mbt in "
"135/138/139/140 inainte sa muti regula."),
("06_structura", D + "06_structura_trend.md", "185,195",
"Sectiunea F. In plus, corectura K8 din sectiunea D (sed -n '136,140p' "
"PROGRESS.md): pragul mânerului la cup & handle."),
("07_context", D + "07_context_de_piata.md", "129,148",
"Din sectiunea D doar K7 (SMA 200) si K6 (pragurile AAII) - K8 si K9 nu sunt "
"ale tale. In plus, doua deductii nemarcate la 07:1320 si 07:1641 (vezi "
"sed -n '229,231p' PROGRESS.md)."),
("01_buy_doji", D + "01_buy_doji_si_strategia_mici.md", "196,202",
"Sectiunea G, doar punctul despre 01."),
("03_locul_crimei", D + "03_locul_crimei_si_pullback.md", "202,206",
"Sectiunea G, doar punctul despre 03. Scoate si jargonul intern "
"'din loturi diferite'."),
("08_executie", D + "08_executie_si_risc.md", "208,223",
"Sectiunea H, doar punctele despre 08 (inclusiv minorul 08:235)."),
("09_earnings", D + "09_earnings_si_optiuni.md", "223,231",
"Sectiunea H, doar punctele despre 09 (inclusiv minorul 09:1405)."),
("11_selectia", D + "11_selectia_simbolului.md", "232,265",
"Sectiunea I, singurul document cu citate inventate. Ia punctele in ordinea "
"din lista (1 e cel mai grav). Punctul 10 (cele 7 sectiuni fara 'ce faci' si "
"fara DA/NU) il faci ultimul, dupa ce citatele sunt reparate."),
]
linii = [
"{}\t{} {}".format(nume, COMUN.format(doc=doc, linii=linii_p), extra)
for nume, doc, linii_p, extra in SARCINI
]
pathlib.Path(".opencode/lot_reparatii.txt").write_text("\n".join(linii) + "\n")
print(len(linii), "sarcini")