What problem does it solve? Building form submissions and server mutations in Astro often means writing ad-hoc API endpoints with manual validation and inconsistent error handling. This Skill provides a standardized pattern for type-safe server functions using Astro Actions, so validation, errors, and client calls stay consistent. ## Core Features & Use Cases - Type-Safe Server Actions: Define actions with defineAction() and Zod-validated input schemas in src/actions/index.ts, called from the client via the astro:actions import. - Standardized Error Handling: Throw ActionError with HTTP-aligned codes (UNAUTHORIZED, FORBIDDEN, NOT_FOUND, BAD_REQUEST, CONFLICT, TOO_MANY_REQUESTS, INTERNAL_SERVER_ERROR) and catch them client-side with isActionError. - Progressive Enhancement: Use accept: 'form' so HTML forms submit directly to actions and work without JavaScript, with getActionResult for server-rendered success/error state. - Use Case: Build a contact form where the server action validates name, email, and message with Zod, the plain HTML form works without JS, and a small script enhances it to submit via AJAX without a page reload. ## Quick Start Create an Astro server action with Zod input validation for my contact form and wire it to a progressively enhanced HTML form.