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

Tokenkostenvoorspelling

PRECC bevat een orakel voor tokenkostenvoorspelling, zodat plannen met meerdere stappen kunnen worden begroot in tokens in plaats van kloktijd. Log een voorspelling vóór elke stap, registreer de werkelijke waarde nadat het werk is afgerond, en de dataset traint een ingebouwde voorspeller die in de loop van de tijd verbetert.

Een voorspelling loggen

Geef een eenregelige beschrijving van de geplande stap door. PRECC categoriseert hem (feat / fix / test / refactor / measurement / doc / chore / unknown), schat een tokenaantal en print een id waarmee u de lus sluit.

$ 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>

De werkelijke waarde registreren

Nadat de stap is voltooid, zoekt u het werkelijke tokenaantal op in de sessievoettekst of telemetrie en geeft u dit via de id terug.

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

trained-v1 trainen

Zodra u minstens tien gesloten voorspellingen heeft, fit u de trained-v1 ridge-regressie op log10(actual) tegen log10(beschrijvingslengte) plus een one-hot categorische dummy. De fit is gesloten vorm (Cholesky op de normale vergelijkingen met ridge λ=1) en draait in milliseconden.

$ 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

Na de training gebruikt elke nieuwe precc predict-aanroep automatisch trained-v1 totdat u het modelbestand verwijdert of vervangt. Oude voorspellingen behouden hun oorspronkelijke model_version, zodat u voorspellers door de tijd heen kunt vergelijken.

Voorspellernauwkeurigheid inspecteren

precc predict --eval rapporteert de gemiddelde absolute procentuele fout (MAPE) in totaal en per categorie, alleen berekend over gesloten voorspellingen (rijen met zowel voorspelde als werkelijke waarden).

$ 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%
  ...

Recente voorspellingen weergeven

precc predict --list toont recente rijen in omgekeerde chronologische volgorde. Open rijen (zonder werkelijke waarde) zijn klaar om gesloten te worden.

$ 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...

Waarom tokens, niet kloktijd

Tijdsinschattingen zijn achteraf niet meetbaar en stellen zich niet samen over machines of sessies. Tokenaantallen zijn deterministisch, vergelijkbaar en laten een gelabelde dataset groeien die de voorspeller bij elke gesloten lus verbetert. Het hele doel van het orakel is om schattingen van een gokspel om te zetten in een meting.

Waar de gegevens staan

Alle voorspelgegevens worden lokaal op uw machine opgeslagen. Er wordt niets geüpload.

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