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

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