# Modelo para projeto de código (extra)

> Extra da aula 2.2 do Curso Claude Code. Para um vault do Obsidian, use `CLAUDE-vault.md`.
> Copie para a raiz do seu projeto, apague o que não vale e preencha o resto. Regra de ouro:
> tudo que você repetiu duas vezes num prompt vira uma linha aqui. Meta oficial de tamanho: menos
> de 200 linhas por arquivo (https://code.claude.com/docs/en/memory, acesso em 30/10/2026).
> Comentário HTML como este é removido antes de ir para o contexto: serve de nota para humano.

# <nome do projeto>

Uma frase: para quem é, o que faz, o que NÃO faz. Exemplo: "Site pessoal em Next.js com blog em
markdown; não tem backend nem login."

## Comandos

- Instalar: `npm install`
- Rodar: `npm run dev` (abre em http://localhost:3000)
- Provar que funciona: `npm test`. Nenhuma mudança está pronta sem o teste verde.
- Build: `npm run build`

## Convenções

- Português com acentuação em todo texto voltado ao público.
- Commit só quando eu pedir; mensagem no imperativo, em português.
- Dependência nova só com justificativa de uma linha e depois do meu OK.
- Antes de apagar ou sobrescrever um arquivo, mostrar o que vai mudar e esperar o meu OK.

## Armadilhas e decisões que o código não mostra

| Onde | Pode mexer? |
|---|---|
| `content/` (posts em markdown) | sim, sem mudar o frontmatter |
| `public/` | só adicionar |
| `.env` | NUNCA ler, copiar ou commitar |

## Como eu gosto de trabalhar

- Tarefa grande: primeiro um plano em 5 linhas, depois o código.
- Mudança pequena e clara: faça direto e diga o que mudou.
- Quando não souber, pergunte uma coisa de cada vez.
- Erro de teste: mostre a saída literal, não resuma.

## Onde isso quebra (leia antes de confiar)

- Arquivo longo gasta contexto e reduz a obediência. Meta oficial: menos de 200 linhas.
- `@arquivo` importa outro arquivo, mas o importado carrega junto e NÃO economiza contexto. Para
  aliviar, cite o caminho entre crases (o Claude lê quando precisar) ou mova o conteúdo para uma
  skill ou para `.claude/rules/`.
- Regra genérica ("escreva código bom") não muda nada. Regra verificável ("rode `npm test` antes
  de dizer que terminou") muda.
- Isto é um pedido, não um bloqueio. "Nunca ler o `.env`" aqui é contexto; quem impede é uma regra
  `deny` ou um hook (aula 3.6).
- Preferência só sua, que não deve ir para o Git, fica em `CLAUDE.local.md` (coloque no `.gitignore`).
