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`)