The destructive sibling
Agents work from a task description, not an inventory of your API contract. Asked to let users edit projects, one adds router.delete("/:id") beside the update handler because the pattern looks incomplete. requireAuth proves the caller is authenticated — not that they own the record.