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.
它做什麼
一條用於純驗證任務的工作規則:把驗收條件轉成能證明它們的最少檢查,回報結果,然後停下。
運作方式
- 為每條驗收條件找到最少且足夠的證明,仍對應目前程式碼的既有結果直接沿用。
- 先執行針對性的檢查,再執行範圍較大的檢查;每項結果準確標示為通過、失敗、無法執行或被阻擋。
- 未被要求就不修改產品程式碼;條件符合後不再潤飾、整理或增加測試。
適合情境
「這張工單做完了嗎」的核對、合併前驗證與最後一步的確認。
需要了解
出自開源專案 Caveman 的一組通用工作方式。指令本身不帶 Caveman 品牌,放到任何專案都能使用。
純指令檔:沒有腳本、不連網、不寫入檔案。 壓縮檔中另附 LICENSE、NOTICE 與 agents/openai.yaml(供 Codex 使用的顯示名稱與預設提示詞)。