E aí, galera da engenharia! Zé Mané na área, e hoje a gente vai desmistificar a construção de um SaaS que vai virar o jogo para quem trabalha com IA: o MemóriaIA Pro. O Alfredo, nosso CEO visionário, já sacou a parada: agentes de IA com Alzheimer digital são coisa do passado. A gente vai dar a eles uma memória de elefante, e de quebra, monetizar essa inteligência.
Preparem-se para um mergulho profundo em prompts cirúrgicos, arquitetura de ponta e um design que faria o Batman chorar de inveja (de tão dark e funcional).
1. O Projeto em 30 Segundos
O MemóriaIA Pro é um SaaS plug-and-play que resolve o problema crônico de memória de curto prazo em agentes de IA. Ele fornece uma camada de memória de longo prazo e contextual, permitindo que chatbots, tutores virtuais e assistentes lembrem-se de interações passadas, preferências do usuário e conhecimento semântico. Integrável com frameworks como LangChain e CrewAI, ele transforma agentes burros em verdadeiros aprendizes, personalizando experiências e abrindo novas avenidas de monetização. A stack é Next.js com React, tRPC, Drizzle ORM, Supabase, Vercel, LangChain, e um vetor database como Pinecone/Weaviate/Qdrant, tudo monetizado via Stripe. O design é minimalista e dark-first.
2. Arquitetura Recomendada
A arquitetura do MemóriaIA Pro é pensada para escalabilidade, performance e uma experiência de desenvolvimento fluida. Usamos uma abordagem "full-stack" com Next.js, aproveitando as Edge Functions da Vercel e a robustez do Supabase para banco de dados e autenticação, e um banco de dados vetorial dedicado para a magia da memória semântica.
Mermaid Error: Lexical error on line 19. Unrecognized text. ...orDB SupabaseDB --|Storage| Supabase ----------------------^
Show Code
graph TD
User[Usuário Final] -->|Requisição HTTP| VercelCDN(Vercel CDN)
VercelCDN -->|Static Assets / Edge Functions| NextJSApp(Next.js App)
NextJSApp -->|tRPC API Calls| NextJSApi(Next.js API Routes / Edge Functions)
subgraph Backend Services
NextJSApi --> SupabaseAuth(Supabase Auth)
NextJSApi --> SupabaseDB(Supabase PostgreSQL DB - Drizzle ORM)
NextJSApi -->|Embeddings / Retrieval| VectorDB(Pinecone/Weaviate/Qdrant)
NextJSApi -->|Payment Processing| Stripe(Stripe API)
NextJSApi -->|AI Agent Integration| LangChain(LangChain/CrewAI)
end
subgraph External Integrations
LangChain --> LLM(OpenAI/Anthropic/Google LLM)
end
SupabaseDB --|Webhooks| VectorDB
SupabaseDB --|Storage| SupabaseStorage(Supabase Storage)
style User fill:#f9f,stroke:#333,stroke-width:2px
style VercelCDN fill:#bbf,stroke:#333,stroke-width:2px
style NextJSApp fill:#dfd,stroke:#333,stroke-width:2px
style NextJSApi fill:#dfd,stroke:#333,stroke-width:2px
style SupabaseAuth fill:#ccf,stroke:#333,stroke-width:2px
style SupabaseDB fill:#ccf,stroke:#333,stroke-width:2px
style VectorDB fill:#ffc,stroke:#333,stroke-width:2px
style Stripe fill:#fcf,stroke:#333,stroke-width:2px
style LangChain fill:#ddf,stroke:#333,stroke-width:2px
style LLM fill:#eef,stroke:#333,stroke-width:2px
style SupabaseStorage fill:#ccf,stroke:#333,stroke-width:2px
3. Prompts Mestre por Categoria
Aqui é onde a mágica acontece. Prompts cirúrgicos para cada pedaço do nosso SaaS, prontos para serem jogados em qualquer IA de código.
🏗️ Prompts de Arquitetura & Backend
Estes prompts focam na espinha dorsal do MemóriaIA Pro: banco de dados, APIs, autenticação e a integração com os bancos de dados vetoriais.
Prompt 1: Esquema do Banco de Dados com Drizzle ORM
Você é um engenheiro de backend sênior com expertise em Drizzle ORM e Supabase.
**Contexto:** Estamos construindo o MemóriaIA Pro, um SaaS para memória de longo prazo de agentes de IA. Precisamos modelar usuários, workspaces (para isolar dados de diferentes agentes/empresas), agentes (as IAs que usarão a memória), e os "memories" (os dados contextuais armazenados).
**Tarefa:** Crie o esquema completo do banco de dados usando Drizzle ORM para PostgreSQL, incluindo as definições de tabelas, colunas, tipos de dados, relacionamentos (foreign keys) e índices essenciais para performance.
**Requisitos:**
1. Tabelas: `users`, `workspaces`, `agents`, `memories`.
2. `users`: ID (UUID), email (único), nome, avatar_url, created_at, updated_at. Integrar com Supabase Auth.
3. `workspaces`: ID (UUID), nome, slug (único, gerado do nome), user_id (FK para users), created_at, updated_at.
4. `agents`: ID (UUID), nome, description, workspace_id (FK para workspaces), api_key (única, para autenticação do agente), created_at, updated_at.
5. `memories`: ID (UUID), agent_id (FK para agents), content (TEXT, o texto original da memória), embedding_id (UUID, referência ao ID no banco vetorial), metadata (JSONB, para dados adicionais como timestamp, source, etc.), created_at.
6. Todos os IDs devem ser UUIDs gerados por padrão.
7. `created_at` e `updated_at` devem ter timestamps padrão e serem atualizados automaticamente.
8. Inclua índices para `email` em `users`, `slug` em `workspaces`, `api_key` em `agents`, e `agent_id` em `memories` para otimização de consultas.
**Formato de Saída:** Código TypeScript para o `schema.ts` do Drizzle ORM.
Você é um engenheiro de backend sênior com expertise em Drizzle ORM e Supabase.
**Contexto:** Estamos construindo o MemóriaIA Pro, um SaaS para memória de longo prazo de agentes de IA. Precisamos modelar usuários, workspaces (para isolar dados de diferentes agentes/empresas), agentes (as IAs que usarão a memória), e os "memories" (os dados contextuais armazenados).
**Tarefa:** Crie o esquema completo do banco de dados usando Drizzle ORM para PostgreSQL, incluindo as definições de tabelas, colunas, tipos de dados, relacionamentos (foreign keys) e índices essenciais para performance.
**Requisitos:**
1. Tabelas: `users`, `workspaces`, `agents`, `memories`.
2. `users`: ID (UUID), email (único), nome, avatar_url, created_at, updated_at. Integrar com Supabase Auth.
3. `workspaces`: ID (UUID), nome, slug (único, gerado do nome), user_id (FK para users), created_at, updated_at.
4. `agents`: ID (UUID), nome, description, workspace_id (FK para workspaces), api_key (única, para autenticação do agente), created_at, updated_at.
5. `memories`: ID (UUID), agent_id (FK para agents), content (TEXT, o texto original da memória), embedding_id (UUID, referência ao ID no banco vetorial), metadata (JSONB, para dados adicionais como timestamp, source, etc.), created_at.
6. Todos os IDs devem ser UUIDs gerados por padrão.
7. `created_at` e `updated_at` devem ter timestamps padrão e serem atualizados automaticamente.
8. Inclua índices para `email` em `users`, `slug` em `workspaces`, `api_key` em `agents`, e `agent_id` em `memories` para otimização de consultas.
**Formato de Saída:** Código TypeScript para o `schema.ts` do Drizzle ORM.
Prompt 2: API de Autenticação e Gerenciamento de Agentes (tRPC)
Você é um desenvolvedor full-stack expert em Next.js e tRPC.
**Contexto:** O MemóriaIA Pro precisa de endpoints para autenticação de usuários (via Supabase Auth) e para que os usuários possam criar e gerenciar seus agentes de IA.
**Tarefa:** Implemente um router tRPC para gerenciamento de agentes.
**Funcionalidades:**
1. `createAgent`: Cria um novo agente associado ao workspace do usuário autenticado. Deve gerar uma `api_key` única e segura (ex: UUID v4 + token aleatório).
2. `getAgents`: Retorna todos os agentes de um workspace específico do usuário autenticado.
3. `getAgentById`: Retorna detalhes de um agente específico.
4. `updateAgent`: Atualiza nome/descrição de um agente.
5. `deleteAgent`: Deleta um agente e, crucialmente, deve disparar um evento para limpar as memórias associadas no banco vetorial.
**Restrições:**
- Todos os endpoints devem ser protegidos por autenticação de usuário (via Supabase Auth).
- A `api_key` deve ser gerada no backend e retornada APENAS na criação do agente (para segurança).
- Use o esquema Drizzle definido anteriormente.
**Formato de Saída:** Código TypeScript para um arquivo `agent.ts` dentro do diretório `server/routers` do tRPC, incluindo os tipos de input e output.
Você é um desenvolvedor full-stack expert em Next.js e tRPC.
**Contexto:** O MemóriaIA Pro precisa de endpoints para autenticação de usuários (via Supabase Auth) e para que os usuários possam criar e gerenciar seus agentes de IA.
**Tarefa:** Implemente um router tRPC para gerenciamento de agentes.
**Funcionalidades:**
1. `createAgent`: Cria um novo agente associado ao workspace do usuário autenticado. Deve gerar uma `api_key` única e segura (ex: UUID v4 + token aleatório).
2. `getAgents`: Retorna todos os agentes de um workspace específico do usuário autenticado.
3. `getAgentById`: Retorna detalhes de um agente específico.
4. `updateAgent`: Atualiza nome/descrição de um agente.
5. `deleteAgent`: Deleta um agente e, crucialmente, deve disparar um evento para limpar as memórias associadas no banco vetorial.
**Restrições:**
- Todos os endpoints devem ser protegidos por autenticação de usuário (via Supabase Auth).
- A `api_key` deve ser gerada no backend e retornada APENAS na criação do agente (para segurança).
- Use o esquema Drizzle definido anteriormente.
**Formato de Saída:** Código TypeScript para um arquivo `agent.ts` dentro do diretório `server/routers` do tRPC, incluindo os tipos de input e output.
Prompt 3: Serviço de Memória para Agentes (API Externa)
Você é um engenheiro de backend com experiência em APIs RESTful e bancos de dados vetoriais.
**Contexto:** Agentes de IA externos (via LangChain/CrewAI) precisarão interagir com o MemóriaIA Pro para armazenar e recuperar memórias. Esta API precisa ser robusta e segura.
**Tarefa:** Crie um router tRPC (ou um conjunto de Edge Functions RESTful) para o serviço de memória.
**Funcionalidades:**
1. `addMemory`: Recebe `agent_id`, `content` (texto da memória) e `metadata`. Gera o embedding do `content`, armazena no banco vetorial (Pinecone/Weaviate/Qdrant) e salva a referência (`embedding_id`) no Supabase.
2. `retrieveMemories`: Recebe `agent_id`, `query` (texto da consulta) e `k` (número de resultados). Gera o embedding da `query`, consulta o banco vetorial para os `k` vizinhos mais próximos, e retorna o `content` original e `metadata` do Supabase.
3. `deleteAgentMemories`: Deleta todas as memórias associadas a um `agent_id` tanto no Supabase quanto no banco vetorial.
**Restrições:**
- Todos os endpoints devem ser autenticados usando a `api_key` do agente (header `Authorization: Bearer <api_key>`).
- A integração com o banco vetorial deve ser abstrata (ex: interface `VectorDBService`).
- Use um modelo de embeddings (ex: OpenAI `text-embedding-ada-002`) para gerar os vetores.
**Formato de Saída:** Código TypeScript para um arquivo `memory.ts` dentro do diretório `server/routers` do tRPC, incluindo uma interface `VectorDBService` e a implementação dos endpoints.
Você é um engenheiro de backend com experiência em APIs RESTful e bancos de dados vetoriais.
**Contexto:** Agentes de IA externos (via LangChain/CrewAI) precisarão interagir com o MemóriaIA Pro para armazenar e recuperar memórias. Esta API precisa ser robusta e segura.
**Tarefa:** Crie um router tRPC (ou um conjunto de Edge Functions RESTful) para o serviço de memória.
**Funcionalidades:**
1. `addMemory`: Recebe `agent_id`, `content` (texto da memória) e `metadata`. Gera o embedding do `content`, armazena no banco vetorial (Pinecone/Weaviate/Qdrant) e salva a referência (`embedding_id`) no Supabase.
2. `retrieveMemories`: Recebe `agent_id`, `query` (texto da consulta) e `k` (número de resultados). Gera o embedding da `query`, consulta o banco vetorial para os `k` vizinhos mais próximos, e retorna o `content` original e `metadata` do Supabase.
3. `deleteAgentMemories`: Deleta todas as memórias associadas a um `agent_id` tanto no Supabase quanto no banco vetorial.
**Restrições:**
- Todos os endpoints devem ser autenticados usando a `api_key` do agente (header `Authorization: Bearer <api_key>`).
- A integração com o banco vetorial deve ser abstrata (ex: interface `VectorDBService`).
- Use um modelo de embeddings (ex: OpenAI `text-embedding-ada-002`) para gerar os vetores.
**Formato de Saída:** Código TypeScript para um arquivo `memory.ts` dentro do diretório `server/routers` do tRPC, incluindo uma interface `VectorDBService` e a implementação dos endpoints.
🎨 Prompts de Frontend & Design
Aqui, a gente foca na experiência do usuário: componentes reutilizáveis, layouts responsivos e um design minimalista dark que é a cara do Zé Mané.
Prompt 1: Componente AgentCard com shadcn/ui
Você é um engenheiro de frontend com maestria em React, Next.js, Tailwind CSS e shadcn/ui.
**Contexto:** No dashboard do MemóriaIA Pro, os usuários precisam visualizar e interagir com seus agentes de IA.
**Tarefa:** Crie um componente React `AgentCard` que exiba as informações de um agente.
**Requisitos:**
- Utilize componentes do shadcn/ui (Card, Button, Badge, DropdownMenu).
- Exiba: Nome do Agente, Descrição, Data de Criação.
- Inclua um botão "Copy API Key" que copie a chave para a área de transferência (usando `navigator.clipboard`).
- Inclua um `DropdownMenu` com opções "Editar" e "Deletar" (que disparam funções de callback).
- O design deve seguir o estilo minimalista dark-first.
**Formato de Saída:** Código TypeScript/TSX para o componente `AgentCard.tsx` e um exemplo de uso.
Você é um engenheiro de frontend com maestria em React, Next.js, Tailwind CSS e shadcn/ui.
**Contexto:** No dashboard do MemóriaIA Pro, os usuários precisam visualizar e interagir com seus agentes de IA.
**Tarefa:** Crie um componente React `AgentCard` que exiba as informações de um agente.
**Requisitos:**
- Utilize componentes do shadcn/ui (Card, Button, Badge, DropdownMenu).
- Exiba: Nome do Agente, Descrição, Data de Criação.
- Inclua um botão "Copy API Key" que copie a chave para a área de transferência (usando `navigator.clipboard`).
- Inclua um `DropdownMenu` com opções "Editar" e "Deletar" (que disparam funções de callback).
- O design deve seguir o estilo minimalista dark-first.
**Formato de Saída:** Código TypeScript/TSX para o componente `AgentCard.tsx` e um exemplo de uso.
Prompt 2: Layout de Dashboard Responsivo (Next.js)
Você é um desenvolvedor frontend com profundo conhecimento em Next.js, Tailwind CSS e design responsivo.
**Contexto:** Precisamos de um layout base para o dashboard do MemóriaIA Pro, onde os usuários gerenciarão seus workspaces e agentes.
**Tarefa:** Crie um componente `DashboardLayout` para Next.js.
**Requisitos:**
- Header fixo com o logo do MemóriaIA Pro, nome do usuário e um `DropdownMenu` (shadcn/ui) para "Logout" e "Configurações".
- Sidebar responsiva (oculta em mobile, slide-in/out) com navegação para "Meus Agentes", "Workspaces", "Faturamento".
- Área de conteúdo principal para renderizar o `children`.
- Design dark-first e responsivo para mobile, tablet e desktop.
- Use CSS custom properties ou variáveis do Tailwind para cores.
**Formato de Saída:** Código TypeScript/TSX para `DashboardLayout.tsx` e um exemplo de como usá-lo em uma página Next.js.
Você é um desenvolvedor frontend com profundo conhecimento em Next.js, Tailwind CSS e design responsivo.
**Contexto:** Precisamos de um layout base para o dashboard do MemóriaIA Pro, onde os usuários gerenciarão seus workspaces e agentes.
**Tarefa:** Crie um componente `DashboardLayout` para Next.js.
**Requisitos:**
- Header fixo com o logo do MemóriaIA Pro, nome do usuário e um `DropdownMenu` (shadcn/ui) para "Logout" e "Configurações".
- Sidebar responsiva (oculta em mobile, slide-in/out) com navegação para "Meus Agentes", "Workspaces", "Faturamento".
- Área de conteúdo principal para renderizar o `children`.
- Design dark-first e responsivo para mobile, tablet e desktop.
- Use CSS custom properties ou variáveis do Tailwind para cores.
**Formato de Saída:** Código TypeScript/TSX para `DashboardLayout.tsx` e um exemplo de como usá-lo em uma página Next.js.
Prompt 3: Formulário de Criação de Agente (React Hook Form + Zod)
Você é um especialista em React, validação de formulários e UX.
**Contexto:** Para criar um novo agente, o usuário precisa preencher um formulário com nome e descrição.
**Tarefa:** Crie um componente de formulário `CreateAgentForm` usando React Hook Form e Zod para validação.
**Requisitos:**
- Campos: `name` (texto, obrigatório, min 3 chars, max 50), `description` (textarea, opcional, max 200 chars).
- Utilize componentes de formulário do shadcn/ui (Input, Textarea, Button, Label).
- Validação em tempo real com Zod.
- Exiba mensagens de erro claras abaixo dos campos.
- Botão "Criar Agente" que fica desabilitado se o formulário for inválido ou estiver submetendo.
- O formulário deve aceitar uma prop `onSubmit` que recebe os dados validados.
- Design minimalista dark.
**Formato de Saída:** Código TypeScript/TSX para `CreateAgentForm.tsx`, incluindo o schema Zod e um exemplo de como integrar com o tRPC.
Você é um especialista em React, validação de formulários e UX.
**Contexto:** Para criar um novo agente, o usuário precisa preencher um formulário com nome e descrição.
**Tarefa:** Crie um componente de formulário `CreateAgentForm` usando React Hook Form e Zod para validação.
**Requisitos:**
- Campos: `name` (texto, obrigatório, min 3 chars, max 50), `description` (textarea, opcional, max 200 chars).
- Utilize componentes de formulário do shadcn/ui (Input, Textarea, Button, Label).
- Validação em tempo real com Zod.
- Exiba mensagens de erro claras abaixo dos campos.
- Botão "Criar Agente" que fica desabilitado se o formulário for inválido ou estiver submetendo.
- O formulário deve aceitar uma prop `onSubmit` que recebe os dados validados.
- Design minimalista dark.
**Formato de Saída:** Código TypeScript/TSX para `CreateAgentForm.tsx`, incluindo o schema Zod e um exemplo de como integrar com o tRPC.
🔍 Prompts de SEO & Schema.org
Para que o MemóriaIA Pro seja encontrado, precisamos de um SEO técnico impecável, com foco em dados estruturados e performance.
Prompt 1: Otimização de Meta Tags e Open Graph para Next.js
Você é um especialista em SEO técnico e Next.js App Router.
**Contexto:** A página inicial do MemóriaIA Pro precisa ser otimizada para buscadores e compartilhamento em redes sociais.
**Tarefa:** Crie o arquivo `metadata.ts` para a página inicial (`/app/page.tsx`) do Next.js 14+.
**Requisitos:**
- `title`: "MemóriaIA Pro | Memória de Longo Prazo para Agentes de IA"
- `description`: "SaaS plug-and-play para dar memória contextual e de longo prazo a agentes de IA. Integre com LangChain, CrewAI e personalize a experiência do seu chatbot."
- `keywords`: "memória IA, agentes IA, LangChain, CrewAI, memória de longo prazo, IA conversacional, SaaS IA, Pinecone, Weaviate, Qdrant"
- `openGraph`: Título, descrição, URL (ex: `https://memoriaia.pro`), tipo (`website`), imagem (ex: `https://memoriaia.pro/og-image.jpg`).
- `twitter`: Card (`summary_large_image`), título, descrição, imagem, handle (`@MemoriaIAPro`).
- `alternates`: Canonical URL.
**Formato de Saída:** Código TypeScript para o arquivo `metadata.ts` no App Router do Next.js.
Você é um especialista em SEO técnico e Next.js App Router.
**Contexto:** A página inicial do MemóriaIA Pro precisa ser otimizada para buscadores e compartilhamento em redes sociais.
**Tarefa:** Crie o arquivo `metadata.ts` para a página inicial (`/app/page.tsx`) do Next.js 14+.
**Requisitos:**
- `title`: "MemóriaIA Pro | Memória de Longo Prazo para Agentes de IA"
- `description`: "SaaS plug-and-play para dar memória contextual e de longo prazo a agentes de IA. Integre com LangChain, CrewAI e personalize a experiência do seu chatbot."
- `keywords`: "memória IA, agentes IA, LangChain, CrewAI, memória de longo prazo, IA conversacional, SaaS IA, Pinecone, Weaviate, Qdrant"
- `openGraph`: Título, descrição, URL (ex: `https://memoriaia.pro`), tipo (`website`), imagem (ex: `https://memoriaia.pro/og-image.jpg`).
- `twitter`: Card (`summary_large_image`), título, descrição, imagem, handle (`@MemoriaIAPro`).
- `alternates`: Canonical URL.
**Formato de Saída:** Código TypeScript para o arquivo `metadata.ts` no App Router do Next.js.
Prompt 2: Schema.org para Produto SaaS
Você é um guru de Schema.org e dados estruturados, focado em rich snippets.
**Contexto:** Queremos que o MemóriaIA Pro apareça com rich snippets nos resultados de busca, destacando-o como um produto de software.
**Tarefa:** Crie o JSON-LD para a página inicial do MemóriaIA Pro, utilizando o tipo `SoftwareApplication` e `Product`.
**Requisitos:**
- `@context`: `https://schema.org`
- `@type`: `SoftwareApplication` e `Product`.
- `name`: "MemóriaIA Pro"
- `description`: "SaaS plug-and-play para dar memória contextual e de longo prazo a agentes de IA. Integre com LangChain, CrewAI e personalize a experiência do seu chatbot."
- `operatingSystem`: "Web, Cloud"
- `applicationCategory`: "DeveloperApplication"
- `offers`: `Offer` com `priceCurrency` ("USD"), `price` ("0" para freemium ou plano inicial), `availability` (`InStock`).
- `aggregateRating`: (Opcional, se houver avaliações) `AggregateRating` com `ratingValue` e `reviewCount`.
- `url`: `https://memoriaia.pro`
- `logo`: `https://memoriaia.pro/logo.png`
- `screenshot`: `https://memoriaia.pro/screenshot.jpg`
**Formato de Saída:** Bloco de código JSON-LD para ser inserido no `<head>` da página.
Você é um guru de Schema.org e dados estruturados, focado em rich snippets.
**Contexto:** Queremos que o MemóriaIA Pro apareça com rich snippets nos resultados de busca, destacando-o como um produto de software.
**Tarefa:** Crie o JSON-LD para a página inicial do MemóriaIA Pro, utilizando o tipo `SoftwareApplication` e `Product`.
**Requisitos:**
- `@context`: `https://schema.org`
- `@type`: `SoftwareApplication` e `Product`.
- `name`: "MemóriaIA Pro"
- `description`: "SaaS plug-and-play para dar memória contextual e de longo prazo a agentes de IA. Integre com LangChain, CrewAI e personalize a experiência do seu chatbot."
- `operatingSystem`: "Web, Cloud"
- `applicationCategory`: "DeveloperApplication"
- `offers`: `Offer` com `priceCurrency` ("USD"), `price` ("0" para freemium ou plano inicial), `availability` (`InStock`).
- `aggregateRating`: (Opcional, se houver avaliações) `AggregateRating` com `ratingValue` e `reviewCount`.
- `url`: `https://memoriaia.pro`
- `logo`: `https://memoriaia.pro/logo.png`
- `screenshot`: `https://memoriaia.pro/screenshot.jpg`
**Formato de Saída:** Bloco de código JSON-LD para ser inserido no `<head>` da página.
Prompt 3: Sitemap XML Dinâmico com Next.js
Você é um especialista em SEO técnico e Next.js.
**Contexto:** Precisamos de um sitemap XML dinâmico para garantir que todas as páginas do MemóriaIA Pro sejam indexadas corretamente, incluindo as páginas de agentes e workspaces (se forem públicas).
**Tarefa:** Crie o arquivo `sitemap.ts` para o App Router do Next.js.
**Requisitos:**
- Inclua a página inicial (`/`).
- Inclua páginas estáticas como `/about`, `/pricing`, `/contact`.
- **Importante:** Se houver workspaces ou agentes públicos (ex: landing pages para agentes), inclua-os dinamicamente (simulando a busca no banco de dados). Para este prompt, simule com dados mock.
- Defina `changeFrequency` e `priority` para cada tipo de URL.
**Formato de Saída:** Código TypeScript para o arquivo `sitemap.ts` no diretório `app` do Next.js.
Você é um especialista em SEO técnico e Next.js.
**Contexto:** Precisamos de um sitemap XML dinâmico para garantir que todas as páginas do MemóriaIA Pro sejam indexadas corretamente, incluindo as páginas de agentes e workspaces (se forem públicas).
**Tarefa:** Crie o arquivo `sitemap.ts` para o App Router do Next.js.
**Requisitos:**
- Inclua a página inicial (`/`).
- Inclua páginas estáticas como `/about`, `/pricing`, `/contact`.
- **Importante:** Se houver workspaces ou agentes públicos (ex: landing pages para agentes), inclua-os dinamicamente (simulando a busca no banco de dados). Para este prompt, simule com dados mock.
- Defina `changeFrequency` e `priority` para cada tipo de URL.
**Formato de Saída:** Código TypeScript para o arquivo `sitemap.ts` no diretório `app` do Next.js.
⚡ Prompts de Performance & Core Web Vitals
A performance é crucial para a experiência do usuário e ranqueamento. Vamos focar em otimizações que impactam diretamente as Core Web Vitals.
Prompt 1: Otimização de Imagens com Next.js Image Component
Você é um engenheiro de performance web com foco em Next.js e Core Web Vitals.
**Contexto:** A landing page do MemóriaIA Pro terá várias imagens (hero image, logos de integração, screenshots). Precisamos garantir que elas carreguem de forma otimizada.
**Tarefa:** Crie um exemplo de uso do componente `next/image` para uma hero image e alguns logos de parceiros.
**Requisitos:**
- Hero image: `priority`, `fill` ou `width`/`height` explícitos, `alt` descritivo.
- Logos de parceiros: `width`/`height` explícitos, `loading="lazy"`.
- Utilize formatos modernos como WebP ou AVIF (simule com `.webp` ou `.avif`).
- Garanta que não haja CLS (Cumulative Layout Shift) devido às imagens.
**Formato de Saída:** Snippet de código TSX para uma seção de uma página Next.js, demonstrando o uso correto de `next/image`.
Você é um engenheiro de performance web com foco em Next.js e Core Web Vitals.
**Contexto:** A landing page do MemóriaIA Pro terá várias imagens (hero image, logos de integração, screenshots). Precisamos garantir que elas carreguem de forma otimizada.
**Tarefa:** Crie um exemplo de uso do componente `next/image` para uma hero image e alguns logos de parceiros.
**Requisitos:**
- Hero image: `priority`, `fill` ou `width`/`height` explícitos, `alt` descritivo.
- Logos de parceiros: `width`/`height` explícitos, `loading="lazy"`.
- Utilize formatos modernos como WebP ou AVIF (simule com `.webp` ou `.avif`).
- Garanta que não haja CLS (Cumulative Layout Shift) devido às imagens.
**Formato de Saída:** Snippet de código TSX para uma seção de uma página Next.js, demonstrando o uso correto de `next/image`.
Prompt 2: Carregamento de Fontes Otimizado (Next.js Font)
Você é um especialista em performance de frontend, com foco em otimização de fontes e LCP.
**Contexto:** O MemóriaIA Pro usará uma fonte customizada para branding (ex: Inter). Precisamos carregá-la de forma eficiente para evitar FOUT/FOIT e melhorar o LCP.
**Tarefa:** Demonstre como carregar a fonte Inter usando `next/font/google` e aplicá-la globalmente.
**Requisitos:**
- Use `next/font/google` para carregar a fonte Inter.
- Configure `display: 'swap'` ou `display: 'optional'` para um bom comportamento de carregamento.
- Aplique a fonte à tag `<body>` globalmente via Tailwind CSS.
- Gere variáveis CSS personalizadas para a fonte principal.
**Formato de Saída:** Código TypeScript/CSS para `layout.tsx` e `globals.css` do Next.js App Router.
Você é um especialista em performance de frontend, com foco em otimização de fontes e LCP.
**Contexto:** O MemóriaIA Pro usará uma fonte customizada para branding (ex: Inter). Precisamos carregá-la de forma eficiente para evitar FOUT/FOIT e melhorar o LCP.
**Tarefa:** Demonstre como carregar a fonte Inter usando `next/font/google` e aplicá-la globalmente.
**Requisitos:**
- Use `next/font/google` para carregar a fonte Inter.
- Configure `display: 'swap'` ou `display: 'optional'` para um bom comportamento de carregamento.
- Aplique a fonte à tag `<body>` globalmente via Tailwind CSS.
- Gere variáveis CSS personalizadas para a fonte principal.
**Formato de Saída:** Código TypeScript/CSS para `layout.tsx` e `globals.css` do Next.js App Router.
Prompt 3: Critical CSS e Bundle Splitting para LCP
Você é um ninja de performance frontend, focado em LCP e otimização de bundle.
**Contexto:** Queremos garantir que o conteúdo acima do fold da landing page do MemóriaIA Pro seja renderizado o mais rápido possível.
**Tarefa:** Explique e demonstre como o Next.js lida com Critical CSS e Bundle Splitting automaticamente, e como podemos reforçar isso para um LCP excelente.
**Requisitos:**
- Explique o conceito de Critical CSS e como o Next.js/Vercel o otimiza.
- Explique o Bundle Splitting automático do Next.js para componentes e rotas.
- Sugira uma estratégia para componentes grandes que só aparecem abaixo do fold (ex: `dynamic` com `ssr: false`).
- Forneça um snippet de código para um componente que seria lazy-loaded.
**Formato de Saída:** Texto explicativo com um snippet de código TSX para lazy loading de um componente.
Você é um ninja de performance frontend, focado em LCP e otimização de bundle.
**Contexto:** Queremos garantir que o conteúdo acima do fold da landing page do MemóriaIA Pro seja renderizado o mais rápido possível.
**Tarefa:** Explique e demonstre como o Next.js lida com Critical CSS e Bundle Splitting automaticamente, e como podemos reforçar isso para um LCP excelente.
**Requisitos:**
- Explique o conceito de Critical CSS e como o Next.js/Vercel o otimiza.
- Explique o Bundle Splitting automático do Next.js para componentes e rotas.
- Sugira uma estratégia para componentes grandes que só aparecem abaixo do fold (ex: `dynamic` com `ssr: false`).
- Forneça um snippet de código para um componente que seria lazy-loaded.
**Formato de Saída:** Texto explicativo com um snippet de código TSX para lazy loading de um componente.
🚀 Prompts de Deploy & DevOps
Deploy contínuo, edge functions e monitoramento são a chave para um SaaS robusto e sempre online.
Prompt 1: Configuração de CI/CD para Vercel
Você é um engenheiro de DevOps com experiência em Vercel e GitHub Actions.
**Contexto:** O MemóriaIA Pro precisa de um pipeline de CI/CD automatizado para deploy contínuo na Vercel a cada push no `main`.
**Tarefa:** Crie um arquivo de GitHub Actions (`.yml`) para deploy na Vercel.
**Requisitos:**
- Trigger em `push` para o branch `main`.
- Instalação de dependências (`npm ci`).
- Build do projeto Next.js.
- Deploy para a Vercel usando o `vercel-action`.
- Variáveis de ambiente seguras para o token da Vercel e ID do projeto/org.
- Inclua um passo para rodar testes (simule com um comando `npm test`).
**Formato de Saída:** Código YAML para o arquivo `.github/workflows/deploy.yml`.
Você é um engenheiro de DevOps com experiência em Vercel e GitHub Actions.
**Contexto:** O MemóriaIA Pro precisa de um pipeline de CI/CD automatizado para deploy contínuo na Vercel a cada push no `main`.
**Tarefa:** Crie um arquivo de GitHub Actions (`.yml`) para deploy na Vercel.
**Requisitos:**
- Trigger em `push` para o branch `main`.
- Instalação de dependências (`npm ci`).
- Build do projeto Next.js.
- Deploy para a Vercel usando o `vercel-action`.
- Variáveis de ambiente seguras para o token da Vercel e ID do projeto/org.
- Inclua um passo para rodar testes (simule com um comando `npm test`).
**Formato de Saída:** Código YAML para o arquivo `.github/workflows/deploy.yml`.
Prompt 2: Monitoramento de Performance e Erros (Vercel Analytics + Sentry)
Você é um especialista em monitoramento de aplicações web e observabilidade.
**Contexto:** Precisamos monitorar a performance do MemóriaIA Pro (Core Web Vitals) e capturar erros em produção para garantir a estabilidade.
**Tarefa:** Explique como configurar Vercel Analytics e Sentry para o MemóriaIA Pro.
**Requisitos:**
- **Vercel Analytics:** Explique como habilitar e o que ele monitora (Core Web Vitals, page views, etc.).
- **Sentry:**
- Explique a integração com Next.js (via `@sentry/nextjs`).
- Forneça snippets de código para inicialização do Sentry no frontend (`sentry.client.config.ts`) e backend (`sentry.server.config.ts`).
- Demonstre como capturar um erro manualmente.
- Foco em como essas ferramentas ajudam a manter as Core Web Vitals sob controle.
**Formato de Saída:** Texto explicativo com snippets de código TypeScript para Sentry.
Você é um especialista em monitoramento de aplicações web e observabilidade.
**Contexto:** Precisamos monitorar a performance do MemóriaIA Pro (Core Web Vitals) e capturar erros em produção para garantir a estabilidade.
**Tarefa:** Explique como configurar Vercel Analytics e Sentry para o MemóriaIA Pro.
**Requisitos:**
- **Vercel Analytics:** Explique como habilitar e o que ele monitora (Core Web Vitals, page views, etc.).
- **Sentry:**
- Explique a integração com Next.js (via `@sentry/nextjs`).
- Forneça snippets de código para inicialização do Sentry no frontend (`sentry.client.config.ts`) e backend (`sentry.server.config.ts`).
- Demonstre como capturar um erro manualmente.
- Foco em como essas ferramentas ajudam a manter as Core Web Vitals sob controle.
**Formato de Saída:** Texto explicativo com snippets de código TypeScript para Sentry.
Prompt 3: Configuração de Edge Functions para API de Memória
Você é um arquiteto de software com expertise em Edge Functions e performance de API.
**Contexto:** A API de memória do MemóriaIA Pro (addMemory, retrieveMemories) precisa ser extremamente rápida e distribuída globalmente.
**Tarefa:** Explique como as Edge Functions da Vercel são ideais para a API de memória e como configurá-las.
**Requisitos:**
- Explique o benefício das Edge Functions (baixa latência, execução próxima ao usuário).
- Descreva como o Next.js automaticamente transforma API Routes em Edge Functions se `runtime: 'edge'` for especificado.
- Forneça um snippet de código de uma API Route de memória que utilize o runtime `edge`.
- Mencione as limitações (ex: acesso a alguns Node.js APIs).
**Formato de Saída:** Texto explicativo com um snippet de código TypeScript para uma Edge Function no Next.js.
Você é um arquiteto de software com expertise em Edge Functions e performance de API.
**Contexto:** A API de memória do MemóriaIA Pro (addMemory, retrieveMemories) precisa ser extremamente rápida e distribuída globalmente.
**Tarefa:** Explique como as Edge Functions da Vercel são ideais para a API de memória e como configurá-las.
**Requisitos:**
- Explique o benefício das Edge Functions (baixa latência, execução próxima ao usuário).
- Descreva como o Next.js automaticamente transforma API Routes em Edge Functions se `runtime: 'edge'` for especificado.
- Forneça um snippet de código de uma API Route de memória que utilize o runtime `edge`.
- Mencione as limitações (ex: acesso a alguns Node.js APIs).
**Formato de Saída:** Texto explicativo com um snippet de código TypeScript para uma Edge Function no Next.js.
4. Prompt Único Completo
Este é o mega-prompt. Jogue isso em um GPT-4 ou Claude 3 Opus e veja a mágica acontecer. Ele abrange a visão completa do MemóriaIA Pro.
Você é um arquiteto de software full-stack, especialista em SaaS, Next.js 14+, tRPC, Drizzle ORM, Supabase, Vercel, LangChain, bancos de dados vetoriais (Pinecone/Weaviate/Qdrant), Stripe, shadcn/ui e SEO avançado.
**Contexto do Projeto:**
Construa o MVP do "MemóriaIA Pro", um SaaS plug-and-play que fornece memória de longo prazo e contextual para agentes de IA.
- **Problema Resolvido:** Agentes de IA com memória de curto prazo.
- **Público-alvo:** Desenvolvedores e empresas que constroem agentes de IA.
- **Features Core:**
1. **Gerenciamento de Agentes:** CRUD para agentes de IA (nome, descrição, API Key).
2. **API de Memória:** Endpoints para `addMemory` (texto -> embedding -> vetor DB + Supabase) e `retrieveMemories` (query -> embedding -> vetor DB -> Supabase).
3. **Autenticação:** Usuário (Supabase Auth) e Agente (API Key).
4. **Monetização:** Integração com Stripe para planos de assinatura (simples, ex: Free, Pro).
5. **Dashboard:** Interface para usuários gerenciarem workspaces, agentes e visualizar uso.
6. **Design:** Minimalista, dark-first, responsivo.
- **Tecnologias Obrigatórias:** Next.js 14+ (App Router), React, tRPC, Drizzle ORM, Supabase (Auth, DB, Storage), Vercel, LangChain (para embeddings), Pinecone/Weaviate/Qdrant (escolha um para o exemplo), Stripe. Tailwind CSS, shadcn/ui.
**Tarefa:**
Gere um conjunto completo de arquivos e instruções para construir o MVP do MemóriaIA Pro, seguindo a estrutura de um projeto Next.js.
**Estrutura da Saída:**
1. **`README.md`**: Descrição do projeto, como configurar o ambiente, variáveis de ambiente necessárias (`.env.local`), como rodar o projeto.
2. **`package.json`**: Dependências essenciais.
3. **`drizzle/schema.ts`**: Esquema completo do banco de dados (users, workspaces, agents, memories) usando Drizzle ORM para PostgreSQL.
4. **`lib/supabase.ts`**: Configuração do cliente Supabase.
5. **`lib/vector-db.ts`**: Interface para `VectorDBService` (add, retrieve, delete) e uma implementação mock (ou simplificada) para Pinecone/Weaviate/Qdrant.
6. **`lib/embeddings.ts`**: Função para gerar embeddings usando LangChain e um LLM (ex: OpenAI).
7. **`app/layout.tsx`**: Layout principal com `next/font`, `ThemeProvider` (dark mode) e `SessionProvider` (Supabase).
8. **`app/page.tsx`**: Landing page minimalista com CTA para login/cadastro, descrição do produto, e seções de "Features" e "Integrations". Otimizada para SEO (meta tags).
9. **`app/(dashboard)/layout.tsx`**: Layout do dashboard com sidebar e header (autenticado).
10. **`app/(dashboard)/agents/page.tsx`**: Página para listar e gerenciar agentes (CRUD). Incluir `AgentCard` e `CreateAgentForm`.
11. **`server/trpc/root.ts`**: Root router do tRPC.
12. **`server/trpc/routers/auth.ts`**: Router para autenticação (login, logout, register via Supabase).
13. **`server/trpc/routers/agent.ts`**: Router para CRUD de agentes, incluindo geração de `api_key`.
14. **`server/trpc/routers/memory.ts`**: Router para a API de memória (`addMemory`, `retrieveMemories`, `deleteAgentMemories`), protegida por `api_key`.
15. **`components/ui/*.tsx`**: Componentes do shadcn/ui customizados ou exemplos de uso (ex: `AgentCard`, `CreateAgentForm`).
16. **`app/api/stripe-webhook/route.ts`**: Exemplo de webhook para Stripe (simples, apenas para receber eventos).
17. **`middleware.ts`**: Middleware de autenticação para proteger rotas do dashboard.
18. **`sentry.client.config.ts`, `sentry.server.config.ts`**: Configuração básica do Sentry.
19. **`next.config.js`**: Configurações do Next.js (imagens, Sentry).
**Restrições e Detalhes:**
- Priorize a segurança (API Keys, autenticação).
- Use `async/await` e tratamento de erros adequado.
- Comentários claros no código.
- Design dark-first com Tailwind CSS e shadcn/ui.
- Foco em performance (Next.js Image, Fonts, Edge Functions).
- Para o banco vetorial, use um cliente genérico e simule a interação se uma integração completa for muito complexa para um único prompt.
- A integração com LangChain para embeddings deve ser explícita.
- A monetização via Stripe pode ser um placeholder para o MVP (ex: apenas um botão "Upgrade to Pro").
- Use Zod para validação em todos os endpoints tRPC e formulários.
- As API Keys dos agentes devem ser geradas com criptografia forte e armazenadas de forma segura (ex: hashed no DB, plaintext retornada apenas uma vez).
- A `api_key` do agente deve ser um UUID v4 + um token aleatório de 32 caracteres, hashed com bcrypt antes de salvar no DB.
- As rotas de API de memória (`addMemory`, `retrieveMemories`) devem ser Edge Functions.
Você é um arquiteto de software full-stack, especialista em SaaS, Next.js 14+, tRPC, Drizzle ORM, Supabase, Vercel, LangChain, bancos de dados vetoriais (Pinecone/Weaviate/Qdrant), Stripe, shadcn/ui e SEO avançado.
**Contexto do Projeto:**
Construa o MVP do "MemóriaIA Pro", um SaaS plug-and-play que fornece memória de longo prazo e contextual para agentes de IA.
- **Problema Resolvido:** Agentes de IA com memória de curto prazo.
- **Público-alvo:** Desenvolvedores e empresas que constroem agentes de IA.
- **Features Core:**
1. **Gerenciamento de Agentes:** CRUD para agentes de IA (nome, descrição, API Key).
2. **API de Memória:** Endpoints para `addMemory` (texto -> embedding -> vetor DB + Supabase) e `retrieveMemories` (query -> embedding -> vetor DB -> Supabase).
3. **Autenticação:** Usuário (Supabase Auth) e Agente (API Key).
4. **Monetização:** Integração com Stripe para planos de assinatura (simples, ex: Free, Pro).
5. **Dashboard:** Interface para usuários gerenciarem workspaces, agentes e visualizar uso.
6. **Design:** Minimalista, dark-first, responsivo.
- **Tecnologias Obrigatórias:** Next.js 14+ (App Router), React, tRPC, Drizzle ORM, Supabase (Auth, DB, Storage), Vercel, LangChain (para embeddings), Pinecone/Weaviate/Qdrant (escolha um para o exemplo), Stripe. Tailwind CSS, shadcn/ui.
**Tarefa:**
Gere um conjunto completo de arquivos e instruções para construir o MVP do MemóriaIA Pro, seguindo a estrutura de um projeto Next.js.
**Estrutura da Saída:**
1. **`README.md`**: Descrição do projeto, como configurar o ambiente, variáveis de ambiente necessárias (`.env.local`), como rodar o projeto.
2. **`package.json`**: Dependências essenciais.
3. **`drizzle/schema.ts`**: Esquema completo do banco de dados (users, workspaces, agents, memories) usando Drizzle ORM para PostgreSQL.
4. **`lib/supabase.ts`**: Configuração do cliente Supabase.
5. **`lib/vector-db.ts`**: Interface para `VectorDBService` (add, retrieve, delete) e uma implementação mock (ou simplificada) para Pinecone/Weaviate/Qdrant.
6. **`lib/embeddings.ts`**: Função para gerar embeddings usando LangChain e um LLM (ex: OpenAI).
7. **`app/layout.tsx`**: Layout principal com `next/font`, `ThemeProvider` (dark mode) e `SessionProvider` (Supabase).
8. **`app/page.tsx`**: Landing page minimalista com CTA para login/cadastro, descrição do produto, e seções de "Features" e "Integrations". Otimizada para SEO (meta tags).
9. **`app/(dashboard)/layout.tsx`**: Layout do dashboard com sidebar e header (autenticado).
10. **`app/(dashboard)/agents/page.tsx`**: Página para listar e gerenciar agentes (CRUD). Incluir `AgentCard` e `CreateAgentForm`.
11. **`server/trpc/root.ts`**: Root router do tRPC.
12. **`server/trpc/routers/auth.ts`**: Router para autenticação (login, logout, register via Supabase).
13. **`server/trpc/routers/agent.ts`**: Router para CRUD de agentes, incluindo geração de `api_key`.
14. **`server/trpc/routers/memory.ts`**: Router para a API de memória (`addMemory`, `retrieveMemories`, `deleteAgentMemories`), protegida por `api_key`.
15. **`components/ui/*.tsx`**: Componentes do shadcn/ui customizados ou exemplos de uso (ex: `AgentCard`, `CreateAgentForm`).
16. **`app/api/stripe-webhook/route.ts`**: Exemplo de webhook para Stripe (simples, apenas para receber eventos).
17. **`middleware.ts`**: Middleware de autenticação para proteger rotas do dashboard.
18. **`sentry.client.config.ts`, `sentry.server.config.ts`**: Configuração básica do Sentry.
19. **`next.config.js`**: Configurações do Next.js (imagens, Sentry).
**Restrições e Detalhes:**
- Priorize a segurança (API Keys, autenticação).
- Use `async/await` e tratamento de erros adequado.
- Comentários claros no código.
- Design dark-first com Tailwind CSS e shadcn/ui.
- Foco em performance (Next.js Image, Fonts, Edge Functions).
- Para o banco vetorial, use um cliente genérico e simule a interação se uma integração completa for muito complexa para um único prompt.
- A integração com LangChain para embeddings deve ser explícita.
- A monetização via Stripe pode ser um placeholder para o MVP (ex: apenas um botão "Upgrade to Pro").
- Use Zod para validação em todos os endpoints tRPC e formulários.
- As API Keys dos agentes devem ser geradas com criptografia forte e armazenadas de forma segura (ex: hashed no DB, plaintext retornada apenas uma vez).
- A `api_key` do agente deve ser um UUID v4 + um token aleatório de 32 caracteres, hashed com bcrypt antes de salvar no DB.
- As rotas de API de memória (`addMemory`, `retrieveMemories`) devem ser Edge Functions.
5. Stack Mínima Viável
Para lançar o MemóriaIA Pro em 48 horas, o Zé Mané te entrega a stack enxuta e poderosa:
- Framework: Next.js 14+ (App Router)
- UI Framework: React 19 (ou a versão estável mais recente)
- Styling: Tailwind CSS v4
- Componentes UI: shadcn/ui (com Radix UI por baixo)
- Tipagem/API: tRPC
- Banco de Dados: Supabase (PostgreSQL, Auth, Storage)
- ORM: Drizzle ORM
- Hospedagem/Deploy: Vercel
- Banco de Dados Vetorial: Pinecone (ou Weaviate/Qdrant, dependendo da preferência)
- Embeddings/LLM: LangChain.js (para orquestração e embeddings) com OpenAI API (ou outro LLM)
- Pagamentos: Stripe
- Validação: Zod
Essa combinação garante performance, escalabilidade, experiência de desenvolvimento e um custo-benefício imbatível para um MVP.
6. Checklist de Lançamento
Antes de apertar o botão "Go Live", certifique-se de que cada item deste checklist está ticado. Não quero ver o nome do Zé Mané associado a bugs em produção!
- Configuração de Variáveis de Ambiente: Todas as chaves de API (Supabase, OpenAI, Pinecone, Stripe, Vercel) configuradas corretamente no Vercel.
- Testes de Autenticação: Login, cadastro, logout de usuário e autenticação de agente (via API Key) funcionando perfeitamente.
- Testes de CRUD de Agentes: Criar, ler, atualizar e deletar agentes sem falhas.
- Testes da API de Memória:
addMemoryeretrieveMemoriesfuncionando com o banco vetorial e Supabase. Verifique a relevância dos resultados deretrieveMemories. - Performance: Lighthouse score acima de 90 para LCP, FID/INP e CLS na landing page e dashboard.
- SEO Técnico: Meta tags, Open Graph, JSON-LD e sitemap XML validados e funcionando.
- Responsividade: Teste em diferentes dispositivos (mobile, tablet, desktop) e navegadores.
- Monitoramento: Sentry e Vercel Analytics configurados e reportando dados.
- Segurança: Revisão de políticas de segurança (RLS no Supabase, validação de input, proteção contra XSS/CSRF). API Keys geradas e armazenadas de forma segura.
- Plano de Faturamento (Stripe): Integração básica do Stripe funcionando, mesmo que seja apenas para exibir planos e redirecionar para o checkout.
Com isso, você tem o playbook completo para construir o MemóriaIA Pro. Agora é arregaçar as mangas e codar! Qualquer dúvida, o Zé Mané tá na escuta. Mas duvido que precise, com esses prompts na mão, a IA vai fazer o trabalho pesado.
