Token-költség előrejelzése
A PRECC tartalmaz egy token-költség előrejelző orákulumot, így a többlépéses tervek tokenekben tervezhetők, nem óraidőben. Rögzítsen egy előrejelzést minden lépés előtt, jegyezze fel a tényleges értéket a munka befejeztével, és az adathalmaz egy beépített előrejelzőt tanít, amely idővel egyre pontosabb lesz.
Előrejelzés rögzítése
Adjon át egy egysoros leírást a tervezett lépésről. A PRECC kategorizálja (feat / fix / test / refactor / measurement / doc / chore / unknown), megbecsüli a tokenek számát, és kinyomtat egy id-t, amellyel zárhatja a kört.
$ 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>
Tényleges érték rögzítése
A lépés befejezése után keresse meg a tényleges tokenszámot a munkamenet láblécében vagy a telemetriában, és adja vissza az id segítségével.
$ precc predict --record 42 6300
Recorded actual=6300 tokens for prediction id=42.
trained-v1 betanítása
Ha legalább tíz lezárt előrejelzése van, illessze a trained-v1 ridge regressziót log10(actual)-re log10(leírás hossza) plusz egy one-hot kategória dummy ellenében. Az illesztés zárt formájú (Cholesky a normálegyenleteken ridge λ=1 mellett) és milliszekundumok alatt fut.
$ 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
A betanítás után minden új precc predict hívás automatikusan a trained-v1-et használja, amíg el nem távolítja vagy le nem cseréli a modellfájlt. A régi előrejelzések megtartják eredeti model_version értéküket, így idővel összehasonlíthatja az előrejelzőket.
Az előrejelző pontosságának vizsgálata
precc predict --eval az átlagos abszolút százalékos hibát (MAPE) jelenti összességében és kategóriánként, csak a lezárt előrejelzéseken (mind előrejelzett, mind tényleges értékkel rendelkező sorokon) számolva.
$ 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%
...
Legutóbbi előrejelzések listázása
precc predict --list a legutóbbi sorokat fordított időrendi sorrendben jeleníti meg. A nyitott sorok (tényleges érték nélkül) készen állnak a lezárásra.
$ 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...
Miért tokenek és nem óraidő
Az időbecslések utólag nem mérhetők, és gépek vagy munkamenetek között nem összegezhetők. A tokenszámok determinisztikusak, összehasonlíthatók, és növelik a címkézett adathalmazt, amely minden lezárt körrel javítja az előrejelzőt. Az orákulum lényege az, hogy a becslést találgatásból méréssé alakítsa.
Hol találhatók az adatok
Minden előrejelzési adat helyben, a gépén tárolódik. Semmi sem kerül feltöltésre.
~/.local/share/precc/
├── metrics.db — predictions table (oracle DB)
└── predict_model.json — trained-v1 coefficients (after `--train`)