What problem does it solve? A passing typecheck only proves Convex code compiles — it does not prove a non-owner is denied access, a query returns the right rows, or a mutation has the intended effect. This Skill closes that gap by running seed → drive → assert verification loops in-process with convex-test, with emphasis on negative authorization assertions that catch the most common real-world defects. ## Core Features & Use Cases - In-process verification with convex-test: Runs tests against your schema without any deployment, using vitest with the edge-runtime environment. - Multi-identity driving: Calls queries and mutations as the owner, a different authenticated user, and an unauthenticated caller via t.withIdentity. - Negative authz assertions: Proves the wrong caller is refused and that list queries never leak another user's rows. - Use Case: After building an owner-only cancel mutation, verify that the owner succeeds, another user is rejected with a forbidden error, and unauthenticated calls fail — catching an authz hole before shipping. ## Quick Start Verify that my new cancelOrder mutation only works for the order owner and rejects other users and unauthenticated callers.