Laboratorio 2: Bugfix Engineering Lab
Corrige un bug real: un descuento del 10% sobre $100 devuelve un total negativo. En tu agente escribes tres cosas; en la terminal solo preparas el ejemplo y apruebas.
Con shortcuts
1. Prepara el proyecto de ejemplo
cp -r ~/.rapid-os/examples/bugfix-lab/starter pricer-app && cd pricer-app
git init -b main && git add . && git commit -m "starter"
En Windows PowerShell, la copia es Copy-Item -Recurse $HOME\.rapid-os\examples\bugfix-lab\starter pricer-app. Si instalaste Rapid OS con pip, el ejemplo está en examples/bugfix-lab/starter.
El ejemplo trae un test en rojo (test_regression_expected_discount en tests/test_pricer.py). Bórralo antes de empezar: la baseline debe quedar en verde, y el agente escribirá su propio test que reproduce el bug.
2. Configura el proyecto
Abre tu agente en la carpeta y escribe /rapid-init (en Codex, $rapid-init). Detecta Python y propone python -m unittest discover como comando de tests: acéptalo. Los documentos del proyecto puedes omitirlos en este laboratorio.
3. Pide el trabajo
/rapid-bugfix el descuento del 10% devuelve un total negativo
Primero el agente reproduce el bug con un test que falla (Rapid OS registra ese rojo como evidencia esperada), después corrige la fórmula y comprueba que el mismo test pasa.
4. Aprueba en tu terminal
Cuando el agente termina, se detiene y te da el comando exacto. Ejecútalo en otra terminal, fuera del agente, por ejemplo:
rapid approve gate.final-verification
Vuelve al agente y escribe /rapid-next para cerrar el run.
Resultado: El descuento se calcula bien, el test que reproducía el bug queda en verde y el run termina con veredicto pass.
¿No tienes los shortcuts? Una sola vez: rapid shortcuts install --global --harness claude, o dentro de la carpeta rapid init --shortcuts. Detalle en la guía de shortcuts.
Detalles del laboratorio
Estado inicial
pricer-app/
├── pricer.py
└── tests/
├── __init__.py
└── test_pricer.py
En la versión inicial (starter):
discount_amount = subtotal * discount_percent # ERROR: falta dividir entre 100.0
Un descuento del 10% en $100 resulta en -$900.00.
Requisitos
- Fórmula: Corregir el cálculo a
subtotal * (discount_percent / 100.0). - Límites: Validar que
discount_percentesté en el rango[0.0, 100.0]; de lo contrario, lanzarValueError. - Regresión: Mantener el soporte para carritos con múltiples productos y cantidades.
- Verificación: Probar baseline con el comportamiento defectuoso antes de aplicar el parche.
Modo avanzado
No lo necesitas para hacer el laboratorio. El mismo ciclo escrito a mano en una terminal, con los comandos de uso diario (rapid start, next, check, task, approve, finish), para CI o auditoría, está en el recorrido manual (Bajo el capó); la plomería (rapid evidence add, rapid run gate) no satisface gates de tests ni humanos y en el ciclo de gobernanza v3.