Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Predicția costului în tokenuri

PRECC include un oracol de predicție a costului în tokenuri, astfel încât planurile cu mai mulți pași să poată fi bugetate în tokenuri, nu în timp real. Înregistrează o predicție înainte de fiecare pas, notează valoarea reală după finalizarea lucrării, iar setul de date antrenează un predictor încorporat care se îmbunătățește în timp.

Înregistrează o predicție

Trimite o descriere de o linie a pasului planificat. PRECC îl clasifică (feat / fix / test / refactor / measurement / doc / chore / unknown), estimează un număr de tokenuri și afișează un id pe care îl vei folosi pentru a închide bucla.

$ precc predict "Implement read-deltas with mtime check"
id=42 category=feat predicted=5680 tokens (confidence=0.50, model=trained-v1)
Record actual when done: precc predict --record 42 <actual_tokens>

Înregistrează valoarea reală

După finalizarea pasului, caută numărul real de tokenuri în subsolul sesiunii sau în telemetrie și transmite-l înapoi prin id.

$ precc predict --record 42 6300
Recorded actual=6300 tokens for prediction id=42.

Antrenează trained-v1

Odată ce ai cel puțin zece predicții închise, ajustează regresia ridge trained-v1 pe log10(actual) față de log10(lungimea descrierii) plus o variabilă falsă de categorie one-hot. Ajustarea este în formă închisă (Cholesky pe ecuațiile normale cu ridge λ=1) și rulează în milisecunde.

$ precc predict --train
Trained trained-v1 on 22 closed predictions (λ=1).
  Model file : ~/.local/share/precc/predict_model.json
  Confidence : 0.50
  Intercept  :  +1.0016
  log_desc   :  +1.2339
  Categories :
    unknown       +0.4811
    doc           +0.4474
    measurement   +0.3422
    test          +0.1071
    refactor      +0.0326
    feat          +0.0071
    fix           -0.1096
    chore         -0.3063

După antrenare, fiecare apel nou precc predict folosește automat trained-v1 până când elimini sau înlocuiești fișierul modelului. Predicțiile vechi își păstrează model_version original, astfel încât poți compara predictorii în timp.

Inspectează acuratețea predictorului

precc predict --eval raportează eroarea procentuală absolută medie (MAPE) global și pe categorii, calculată doar pe predicțiile închise (rânduri cu valori atât prezise cât și reale).

$ precc predict --eval
Predictions logged   : 30
With actuals (closed): 22
Mean predicted       :     1483 tokens
Mean actual          :    47238 tokens
MAPE (statistical)   :     76.4%

By category:
  category        n   predicted      actual    MAPE
  feat            6        4605        5250   26.2%
  unknown         4        1597       30526   52.6%
  test            4         924       38900   56.4%
  ...

Listează predicțiile recente

precc predict --list afișează rândurile recente în ordine cronologică inversă. Rândurile deschise (fără valoare reală) sunt gata să fie închise.

$ precc predict --list --limit 5
id    ts                   category       predicted     actual  conf description
30    2026-05-09 09:40:51  feat                5348          -  0.50 Run the synthetic-fleet pilot...
29    2026-05-09 08:56:48  test                1050          -  0.60 Train predictor: trained-v1...
28    2026-05-09 07:44:18  test                 915     150000  0.60 Implement minimal task-12...

De ce tokenuri și nu timp real

Estimările de timp sunt nemăsurabile post-hoc și nu se compun între mașini sau sesiuni. Numerele de tokenuri sunt deterministe, comparabile și fac să crească un set de date etichetat care îmbunătățește predictorul cu fiecare buclă închisă. Întregul scop al oracolului este să transforme estimarea dintr-un joc de ghicit într-o măsurătoare.

Unde se află datele

Toate datele de predicție sunt stocate local pe mașina ta. Nimic nu este încărcat.

~/.local/share/precc/
├── metrics.db                — predictions table (oracle DB)
└── predict_model.json        — trained-v1 coefficients (after `--train`)