---
name: "sveltekit-server-endpoints-hooks"
description: "Intercept incoming HTTP requests, manage user sessions, and write REST endpoints in SvelteKit."
metadata:
  author: "Svelte"
  version: "1.0.0"
  runtime_compatibility:
    - "codex"
    - "claude-code"
    - "cursor"
    - "windsurf"
triggers:
  - "write hooks.server.ts sveltekit"
  - "create +server.ts sveltekit"
  - "event.locals session sveltekit"
permissions:
  fs_read: true
  fs_write: "workspace"
  shell_exec: false
  net_access: false
---

# SvelteKit Server Hooks & Standalone API Endpoints

Configures SvelteKit backend: intercepting requests in hooks.server.ts (handle hook), populating event.locals, creating standalone REST endpoints (+server.ts), setting HTTP security headers, and handling server errors.

## When to Invoke
Invoke this skill whenever you need to:
- write hooks.server.ts sveltekit
- create +server.ts sveltekit
- event.locals session sveltekit

## Execution SOP & Rules
1. Define handle hook in src/hooks.server.ts: export const handle = async ({ event, resolve }) => { ... }.
2. Verify session and assign: event.locals.user = await validateSession(event.cookies.get('session')).
3. In src/routes/api/health/+server.ts: export const GET = () => json({ status: 'ok' }).
4. Add security headers in hooks resolve: resolve(event, { transformPageChunk: ... }).

## Verification Checklist
- Run local linting, syntax validation, and type-checks before reporting completion.
- Ensure all created or modified files adhere to workspace boundaries and avoid uncommitted secrets.
- Verify tests or build commands exit cleanly with return code 0.
