Astro actions
Skill fusengine/agents/plugins/astro-expert/skills/astro-actions
Redefining development through cognitive automation and collaborative agent systems.
npx -y skills add fusengine/agents --skill astro-actionsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Expert Astro Server Actions — defineAction, astro:actions, Zod validation, ActionError, HTML form actions, accept form, progressive enhancement, redirect patterns. Use when handling form submissions, mutations, or any server-side logic with type safety.
SKILL.md
3.5 KB, as published. Nobody here has run it
Astro Actions Expert
Type-safe server functions with automatic validation, standardized errors, and progressive enhancement.
Agent Workflow (MANDATORY)
Before ANY implementation, use TeamCreate to spawn 3 agents:
- fuse-ai-pilot:explore-codebase - Check existing actions in
src/actions/ - fuse-ai-pilot:research-expert - Verify latest Actions docs via Context7/Exa
- mcp__context7__query-docs - Get defineAction and ActionError examples
After implementation, run fuse-ai-pilot:sniper for validation.
Overview
When to Use
- Handling form submissions with server-side validation
- Creating type-safe backend mutations without API boilerplate
- Building progressive enhancement (works without JS)
- Replacing API endpoints for client-server communication
Why Astro Actions
| Feature | Benefit |
|---|---|
defineAction() | Type-safe server function definition |
| Zod validation | Automatic JSON and FormData parsing |
ActionError | Standardized error codes and messages |
accept: 'form' | Direct HTML form submission support |
| Progressive enhancement | Works without JavaScript enabled |
astro:actions | Client import for type-safe calls |
Core Concepts
Action Structure
All actions live in src/actions/index.ts and export a server object:
// src/actions/index.ts
import { defineAction } from 'astro:actions';
import { z } from 'astro/zod';
export const server = {
myAction: defineAction({ /* ... */ })
}
Accept Modes
| Mode | Description |
|---|---|
accept: 'json' (default) | Parses JSON request body |
accept: 'form' | Parses HTML FormData directly |
Error Codes
Standard HTTP-aligned codes: UNAUTHORIZED, FORBIDDEN, NOT_FOUND, BAD_REQUEST, INTERNAL_SERVER_ERROR, CONFLICT, TOO_MANY_REQUESTS.
Reference Guide
| Need | Reference |
|---|---|
| Concepts & architecture | overview.md |
| defineAction patterns | defining-actions.md |
| ActionError handling | error-handling.md |
| HTML form integration | forms.md |
| Progressive enhancement | progressive-enhancement.md |
| Contact form template | templates/contact-form.md |
| JSON action template | templates/json-action.md |
Best Practices
- Always define
inputschema — Never skip Zod validation - Use
ActionErrorfor known errors — Standardized codes for client handling accept: 'form'for HTML forms — Native form submission support- Progressive enhancement — Form works without JS, enhanced with it
- Check
ctx.cookiesfor auth — ThrowUNAUTHORIZEDwhen not logged in