Predicción de costo en tokens
PRECC incluye un oráculo de predicción de costo en tokens para que los planes de varios pasos se presupuesten en tokens, no en tiempo de reloj. Registre una predicción antes de cada paso, anote el valor real cuando el trabajo termine, y el conjunto de datos entrenará un predictor integrado que mejora con el tiempo.
Registrar una predicción
Pase una descripción de una línea del paso planeado. PRECC lo categoriza (feat / fix / test / refactor / measurement / doc / chore / unknown), estima un recuento de tokens e imprime un id que usará para cerrar el ciclo.
$ 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>
Registrar el valor real
Después de que el paso se complete, busque el recuento real de tokens en el pie de su sesión o en la telemetría y pásalo de vuelta mediante el id.
$ precc predict --record 42 6300
Recorded actual=6300 tokens for prediction id=42.
Entrenar trained-v1
Una vez tenga al menos diez predicciones cerradas, ajuste la regresión ridge trained-v1 sobre log10(actual) frente a log10(longitud de descripción) más una variable dummy categórica one-hot. El ajuste es de forma cerrada (Cholesky sobre las ecuaciones normales con ridge λ=1) y se ejecuta en milisegundos.
$ 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
Tras el entrenamiento, cada nueva llamada a precc predict usa trained-v1 automáticamente hasta que retire o reemplace el archivo del modelo. Las predicciones antiguas conservan su model_version original para que pueda comparar predictores a lo largo del tiempo.
Inspeccionar la precisión del predictor
precc predict --eval informa el error porcentual absoluto medio (MAPE) en general y por categoría, calculado solo sobre las predicciones cerradas (filas con ambos valores: predicho y real).
$ 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%
...
Listar predicciones recientes
precc predict --list muestra las filas recientes en orden cronológico inverso. Las filas abiertas (sin valor real) están listas para cerrarse.
$ 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...
Por qué tokens y no tiempo de reloj
Las estimaciones de tiempo son inmedibles a posteriori y no se componen entre máquinas o sesiones. Los recuentos de tokens son deterministas, comparables y hacen crecer un conjunto de datos etiquetado que mejora al predictor con cada ciclo cerrado. El propósito mismo del oráculo es convertir la estimación de un juego de adivinanzas en una medición.
Dónde residen los datos
Todos los datos de predicción se almacenan localmente en su máquina. Nada se sube.
~/.local/share/precc/
├── metrics.db — predictions table (oracle DB)
└── predict_model.json — trained-v1 coefficients (after `--train`)