No, ACME-88 isn't done. Criterion 2 fails, and the test that's supposed to cover the endpoint wouldn't catch that failure.
| # | Criterion | Result | Evidence |
|---|---|---|---|
| 1 | GET /health returns 200 with {"status": "ok"} |
Pass, but only for logged-in users | The handler returns {"status": "ok"}, 200. The test checks both the status code and the JSON body, and CI shows it passing. |
| 2 | No authentication required | Fail | app/routes.py puts @require_login on health(), so the endpoint requires login. |
| 3 | A test covers the endpoint | Partial | test_health exists and passes. But it uses the logged_in_user fixture, so it only tests a logged-in request. That's why CI passes even though criterion 2 fails. |
To close the ticket:
- Remove
@require_loginfromhealth(). - Remove
logged_in_userfrom the test so it makes the request without logging in. That way the test also proves criterion 2.
How I checked: There's no repository in this workspace, so I didn't run anything. This is based only on the diff and CI output you pasted. I'm also assuming @require_login blocks requests that aren't logged in (with a 401, 403 or a redirect), as its name suggests. I couldn't see its code to confirm that.
Real run recorded with claude-code / claude-opus-5-5. Output is shown verbatim, unmodified.
Qué hace
Una regla de trabajo para tareas de solo validación: convertir los criterios de aceptación en el conjunto mínimo de comprobaciones que los demuestra, informar y detenerse.
Cómo funciona
- Asigna a cada criterio de aceptación la prueba mínima suficiente, reutilizando resultados que sigan correspondiendo al código actual.
- Ejecuta comprobaciones enfocadas antes que las más amplias e informa cada resultado exactamente como superado, fallido, no disponible o bloqueado.
- No edita el código del producto a menos que se solicite, y no añade retoques, limpieza ni pruebas adicionales una vez que los criterios se cumplen.
Útil para
Comprobaciones de «¿este ticket está terminado?», verificación previa a la fusión y prueba de último tramo.
Conviene saber
Uno de los patrones de trabajo generales del proyecto de código abierto Caveman. Las propias instrucciones no llevan la marca Caveman y funcionan en cualquier proyecto.
Solo contiene instrucciones: sin scripts, sin acceso a la red y sin escrituras en archivos. El paquete también contiene LICENSE, NOTICE y agents/openai.yaml (nombre para mostrar y prompt predeterminado para Codex).