„Aplicarea fiecărei porunci cere echilibrarea unor erori opuse. Așa cum nu poți învăța să mergi pe bicicletă citind un manual de fizică, nu poți deveni superprognozator citind manuale de instruire.”Philip E. Tetlock & Dan Gardner · Superforecasting: The Art and Science of Prediction · 2015 · Tetlock & Gardner, «Superforecasting», Crown, 2015, anexa «Ten Commandments for Aspiring Superforecasters», porunca a zecea; citit pe reproducerea Good Judgment Inc. (copie Wayback), nu pe pagina cărții
Aproape fiecare poruncă e un echilibru între două erori opuse, iar echilibrul se învață doar cu feedback.
Anexa cărții «Superforecasting» (Tetlock și Gardner, 2015) adună cercetarea Good Judgment Project în zece porunci, reproduse și pe pagina Good Judgment Inc.: triajul (alegi întrebările unde efortul contează); spargerea problemelor aparent insolubile în subprobleme; echilibrul dintre vederea din interior și cea din afară; echilibrul dintre sub-reacția și supra-reacția la dovezi; căutarea forțelor cauzale care se ciocnesc; distingerea a atâtor grade de îndoială câte permite problema, dar nu mai multe; echilibrul dintre sub- și supraîncredere; căutarea erorilor din spatele greșelilor, fără părtinirea retrospectivei; colaborarea care scoate ce e mai bun din ceilalți; și stăpânirea «bicicletei» care echilibrează erorile. A unsprezecea: nu trata poruncile ca porunci. Observă cuvântul care se repetă: echilibru. Trei porunci încep chiar cu «găsește echilibrul potrivit» între două erori opuse, iar a zecea spune că fiecare cere echilibrarea unor erori opuse. De aceea nu se învață citind, ci exersând cu feedback care spune fără ambiguitate dacă ai mers bine sau ai căzut. Lecțiile 1–11 ale cursului acoperă deja majoritatea poruncilor; aici le legăm. Pentru un motor de prognoză, poruncile devin câmpuri: termen și sursă de rezolvare, componente, rată de bază, forțe pro și contra, o probabilitate nerotunjită, istoricul propriului scor. Motorul olivLaw nu le cere astăzi: recalibrarea Monte Carlo îi cere modelului AI să-și raporteze scorul Brier «dacă există istoric», dar nu-i trimite niciodată istoricul din forecast_resolution.
Exemplu aplicat. În revizuirea paginii «viitor» din 23 septembrie 2026 apare o predicție nescorată din scenariul de criză CS1: «EUR/RON depășește 5,30 în 2027». Ana o trece prin cele zece porunci. Probabilitățile de mai jos sunt ilustrative — arată mecanica, nu o prognoză olivLaw.
1 triaj întrebarea are termen și o sursă publică; merită efortul
rescriere «Va publica BNR, în vreo zi dintre 1 ianuarie și 31 decembrie
2027, un curs de referință EUR/RON peste 5,3000?»
2 subprobleme distanța de parcurs: 5,30 / 5,2757 − 1 = +0,46 %
(5,2757 = cursul din 23.09.2026); orizont: 456 de zile până
la 31.12.2027; mișcarea din 2026 până acum: 5,0985 → 5,2757,
adică +3,5 %
3 din afară rata de bază: în câte ferestre istorice de 15 luni maximul
cursului a depășit valoarea de start cu peste 0,46 %?
(se calculează din serie, înaintea oricărei opinii)
4 reacție fiecare știre nouă primește un raport de verosimilitate,
nu un salt
5 forțe pentru: deficit, inflație; contra: intervențiile BNR, intrări
de fonduri europene
6 grade dacă rata de bază dă 0,83, Ana scrie 0,83, nu «probabil»
7 încredere un prag atât de apropiat cere o întrebare: de ce n-ar fi
aproape sigur? răspunsul scris devine argumentul pentru
a nu urca la 0,99
8 autopsie la rezolvare: ce a contat, ce a fost noroc
9 ceilalți doi colegi dau numărul separat înainte de discuție
10 bicicleta scorul Brier al întrebării intră în istoricul AneiCe s-a schimbat: o frază de proză care nu putea fi pierdută a devenit o întrebare cu termen, criteriu și sursă, iar riscul ei principal — pragul e la doar 0,46% de cursul curent — e acum vizibil în pasul 2, în loc să fie ascuns în cuvântul «depășește».
Porunca a unsprezecea apare la pasul 7: niciun punct nu se aplică orbește. Dacă BNR schimbă regimul cursului, întrebarea se anulează (statusul void din forecast_resolution), nu se forțează.
În motorul olivLaw. Ce există azi: recalibrarea Monte Carlo (`MCRecalibrationAgent` în agents_core) cere modelului, în prompt, să-și raporteze scorul Brier «dacă există istoric», dar pipeline-ul nu-i trimite niciodată rândurile din forecast_resolution, deci câmpul backtesting.available iese practic mereu fals. Premortemul doar strânge probabilitățile în [0,05; 0,95]. Agregatorul de joc de război (`WarGamingAgent._calibrate`) combină liniar trei surse cu ponderi fixe. Nimic nu verifică dacă o prognoză are termen, rată de bază sau argumente contra.
Propunerea: poruncile ca gardă deterministă, scrisă în Python și rulată înainte ca o prognoză să intre în `prediction.forecasts`. Modelul AI primește în prompt aceleași câmpuri ca schemă de completat — plus ultimele sale scoruri Brier pe întrebări rezolvate —, iar garda respinge orice răspuns cu câmpuri lipsă. O instrucțiune nu se poate verifica; un câmp gol, da.
ICD_BAND_EDGES = {0.01, 0.10, 0.20, 0.34, 0.45, 0.55, 0.66, 0.80, 0.90, 0.99}
def commandments_guard(f: dict) -> list[str]:
issues = []
if not (f.get("resolves_by") and f.get("resolution_source")):
issues.append("1 triaj: lipsește termenul sau sursa de rezolvare")
if not f.get("components"):
issues.append("2 subprobleme: nicio descompunere")
if f.get("base_rate") is None or not f.get("reference_class"):
issues.append("3 din afară: lipsește rata de bază și clasa ei")
step = abs(f.get("p", 0) - f.get("p_prev", f.get("p", 0)))
if step > 0.25 and not f.get("likelihood_ratio"):
issues.append("4 reacție: salt mare fără raport de verosimilitate")
if not (f.get("forces_for") and f.get("forces_against")):
issues.append("5 forțe: lipsesc argumentele pro sau contra")
if f.get("p") in ICD_BAND_EDGES:
issues.append("6 grade: probabilitate lipită de o margine de bandă")
if f.get("p") is not None and (f["p"] > 0.98 or 0.02 > f["p"]) and not f.get("extreme_reason"):
issues.append("7 încredere: extrem fără justificare")
if not f.get("brier_history_seen"):
issues.append("10 bicicleta: modelul n-a primit propriul istoric")
return issues
print(commandments_guard({"p": 0.66, "resolves_by": "2027-12-31"}))Porunca 8 (autopsia) se verifică la rezolvare, nu la emitere, iar 9 (ceilalți) prin agregare — lecțiile 19–20. Proba din system_health numără prognozele respinse pe săptămână, pe tip de poruncă; ținta nu e zero, ci un număr care scade.
De ce contează O listă de verificare nu face pe nimeni superprognozator, dar împiedică cele mai ieftine greșeli — întrebarea nescorabilă, rata de bază uitată, numărul rotunjit — să ajungă în pagină.