E aí, meu povo da tecnologia! Zé Mané na área, e hoje a gente vai desmistificar um problemão que tira o sono de muito CTO por aí: como usar a IA generativa para código sem entregar o ouro da empresa para a nuvem alheia. Chega de papo furado, vamos direto ao ponto com o nosso novo projeto: o CodeGuard AI!
1. O Projeto em 30 Segundos
O CodeGuard AI é a sua fortaleza digital para desenvolvimento de software. Ele resolve o dilema da IA no código, permitindo que desenvolvedores e empresas alavanquem o poder dos Large Language Models (LLMs) para geração, refatoração e otimização de código, tudo isso rodando localmente. Esqueça o envio do seu IP sensível para servidores de terceiros. Com o CodeGuard AI, você mantém seus dados e seu código dentro de casa, garantindo privacidade, segurança e compliance (LGPD, GDPR, HIPAA) enquanto turbina a produtividade. Ele é um agente de programação local, com UI intuitiva, integração com IDEs e foco em performance e segurança.
2. Arquitetura Recomendada
A arquitetura do CodeGuard AI é desenhada para máxima privacidade, performance e escalabilidade, aproveitando o poder do Edge e a robustez de LLMs locais.
Mermaid Error: Parse error on line 2: ... subgraph Cliente (Navegador/IDE) -----------------------^ Expecting 'SEMI', 'NEWLINE', 'SPACE', 'EOF', 'GRAPH', 'DIR', 'subgraph', 'SQS', 'end', 'AMP', 'COLON', 'START_LINK', 'STYLE', 'LINKSTYLE', 'CLASSDEF', 'CLASS', 'CLICK', 'DOWN', 'UP', 'NUM', 'NODE_STRING', 'BRKT', 'MINUS', 'MULT', 'UNICODE_TEXT', got 'PS'
Show Code
graph TD
subgraph Cliente (Navegador/IDE)
A[Interface Web (Next.js/Remix)]
B[Plugin IDE (VS Code/IntelliJ)]
end
subgraph Edge (Vercel Edge Functions/Cloudflare Workers)
C[API Gateway / Proxy]
D[Autenticação (Auth.js/Supabase Auth)]
E[Cache (Redis/Edge Cache)]
end
subgraph Backend (Next.js API Routes/tRPC)
F[Servidor de Aplicação (Node.js)]
G[Gerenciamento de Sessões]
H[Validação de Requisições]
I[Orquestrador de LLM Local]
end
subgraph Banco de Dados (PlanetScale/Supabase DB)
J[Drizzle ORM]
K[Dados de Usuário]
L[Configurações de LLM]
M[Histórico de Interações (Opcional)]
end
subgraph LLM Local (Máquina do Desenvolvedor)
N[Ollama Server]
O[Modelos LLM (Code Llama, Llama 3, etc.)]
P[Agente de Programação Local]
end
subgraph Armazenamento de Arquivos (Cloudflare R2/Vercel Blob)
Q[Binários de Modelos (Opcional)]
R[Logs de Auditoria (Opcional)]
end
A -- Requisições HTTPS --> C
B -- Requisições HTTPS --> C
C -- Autentica & Roteia --> D
D -- Valida Token --> F
F -- Consulta/Persiste --> J
J -- Conecta --> K
F -- Orquestra --> I
I -- Comunica via API/IPC --> N
N -- Carrega --> O
N -- Executa --> P
P -- Interage com --> Código Local (IDE)
F -- Armazena --> Q
F -- Armazena --> R
Explicação Sucinta: O usuário interage com uma interface web ou um plugin de IDE. As requisições passam por um Edge Function para autenticação e roteamento eficiente. O backend, construído com Next.js/tRPC, gerencia a lógica de negócio e, crucialmente, atua como um orquestrador para o servidor Ollama rodando localmente na máquina do desenvolvedor. Isso garante que o código sensível nunca saia do ambiente local para a nuvem. O banco de dados (PlanetScale/Supabase) armazena configurações e dados de usuário, mas nunca o código-fonte em si.
3. Prompts Mestre por Categoria
Aqui estão os prompts cirúrgicos que o Zé Mané usaria para construir o CodeGuard AI, prontos para qualquer IA competente.
🏗️ Prompts de Arquitetura & Backend
Contexto Geral: Estamos construindo um backend robusto com Next.js API Routes e tRPC, usando Drizzle ORM para interagir com Supabase/PlanetScale. O componente crítico é a orquestração do Ollama local.
-
Prompt: Estrutura Inicial do Projeto & tRPC Setup
promptVocê é um arquiteto de software especialista em full-stack com Next.js 14, tRPC e Drizzle ORM. **Tarefa:** Crie a estrutura inicial de um projeto Next.js 14 (App Router) com tRPC configurado para comunicação segura entre o frontend e o backend. Inclua a configuração básica do Drizzle ORM para um banco de dados PostgreSQL (compatível com Supabase/PlanetScale), com um esquema inicial para `User` (id, email, name, passwordHash) e `LLMConfig` (id, userId, modelName, ollamaApiUrl, maxTokens, temperature). **Restrições:** - Use `create-next-app` com TypeScript. - Configure tRPC com autenticação de contexto (simulada por enquanto, apenas um `userId` string). - Drizzle ORM deve usar `drizzle-kit` para migrações. - Inclua um exemplo de `api/trpc/[trpc]/route.ts` e um `server/routers/_app.ts` com um `userRouter` e um `llmConfigRouter` básicos (apenas `getAll` e `create`). - Adicione um `schema.ts` para o Drizzle. **Formato de Saída:** Estrutura de diretórios, snippets de código para os arquivos mencionados, e instruções de instalação.Você é um arquiteto de software especialista em full-stack com Next.js 14, tRPC e Drizzle ORM. **Tarefa:** Crie a estrutura inicial de um projeto Next.js 14 (App Router) com tRPC configurado para comunicação segura entre o frontend e o backend. Inclua a configuração básica do Drizzle ORM para um banco de dados PostgreSQL (compatível com Supabase/PlanetScale), com um esquema inicial para `User` (id, email, name, passwordHash) e `LLMConfig` (id, userId, modelName, ollamaApiUrl, maxTokens, temperature). **Restrições:** - Use `create-next-app` com TypeScript. - Configure tRPC com autenticação de contexto (simulada por enquanto, apenas um `userId` string). - Drizzle ORM deve usar `drizzle-kit` para migrações. - Inclua um exemplo de `api/trpc/[trpc]/route.ts` e um `server/routers/_app.ts` com um `userRouter` e um `llmConfigRouter` básicos (apenas `getAll` e `create`). - Adicione um `schema.ts` para o Drizzle. **Formato de Saída:** Estrutura de diretórios, snippets de código para os arquivos mencionados, e instruções de instalação. -
Prompt: Serviço de Orquestração Ollama Local
promptVocê é um engenheiro de backend experiente em Node.js e comunicação interprocessos. **Tarefa:** Desenvolva o esqueleto de um serviço Node.js (ou uma API Route em Next.js) que atue como orquestrador para o servidor Ollama rodando localmente. Este serviço deve ser capaz de: 1. Receber uma requisição do frontend com o código a ser processado e as configurações do LLM (modelo, temperatura, etc.). 2. Validar as configurações e o código. 3. Fazer uma requisição HTTP para o endpoint do Ollama (ex: `http://localhost:11434/api/generate`) com o prompt formatado (incluindo o código). 4. Processar a resposta do Ollama e retorná-la ao frontend. **Contexto:** O `ollamaApiUrl` virá do `LLMConfig` do usuário. **Restrições:** - Use `node-fetch` ou `axios` para as requisições HTTP. - Implemente tratamento de erros básico (Ollama não disponível, resposta inválida). - O prompt deve ser construído dinamicamente, permitindo injeção do código e da tarefa (ex: "refatorar", "otimizar", "gerar testes"). **Formato de Saída:** Um arquivo `server/services/ollamaService.ts` com a função principal de orquestração e um exemplo de como chamá-la de um procedimento tRPC.Você é um engenheiro de backend experiente em Node.js e comunicação interprocessos. **Tarefa:** Desenvolva o esqueleto de um serviço Node.js (ou uma API Route em Next.js) que atue como orquestrador para o servidor Ollama rodando localmente. Este serviço deve ser capaz de: 1. Receber uma requisição do frontend com o código a ser processado e as configurações do LLM (modelo, temperatura, etc.). 2. Validar as configurações e o código. 3. Fazer uma requisição HTTP para o endpoint do Ollama (ex: `http://localhost:11434/api/generate`) com o prompt formatado (incluindo o código). 4. Processar a resposta do Ollama e retorná-la ao frontend. **Contexto:** O `ollamaApiUrl` virá do `LLMConfig` do usuário. **Restrições:** - Use `node-fetch` ou `axios` para as requisições HTTP. - Implemente tratamento de erros básico (Ollama não disponível, resposta inválida). - O prompt deve ser construído dinamicamente, permitindo injeção do código e da tarefa (ex: "refatorar", "otimizar", "gerar testes"). **Formato de Saída:** Um arquivo `server/services/ollamaService.ts` com a função principal de orquestração e um exemplo de como chamá-la de um procedimento tRPC. -
Prompt: Autenticação e Autorização (Auth.js)
promptVocê é um especialista em segurança web e Next.js. **Tarefa:** Implemente autenticação e autorização para o CodeGuard AI usando Auth.js (NextAuth.js) com um provedor de credenciais (email/senha) e um provedor social (GitHub, por exemplo). **Contexto:** - A autenticação deve ser integrada com o esquema `User` do Drizzle ORM. - As sessões devem ser armazenadas de forma segura. - Proteja as rotas de API e páginas sensíveis. **Restrições:** - Use Next.js 14 App Router. - Inclua hashing de senha com `bcrypt` para o provedor de credenciais. - Mostre como proteger um procedimento tRPC e uma página do App Router. **Formato de Saída:** Arquivo `app/api/auth/[...nextauth]/route.ts`, `auth.ts` (configuração), `lib/auth.ts` (funções auxiliares), e exemplos de uso em um componente React e um procedimento tRPC.Você é um especialista em segurança web e Next.js. **Tarefa:** Implemente autenticação e autorização para o CodeGuard AI usando Auth.js (NextAuth.js) com um provedor de credenciais (email/senha) e um provedor social (GitHub, por exemplo). **Contexto:** - A autenticação deve ser integrada com o esquema `User` do Drizzle ORM. - As sessões devem ser armazenadas de forma segura. - Proteja as rotas de API e páginas sensíveis. **Restrições:** - Use Next.js 14 App Router. - Inclua hashing de senha com `bcrypt` para o provedor de credenciais. - Mostre como proteger um procedimento tRPC e uma página do App Router. **Formato de Saída:** Arquivo `app/api/auth/[...nextauth]/route.ts`, `auth.ts` (configuração), `lib/auth.ts` (funções auxiliares), e exemplos de uso em um componente React e um procedimento tRPC.
🎨 Prompts de Frontend & Design
Contexto Geral: Frontend com Next.js 14, React 19 (se disponível), Tailwind v4, shadcn/ui e Radix UI para componentes acessíveis e um design minimalista dark.
-
Prompt: Componente
CodeEditorcom Monaco EditorpromptVocê é um engenheiro de frontend com expertise em React, Next.js e editores de código. **Tarefa:** Crie um componente React (`CodeEditor`) que encapsule o Monaco Editor, otimizado para Next.js 14 (App Router). Este componente deve: 1. Carregar o Monaco Editor dinamicamente (lazy load) para otimizar o bundle. 2. Suportar diferentes linguagens de programação (JavaScript, TypeScript, Python, etc.). 3. Permitir customização do tema (dark mode). 4. Expor um `onChange` para obter o conteúdo do editor e um `value` prop para controlar o conteúdo. **Restrições:** - Use `react-monaco-editor` ou carregue o Monaco diretamente. - Garanta que o componente seja amigável ao SSR (sem `window` no carregamento inicial). - Integre com Tailwind CSS para estilização do container. **Formato de Saída:** Arquivo `components/CodeEditor.tsx` e um exemplo de uso em uma página.Você é um engenheiro de frontend com expertise em React, Next.js e editores de código. **Tarefa:** Crie um componente React (`CodeEditor`) que encapsule o Monaco Editor, otimizado para Next.js 14 (App Router). Este componente deve: 1. Carregar o Monaco Editor dinamicamente (lazy load) para otimizar o bundle. 2. Suportar diferentes linguagens de programação (JavaScript, TypeScript, Python, etc.). 3. Permitir customização do tema (dark mode). 4. Expor um `onChange` para obter o conteúdo do editor e um `value` prop para controlar o conteúdo. **Restrições:** - Use `react-monaco-editor` ou carregue o Monaco diretamente. - Garanta que o componente seja amigável ao SSR (sem `window` no carregamento inicial). - Integre com Tailwind CSS para estilização do container. **Formato de Saída:** Arquivo `components/CodeEditor.tsx` e um exemplo de uso em uma página. -
Prompt: Layout Principal e Navegação (shadcn/ui)
promptVocê é um designer de UI/UX e desenvolvedor frontend com maestria em Tailwind CSS e shadcn/ui. **Tarefa:** Desenvolva o layout principal do CodeGuard AI, seguindo um estilo minimalista dark. Inclua: 1. Um `Header` responsivo com o logo "CodeGuard AI" e navegação para "Dashboard", "Configurações", "Histórico" e um `UserDropdown` (com opções como "Perfil", "Sair"). 2. Um `Sidebar` colapsável para navegação secundária ou ferramentas contextuais. 3. A área de conteúdo principal. **Restrições:** - Use exclusivamente componentes shadcn/ui (Button, DropdownMenu, Sheet, etc.). - O tema deve ser dark-mode-first com Tailwind v4. - Garanta acessibilidade (WCAG 2.2) para navegação e interações. **Formato de Saída:** Arquivo `app/layout.tsx` (para o layout global), `components/ui/Header.tsx`, `components/ui/Sidebar.tsx`, e `components/ui/UserDropdown.tsx`.Você é um designer de UI/UX e desenvolvedor frontend com maestria em Tailwind CSS e shadcn/ui. **Tarefa:** Desenvolva o layout principal do CodeGuard AI, seguindo um estilo minimalista dark. Inclua: 1. Um `Header` responsivo com o logo "CodeGuard AI" e navegação para "Dashboard", "Configurações", "Histórico" e um `UserDropdown` (com opções como "Perfil", "Sair"). 2. Um `Sidebar` colapsável para navegação secundária ou ferramentas contextuais. 3. A área de conteúdo principal. **Restrições:** - Use exclusivamente componentes shadcn/ui (Button, DropdownMenu, Sheet, etc.). - O tema deve ser dark-mode-first com Tailwind v4. - Garanta acessibilidade (WCAG 2.2) para navegação e interações. **Formato de Saída:** Arquivo `app/layout.tsx` (para o layout global), `components/ui/Header.tsx`, `components/ui/Sidebar.tsx`, e `components/ui/UserDropdown.tsx`. -
Prompt: Página de Configurações de LLM (Formulário Dinâmico)
promptVocê é um desenvolvedor React expert em formulários complexos e validação. **Tarefa:** Crie uma página de configurações de LLM (`app/dashboard/settings/llm/page.tsx`) que permita ao usuário gerenciar seus modelos Ollama. O formulário deve: 1. Exibir uma lista de `LLMConfig` existentes (usando tRPC para buscar). 2. Permitir adicionar um novo `LLMConfig` (modelName, ollamaApiUrl, maxTokens, temperature). 3. Permitir editar e excluir configurações existentes. 4. Usar `react-hook-form` com `zod` para validação. **Restrições:** - Use componentes shadcn/ui (Form, Input, Button, Select, Table, AlertDialog). - Integre com os procedimentos tRPC `llmConfigRouter.getAll`, `create`, `update`, `delete`. - O `ollamaApiUrl` deve ter um valor padrão `http://localhost:11434`. **Formato de Saída:** Arquivo `app/dashboard/settings/llm/page.tsx` e um snippet do schema Zod para validação.Você é um desenvolvedor React expert em formulários complexos e validação. **Tarefa:** Crie uma página de configurações de LLM (`app/dashboard/settings/llm/page.tsx`) que permita ao usuário gerenciar seus modelos Ollama. O formulário deve: 1. Exibir uma lista de `LLMConfig` existentes (usando tRPC para buscar). 2. Permitir adicionar um novo `LLMConfig` (modelName, ollamaApiUrl, maxTokens, temperature). 3. Permitir editar e excluir configurações existentes. 4. Usar `react-hook-form` com `zod` para validação. **Restrições:** - Use componentes shadcn/ui (Form, Input, Button, Select, Table, AlertDialog). - Integre com os procedimentos tRPC `llmConfigRouter.getAll`, `create`, `update`, `delete`. - O `ollamaApiUrl` deve ter um valor padrão `http://localhost:11434`. **Formato de Saída:** Arquivo `app/dashboard/settings/llm/page.tsx` e um snippet do schema Zod para validação.
🔍 Prompts de SEO & Schema.org
Contexto Geral: O CodeGuard AI é um SaaS, então o SEO é crucial para atrair empresas e desenvolvedores que buscam privacidade.
-
Prompt: Meta Tags Essenciais para a Landing Page
promptVocê é um especialista em SEO técnico e marketing digital. **Tarefa:** Crie as meta tags essenciais para a landing page do CodeGuard AI (`app/page.tsx`), focando em ranqueamento para termos como "IA local para código", "geração de código privada", "segurança LLM", "Ollama para empresas". **Restrições:** - Inclua `title`, `description`, `keywords` (otimizadas). - Adicione meta tags Open Graph (`og:title`, `og:description`, `og:image`, `og:url`, `og:type`) e Twitter Card (`twitter:card`, `twitter:site`, `twitter:creator`). - Otimize para Core Web Vitals (descrições concisas, imagens de alta qualidade). **Formato de Saída:** Snippet de código React para o componente `Metadata` em `app/page.tsx`.Você é um especialista em SEO técnico e marketing digital. **Tarefa:** Crie as meta tags essenciais para a landing page do CodeGuard AI (`app/page.tsx`), focando em ranqueamento para termos como "IA local para código", "geração de código privada", "segurança LLM", "Ollama para empresas". **Restrições:** - Inclua `title`, `description`, `keywords` (otimizadas). - Adicione meta tags Open Graph (`og:title`, `og:description`, `og:image`, `og:url`, `og:type`) e Twitter Card (`twitter:card`, `twitter:site`, `twitter:creator`). - Otimize para Core Web Vitals (descrições concisas, imagens de alta qualidade). **Formato de Saída:** Snippet de código React para o componente `Metadata` em `app/page.tsx`. -
Prompt: Dados Estruturados
SoftwareApplicationeArticlepromptVocê é um guru de Schema.org e dados estruturados. **Tarefa:** Gere o JSON-LD para a landing page do CodeGuard AI. 1. Um objeto `SoftwareApplication` descrevendo o CodeGuard AI (nome, descrição, sistema operacional, preço, avaliações fictícias). 2. Um objeto `Article` para o conteúdo principal da landing page, destacando os benefícios de privacidade e segurança. **Restrições:** - Use as propriedades mais relevantes para cada tipo. - Inclua um `aggregateRating` fictício para o `SoftwareApplication`. - O `Article` deve ter `headline`, `image`, `datePublished`, `author`, `publisher`. **Formato de Saída:** Dois blocos de JSON-LD para serem inseridos no `<head>` da página.Você é um guru de Schema.org e dados estruturados. **Tarefa:** Gere o JSON-LD para a landing page do CodeGuard AI. 1. Um objeto `SoftwareApplication` descrevendo o CodeGuard AI (nome, descrição, sistema operacional, preço, avaliações fictícias). 2. Um objeto `Article` para o conteúdo principal da landing page, destacando os benefícios de privacidade e segurança. **Restrições:** - Use as propriedades mais relevantes para cada tipo. - Inclua um `aggregateRating` fictício para o `SoftwareApplication`. - O `Article` deve ter `headline`, `image`, `datePublished`, `author`, `publisher`. **Formato de Saída:** Dois blocos de JSON-LD para serem inseridos no `<head>` da página. -
Prompt: Sitemap XML e Robots.txt
promptVocê é um especialista em rastreamento e indexação de sites. **Tarefa:** Crie um `sitemap.xml` e um `robots.txt` otimizados para o CodeGuard AI. **Contexto:** - Páginas principais: `/`, `/dashboard`, `/settings`, `/pricing`, `/blog` (fictício, para artigos de conteúdo). - As rotas `/dashboard` e `/settings` são protegidas por autenticação e não devem ser indexadas. **Restrições:** - O `sitemap.xml` deve incluir `loc`, `lastmod`, `changefreq`, `priority`. - O `robots.txt` deve bloquear rotas sensíveis e apontar para o sitemap. **Formato de Saída:** Conteúdo completo dos arquivos `public/sitemap.xml` e `public/robots.txt`.Você é um especialista em rastreamento e indexação de sites. **Tarefa:** Crie um `sitemap.xml` e um `robots.txt` otimizados para o CodeGuard AI. **Contexto:** - Páginas principais: `/`, `/dashboard`, `/settings`, `/pricing`, `/blog` (fictício, para artigos de conteúdo). - As rotas `/dashboard` e `/settings` são protegidas por autenticação e não devem ser indexadas. **Restrições:** - O `sitemap.xml` deve incluir `loc`, `lastmod`, `changefreq`, `priority`. - O `robots.txt` deve bloquear rotas sensíveis e apontar para o sitemap. **Formato de Saída:** Conteúdo completo dos arquivos `public/sitemap.xml` e `public/robots.txt`.
⚡ Prompts de Performance & Core Web Vitals
Contexto Geral: Performance é um diferencial. Precisamos garantir que o CodeGuard AI seja rápido e responsivo, mesmo com o Monaco Editor.
-
Prompt: Otimização de Imagens e Fontes
promptVocê é um engenheiro de performance web obcecado por Core Web Vitals. **Tarefa:** Descreva e forneça snippets para otimizar o carregamento de imagens e fontes no CodeGuard AI. **Imagens:** - Como usar o `next/image` para imagens responsivas e lazy loading. - Recomendação para formatos AVIF/WebP. **Fontes:** - Como usar `next/font` para otimização de carregamento de fontes (Google Fonts ou customizadas). - Estratégias para font subsetting e `font-display: swap`. **Restrições:** - Foco em LCP (Largest Contentful Paint) e CLS (Cumulative Layout Shift). - Exemplos práticos para Next.js 14. **Formato de Saída:** Explicação detalhada e snippets de código para `next/image` e `next/font` no `layout.tsx` ou componentes.Você é um engenheiro de performance web obcecado por Core Web Vitals. **Tarefa:** Descreva e forneça snippets para otimizar o carregamento de imagens e fontes no CodeGuard AI. **Imagens:** - Como usar o `next/image` para imagens responsivas e lazy loading. - Recomendação para formatos AVIF/WebP. **Fontes:** - Como usar `next/font` para otimização de carregamento de fontes (Google Fonts ou customizadas). - Estratégias para font subsetting e `font-display: swap`. **Restrições:** - Foco em LCP (Largest Contentful Paint) e CLS (Cumulative Layout Shift). - Exemplos práticos para Next.js 14. **Formato de Saída:** Explicação detalhada e snippets de código para `next/image` e `next/font` no `layout.tsx` ou componentes. -
Prompt: Estratégias de Bundle Splitting e Lazy Loading
promptVocê é um mestre em otimização de JavaScript e performance de carregamento. **Tarefa:** Detalhe e exemplifique estratégias de bundle splitting e lazy loading para o CodeGuard AI, com foco no Monaco Editor e outros componentes pesados. **Restrições:** - Use `React.lazy` e `Suspense` para componentes React. - Use `next/dynamic` para importação dinâmica em Next.js. - Explique como identificar e otimizar "chunks" grandes. **Formato de Saída:** Explicação técnica e snippets de código para lazy loading do `CodeEditor` e outros módulos.Você é um mestre em otimização de JavaScript e performance de carregamento. **Tarefa:** Detalhe e exemplifique estratégias de bundle splitting e lazy loading para o CodeGuard AI, com foco no Monaco Editor e outros componentes pesados. **Restrições:** - Use `React.lazy` e `Suspense` para componentes React. - Use `next/dynamic` para importação dinâmica em Next.js. - Explique como identificar e otimizar "chunks" grandes. **Formato de Saída:** Explicação técnica e snippets de código para lazy loading do `CodeEditor` e outros módulos. -
Prompt: Critical CSS e Edge Caching
promptVocê é um especialista em otimização de CSS e infraestrutura de rede. **Tarefa:** Explique como implementar Critical CSS e configurar Edge Caching para o CodeGuard AI, visando melhorar o FCP (First Contentful Paint) e a responsividade geral. **Critical CSS:** - Descreva a técnica e como ela se aplica a um projeto Next.js/Tailwind. - Como garantir que o CSS essencial seja carregado inline. **Edge Caching:** - Como configurar cache para assets estáticos e rotas de API em Vercel e Cloudflare Workers. - Estratégias de `Cache-Control` headers. **Restrições:** - Foco em Next.js 14 e as plataformas Vercel/Cloudflare. - Sem ferramentas de terceiros complexas, focar em configurações nativas. **Formato de Saída:** Explicação conceitual e exemplos de configuração para `next.config.js` (se aplicável), headers HTTP e Cloudflare Workers.Você é um especialista em otimização de CSS e infraestrutura de rede. **Tarefa:** Explique como implementar Critical CSS e configurar Edge Caching para o CodeGuard AI, visando melhorar o FCP (First Contentful Paint) e a responsividade geral. **Critical CSS:** - Descreva a técnica e como ela se aplica a um projeto Next.js/Tailwind. - Como garantir que o CSS essencial seja carregado inline. **Edge Caching:** - Como configurar cache para assets estáticos e rotas de API em Vercel e Cloudflare Workers. - Estratégias de `Cache-Control` headers. **Restrições:** - Foco em Next.js 14 e as plataformas Vercel/Cloudflare. - Sem ferramentas de terceiros complexas, focar em configurações nativas. **Formato de Saída:** Explicação conceitual e exemplos de configuração para `next.config.js` (se aplicável), headers HTTP e Cloudflare Workers.
🚀 Prompts de Deploy & DevOps
Contexto Geral: Deploy contínuo e escalável em Vercel, com Cloudflare Workers para edge functions e Supabase/PlanetScale para banco de dados.
-
Prompt: Configuração de CI/CD para Vercel
promptVocê é um engenheiro de DevOps com experiência em Vercel e GitHub Actions. **Tarefa:** Crie um arquivo de configuração GitHub Actions para CI/CD do CodeGuard AI no Vercel. **Funcionalidades:** - Build e deploy automáticos para o ambiente de preview em cada PR. - Build e deploy automáticos para produção no merge para `main`. - Instalação de dependências, linting e testes (simulados). - Exposição de variáveis de ambiente seguras. **Restrições:** - Use `vercel-action`. - Inclua passos para `npm install`, `npm run lint`, `npm run build`. - Variáveis de ambiente como `SUPABASE_URL`, `SUPABASE_ANON_KEY`, `AUTH_SECRET`, `GITHUB_ID`, `GITHUB_SECRET`. **Formato de Saída:** Arquivo `.github/workflows/deploy.yml`.Você é um engenheiro de DevOps com experiência em Vercel e GitHub Actions. **Tarefa:** Crie um arquivo de configuração GitHub Actions para CI/CD do CodeGuard AI no Vercel. **Funcionalidades:** - Build e deploy automáticos para o ambiente de preview em cada PR. - Build e deploy automáticos para produção no merge para `main`. - Instalação de dependências, linting e testes (simulados). - Exposição de variáveis de ambiente seguras. **Restrições:** - Use `vercel-action`. - Inclua passos para `npm install`, `npm run lint`, `npm run build`. - Variáveis de ambiente como `SUPABASE_URL`, `SUPABASE_ANON_KEY`, `AUTH_SECRET`, `GITHUB_ID`, `GITHUB_SECRET`. **Formato de Saída:** Arquivo `.github/workflows/deploy.yml`. -
Prompt: Monitoramento e Observabilidade Básica
promptVocê é um especialista em monitoramento de aplicações e performance. **Tarefa:** Descreva como configurar monitoramento e observabilidade básica para o CodeGuard AI, focando em Vercel Analytics, Sentry (para erros) e logs. **Restrições:** - Sem ferramentas de APM complexas. - Foco em soluções de baixo custo ou gratuitas para startups. - Como integrar Sentry em um projeto Next.js. **Formato de Saída:** Explicação dos passos, snippets para `sentry.client.config.ts`, `sentry.server.config.ts`, `sentry.edge.config.ts` e como interpretar logs no Vercel.Você é um especialista em monitoramento de aplicações e performance. **Tarefa:** Descreva como configurar monitoramento e observabilidade básica para o CodeGuard AI, focando em Vercel Analytics, Sentry (para erros) e logs. **Restrições:** - Sem ferramentas de APM complexas. - Foco em soluções de baixo custo ou gratuitas para startups. - Como integrar Sentry em um projeto Next.js. **Formato de Saída:** Explicação dos passos, snippets para `sentry.client.config.ts`, `sentry.server.config.ts`, `sentry.edge.config.ts` e como interpretar logs no Vercel. -
Prompt: Configuração de Cloudflare Workers para Proxy e Segurança
promptVocê é um engenheiro de rede e segurança com maestria em Cloudflare Workers. **Tarefa:** Crie um Cloudflare Worker que atue como um proxy reverso para a API do CodeGuard AI, adicionando headers de segurança (CSP, HSTS) e talvez um rate limiting básico. **Restrições:** - O Worker deve interceptar requisições para `/api/*`. - Adicionar `Content-Security-Policy`, `Strict-Transport-Security`, `X-Content-Type-Options`, `X-Frame-Options`. - Implementar um rate limiting simples baseado em IP (usando `waitUntil` e KV Store, se necessário, ou apenas um contador em memória para o exemplo). **Formato de Saída:** Código completo do Cloudflare Worker (`worker.ts`) e instruções de deploy.Você é um engenheiro de rede e segurança com maestria em Cloudflare Workers. **Tarefa:** Crie um Cloudflare Worker que atue como um proxy reverso para a API do CodeGuard AI, adicionando headers de segurança (CSP, HSTS) e talvez um rate limiting básico. **Restrições:** - O Worker deve interceptar requisições para `/api/*`. - Adicionar `Content-Security-Policy`, `Strict-Transport-Security`, `X-Content-Type-Options`, `X-Frame-Options`. - Implementar um rate limiting simples baseado em IP (usando `waitUntil` e KV Store, se necessário, ou apenas um contador em memória para o exemplo). **Formato de Saída:** Código completo do Cloudflare Worker (`worker.ts`) e instruções de deploy.
4. Prompt Único Completo
Este é o mega-prompt, o prompt supremo que o Zé Mané usaria para gerar o esqueleto completo do CodeGuard AI de uma vez só.
Você é o Zé Mané, um engenheiro de software full-stack autodidata e genial, especialista em Next.js 14, tRPC, Drizzle ORM, Tailwind CSS, shadcn/ui, Auth.js, Ollama e arquiteturas de privacidade. Seu objetivo é construir o esqueleto completo do "CodeGuard AI", uma plataforma que permite a desenvolvedores usar LLMs localmente para geração e refatoração de código, garantindo privacidade e segurança.
**Contexto do Projeto:**
- **Nome:** CodeGuard AI
- **Problema:** Geração de código com IA sem comprometer privacidade e IP sensível, rodando LLMs localmente.
- **Stack:** Next.js 14 (App Router), React 19 (se disponível), tRPC, Drizzle ORM, Supabase/PlanetScale (PostgreSQL), Tailwind v4, shadcn/ui, Radix UI, Auth.js, Ollama (servidor local), Monaco Editor, Vercel, GitHub Actions.
- **Features Core:** Agente de programação local com Ollama, UI para configurar LLMs, geração/refatoração de código privada, otimização, análise de segurança local, integração com IDEs (esqueleto).
- **Público-alvo:** Empresas com IP sensível, fintechs, healthtechs.
- **Estilo de Design:** Minimalista dark.
- **Complexidade:** Avançado.
**Tarefa Principal:**
Gere a estrutura completa do projeto Next.js 14, incluindo os seguintes componentes e configurações:
1. **Configuração Base:**
* Projeto Next.js 14 (App Router, TypeScript).
* Tailwind CSS v4 configurado (dark mode first).
* shadcn/ui inicializado e configurado.
* Drizzle ORM configurado para PostgreSQL com `schema.ts` para `User` (id, email, passwordHash, name) e `LLMConfig` (id, userId, modelName, ollamaApiUrl, maxTokens, temperature, createdAt, updatedAt). Inclua `drizzle-kit` config.
2. **Autenticação (Auth.js):**
* `app/api/auth/[...nextauth]/route.ts` com provedor de credenciais (email/senha, usando `bcrypt` para hash) e GitHub OAuth.
* `auth.ts` e `lib/auth.ts` para helpers de sessão e proteção de rotas.
3. **Backend (tRPC & Orquestração Ollama):**
* Configuração tRPC (`api/trpc/[trpc]/route.ts`, `server/routers/_app.ts`, `server/trpc.ts`).
* `userRouter` com `getProfile` (protegido).
* `llmConfigRouter` com `getAll`, `create`, `update`, `delete` (protegidos, interagindo com Drizzle).
* `server/services/ollamaService.ts`: Função `interactWithOllama` que recebe `code`, `promptInstruction`, `llmConfig` e faz uma requisição `POST` para o endpoint local do Ollama (`ollamaApiUrl/api/generate`). Deve retornar a resposta processada. Inclua tratamento de erro para Ollama indisponível.
* `codeGenerationRouter`: Um procedimento tRPC `generateCode` que recebe `code`, `instruction`, `llmConfigId`, chama `ollamaService.interactWithOllama` e retorna o resultado.
4. **Frontend (UI & Interação):**
* `app/layout.tsx`: Layout principal com `Header` (logo, navegação, `UserDropdown` com Auth.js `signOut`), `Sidebar` (links para Dashboard, Configurações, Histórico). Minimalista dark.
* `app/page.tsx`: Landing page básica com texto de introdução, meta tags SEO e dados estruturados `SoftwareApplication`.
* `app/dashboard/page.tsx`: Página principal do dashboard.
* Componente `CodeEditor.tsx` (lazy loaded com `next/dynamic`, encapsulando Monaco Editor, suporte a linguagens, dark theme).
* Formulário para input de `promptInstruction` e seleção de `LLMConfig` (usando tRPC para buscar configs).
* Área para exibir o código gerado/refatorado.
* Botão "Gerar Código" que chama o procedimento tRPC `codeGenerationRouter.generateCode`.
* `app/dashboard/settings/llm/page.tsx`: Página de gerenciamento de `LLMConfig` (CRUD via tRPC, `react-hook-form`, `zod`, shadcn/ui Table, Dialog, Form).
5. **Performance & SEO:**
* Otimização de imagens (`next/image`) e fontes (`next/font`).
* Sitemap (`public/sitemap.xml`) e Robots.txt (`public/robots.txt`) com bloqueio de rotas protegidas.
* Meta tags Open Graph e Twitter Card na landing page.
6. **Deploy & DevOps:**
* Arquivo `.github/workflows/deploy.yml` para CI/CD no Vercel (build, lint, deploy preview/production).
* Configuração de variáveis de ambiente (`.env.local.example`).
**Restrições Adicionais:**
- Todos os componentes devem usar shadcn/ui e Tailwind CSS.
- Garanta acessibilidade (WCAG 2.2) para todos os componentes interativos.
- Use `use client` e `use server` corretamente para o App Router.
- Inclua placeholders para lógica de erro e loading states.
- O código deve ser limpo, modular e seguir as melhores práticas de TypeScript.
- Não inclua lógica de integração com IDEs, apenas o esqueleto da plataforma web.
- O foco é a estrutura e a integração das tecnologias, não a lógica de negócio completa.
**Formato de Saída:**
- Estrutura de diretórios completa.
- Conteúdo dos arquivos-chave (código completo ou snippets representativos).
- Instruções claras para setup e execução.
- Um `.env.local.example` com todas as variáveis necessárias.
Você é o Zé Mané, um engenheiro de software full-stack autodidata e genial, especialista em Next.js 14, tRPC, Drizzle ORM, Tailwind CSS, shadcn/ui, Auth.js, Ollama e arquiteturas de privacidade. Seu objetivo é construir o esqueleto completo do "CodeGuard AI", uma plataforma que permite a desenvolvedores usar LLMs localmente para geração e refatoração de código, garantindo privacidade e segurança.
**Contexto do Projeto:**
- **Nome:** CodeGuard AI
- **Problema:** Geração de código com IA sem comprometer privacidade e IP sensível, rodando LLMs localmente.
- **Stack:** Next.js 14 (App Router), React 19 (se disponível), tRPC, Drizzle ORM, Supabase/PlanetScale (PostgreSQL), Tailwind v4, shadcn/ui, Radix UI, Auth.js, Ollama (servidor local), Monaco Editor, Vercel, GitHub Actions.
- **Features Core:** Agente de programação local com Ollama, UI para configurar LLMs, geração/refatoração de código privada, otimização, análise de segurança local, integração com IDEs (esqueleto).
- **Público-alvo:** Empresas com IP sensível, fintechs, healthtechs.
- **Estilo de Design:** Minimalista dark.
- **Complexidade:** Avançado.
**Tarefa Principal:**
Gere a estrutura completa do projeto Next.js 14, incluindo os seguintes componentes e configurações:
1. **Configuração Base:**
* Projeto Next.js 14 (App Router, TypeScript).
* Tailwind CSS v4 configurado (dark mode first).
* shadcn/ui inicializado e configurado.
* Drizzle ORM configurado para PostgreSQL com `schema.ts` para `User` (id, email, passwordHash, name) e `LLMConfig` (id, userId, modelName, ollamaApiUrl, maxTokens, temperature, createdAt, updatedAt). Inclua `drizzle-kit` config.
2. **Autenticação (Auth.js):**
* `app/api/auth/[...nextauth]/route.ts` com provedor de credenciais (email/senha, usando `bcrypt` para hash) e GitHub OAuth.
* `auth.ts` e `lib/auth.ts` para helpers de sessão e proteção de rotas.
3. **Backend (tRPC & Orquestração Ollama):**
* Configuração tRPC (`api/trpc/[trpc]/route.ts`, `server/routers/_app.ts`, `server/trpc.ts`).
* `userRouter` com `getProfile` (protegido).
* `llmConfigRouter` com `getAll`, `create`, `update`, `delete` (protegidos, interagindo com Drizzle).
* `server/services/ollamaService.ts`: Função `interactWithOllama` que recebe `code`, `promptInstruction`, `llmConfig` e faz uma requisição `POST` para o endpoint local do Ollama (`ollamaApiUrl/api/generate`). Deve retornar a resposta processada. Inclua tratamento de erro para Ollama indisponível.
* `codeGenerationRouter`: Um procedimento tRPC `generateCode` que recebe `code`, `instruction`, `llmConfigId`, chama `ollamaService.interactWithOllama` e retorna o resultado.
4. **Frontend (UI & Interação):**
* `app/layout.tsx`: Layout principal com `Header` (logo, navegação, `UserDropdown` com Auth.js `signOut`), `Sidebar` (links para Dashboard, Configurações, Histórico). Minimalista dark.
* `app/page.tsx`: Landing page básica com texto de introdução, meta tags SEO e dados estruturados `SoftwareApplication`.
* `app/dashboard/page.tsx`: Página principal do dashboard.
* Componente `CodeEditor.tsx` (lazy loaded com `next/dynamic`, encapsulando Monaco Editor, suporte a linguagens, dark theme).
* Formulário para input de `promptInstruction` e seleção de `LLMConfig` (usando tRPC para buscar configs).
* Área para exibir o código gerado/refatorado.
* Botão "Gerar Código" que chama o procedimento tRPC `codeGenerationRouter.generateCode`.
* `app/dashboard/settings/llm/page.tsx`: Página de gerenciamento de `LLMConfig` (CRUD via tRPC, `react-hook-form`, `zod`, shadcn/ui Table, Dialog, Form).
5. **Performance & SEO:**
* Otimização de imagens (`next/image`) e fontes (`next/font`).
* Sitemap (`public/sitemap.xml`) e Robots.txt (`public/robots.txt`) com bloqueio de rotas protegidas.
* Meta tags Open Graph e Twitter Card na landing page.
6. **Deploy & DevOps:**
* Arquivo `.github/workflows/deploy.yml` para CI/CD no Vercel (build, lint, deploy preview/production).
* Configuração de variáveis de ambiente (`.env.local.example`).
**Restrições Adicionais:**
- Todos os componentes devem usar shadcn/ui e Tailwind CSS.
- Garanta acessibilidade (WCAG 2.2) para todos os componentes interativos.
- Use `use client` e `use server` corretamente para o App Router.
- Inclua placeholders para lógica de erro e loading states.
- O código deve ser limpo, modular e seguir as melhores práticas de TypeScript.
- Não inclua lógica de integração com IDEs, apenas o esqueleto da plataforma web.
- O foco é a estrutura e a integração das tecnologias, não a lógica de negócio completa.
**Formato de Saída:**
- Estrutura de diretórios completa.
- Conteúdo dos arquivos-chave (código completo ou snippets representativos).
- Instruções claras para setup e execução.
- Um `.env.local.example` com todas as variáveis necessárias.
5. Stack Mínima Viável
Para lançar o CodeGuard AI em 48 horas (sim, Zé Mané é rápido no gatilho!), esta é a stack que você precisa dominar:
- Next.js 14 (App Router): O framework para o frontend e backend (API Routes).
- Tailwind CSS v4 & shadcn/ui: Estilização e componentes UI robustos e acessíveis.
- tRPC: Tipagem end-to-end para APIs seguras e eficientes.
- Drizzle ORM: ORM leve e tipado para interações com o banco de dados.
- Supabase / PlanetScale: Banco de dados PostgreSQL escalável.
- Auth.js (NextAuth.js): Autenticação completa e segura.
- Ollama: Plataforma para rodar LLMs localmente.
- Vercel: Plataforma de deploy e hosting.
6. Checklist de Lançamento
Antes de apertar o botão de "Go Live", Zé Mané sempre segue este checklist para garantir que a coisa vai pro ar sem sustos:
- ✅ Variáveis de Ambiente: Todas as variáveis
ENVconfiguradas corretamente no Vercel (e no.env.localpara desenvolvimento). - ✅ Testes de Autenticação: Login, logout, registro, e acesso a rotas protegidas funcionando perfeitamente.
- ✅ Conectividade com Banco de Dados: Drizzle ORM conectando e realizando operações CRUD básicas. Migrações aplicadas.
- ✅ Integração Ollama: Teste de ponta a ponta da orquestração com o Ollama local. O servidor Ollama deve estar rodando e respondendo.
- ✅ Performance (Lighthouse): Score acima de 90 em Performance, Acessibilidade, Melhores Práticas e SEO no Lighthouse para a landing page e as principais rotas.
- ✅ Responsividade: Layout funcionando em desktops, tablets e celulares (testado em diferentes tamanhos de tela).
- ✅ Acessibilidade (WCAG 2.2): Navegação por teclado, contraste de cores, labels de formulário e atributos ARIA verificados.
- ✅ SEO Técnico:
sitemap.xmlerobots.txtacessíveis e configurados. Meta tags e JSON-LD presentes nas páginas públicas. - ✅ Monitoramento de Erros: Sentry (ou similar) configurado e capturando erros no frontend e backend.
- ✅ CI/CD Funcional: O pipeline do GitHub Actions rodou com sucesso no
maine fez o deploy para produção.
Com essa estrutura e esses prompts, não tem erro! O CodeGuard AI vai ser um sucesso, garantindo que a inovação da IA chegue aos desenvolvedores sem comprometer o que é mais valioso: a privacidade e a segurança do seu código. Agora vai lá e bota pra fazer!
