Laboratorio 1: Feature Engineering Lab
Añade una funcionalidad a un sistema de reservas: que rechace reservas que se solapen en el mismo horario. 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/feature-lab/starter booking-app && cd booking-app
git init -b main && git add . && git commit -m "starter"
En Windows PowerShell, la copia es Copy-Item -Recurse $HOME\.rapid-os\examples\feature-lab\starter booking-app. Si instalaste Rapid OS con pip, el ejemplo está en examples/feature-lab/starter.
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-feature añadir control de disponibilidad: rechazar reservas que se solapen en el mismo horario
El agente redacta la spec, comprueba que los tests del ejemplo pasan antes de tocar nada (baseline), implementa la validación con sus tests y los ejecuta con rapid check.
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: Reservar un horario ocupado lanza un error, la suite 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
booking-app/
├── booking.py
└── tests/
├── __init__.py
└── test_booking.py
En la versión inicial (starter), BookingSystem.create_booking(user_id, slot) guarda cualquier reserva sin verificar si el horario ya fue ocupado previamente.
Requisitos
- Detección de colisiones: Lanzar
SlotAlreadyBookedErrorsi el horario solicitado ya se encuentra registrado. - Saneamiento: Limpiar espacios en blanco en
user_idyslot. - Casos borde: Rechazar cadenas vacías o compuestas únicamente de espacios en blanco.
- Preservación: Las reservas válidas deben continuar registrándose con normalidad.
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.