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