---
name: new-page
description: Cria uma nova página seguindo a arquitetura do projeto (page.tsx + _actions/ + _components/)
argument-hint: "[nome-da-pagina]"
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
---

# Criar Nova Página: $ARGUMENTS

## Contexto do projeto
Este é um projeto Next.js 15 com App Router. Cada página segue um padrão consistente.

## Passos

1. **Analisar páginas existentes** para entender o padrão:
   - Ler `app/voluntarios/page.tsx` como referência de client page
   - Ler `app/dashboard/page.tsx` como referência de server page
   - Ler `app/(home)/page.tsx` como referência de landing page

2. **Criar estrutura de diretórios:**
   ```
   app/$ARGUMENTS/
   ├── page.tsx
   ├── _actions/
   │   └── $ARGUMENTS-actions.ts
   └── _components/
   ```

3. **Criar `page.tsx`:**
   - Decidir se é server component (SSR com dados) ou client component (interativo)
   - Dashboard-like → async server component com data fetching
   - Form-like → "use client" com useState
   - Importar e usar componentes de `_components/`

4. **Criar server actions em `_actions/`:**
   - Seguir padrão de `app/voluntarios/_actions/voluntario-actions.ts`
   - "use server" no topo
   - Import prisma de `@/lib/prisma`
   - Retorno: `{ success, data?, error? }`

5. **Criar componentes iniciais em `_components/`:**
   - "use client" para componentes interativos
   - Interface de props tipada
   - Estilo com Tailwind seguindo padrões existentes

6. **Atualizar navegação** se necessário (verificar `app/(home)/page.tsx` para links)

## Convenções
- Nomes em português brasileiro
- Arquivos de componente em PascalCase
- Arquivos de action em kebab-case
- Consultar `prisma/schema.prisma` se precisar de dados do banco
