🇺🇸 English version: INSTALL.en.md.
Guia passo-a-passo para usar o LLM Project Mapper como overlay privado em cima de um projeto que já existe (ex.: front-end Angular/React/Next, API .NET, monorepo, etc.). Os arquivos do starter ficam no disco do dev, mas fora do git do projeto host — cada dev instala o seu, o repo principal não é poluído.
Se você quer rodar o starter como repo standalone (clone direto, sem projeto host), veja o README. Esse guia é só para overlay.
- Baixa o llm-project-mapper num diretório temporário.
- Copia o conteúdo (sem
.git) para a raiz do projeto host. - Remove o diretório temporário e qualquer rastro de git do starter.
- Adiciona os caminhos do starter ao
.gitignoredo host.
Depois, roda bootstrap.sh / bootstrap.ps1 dentro do host para preencher placeholders e gerar .starter-meta.json.
| Requisito | Para que serve |
|---|---|
| Git | clonar o starter |
| Bash 4+ ou PowerShell 5.1+ | rodar o bootstrap |
| Node.js >= 16.7 (opcional) | se preferir npx @wesleysimplicio/llm-project-mapper em vez de clone |
cd /tmp
git clone --depth=1 https://github.com/wesleysimplicio/llm-project-mapper.git llm-project-mapper-srccd $env:TEMP
git clone --depth=1 https://github.com/wesleysimplicio/llm-project-mapper.git llm-project-mapper-srcAlternativa sem clone:
npx @wesleysimplicio/llm-project-mapperdentro do projeto host (Passo 2 e Passo 3 ficam automáticos). Pula para o Passo 4 depois.
Assuma que o seu projeto host é ~/code/meu-front (Linux/macOS) ou C:\Users\me\source\meu-front (Windows).
⚠️ Atenção: o starter contém arquivos com nomes comuns (README.md,package.json,playwright.config.ts,tests/,AGENTS.md,CLAUDE.md,INIT.md,.gitignore). Se o host já tem qualquer deles, use--ignore-existing(rsync) ou/XC /XN /XO(robocopy) para nunca sobrescrever. O bootstrap depois lê os pré-existentes via.starter-meta.jsone mescla viaINIT.md.
cd ~/code/meu-front
# copia tudo do starter, exceto .git do starter, e NUNCA sobrescreve arquivos do host
rsync -av --ignore-existing --exclude='.git' /tmp/llm-project-mapper-src/ ./Se
rsyncnão estiver instalado, instala (brew install rsync/sudo apt install rsync) — não usecp -Rsem proteção contra sobrescrita.
Sempre com aspas duplas em paths (Windows pode ter espaços tipo C:\Users\Wesley Simplicio\source):
cd "C:\Users\me\source\meu-front"
# /E recursivo; /XD .git exclui pasta .git do starter;
# /XC /XN /XO pula arquivos que já existem no destino (changed/newer/older).
robocopy "$env:TEMP\llm-project-mapper-src" "." /E /XD .git /XC /XN /XO
# robocopy retorna 0-7 como sucesso; código 1 = arquivos copiados, OK.Garante que o repo do host não vira clone do llm-project-mapper.
A
--exclude='.git'norsync(Passo 2) e o/XD .gitnorobocopyjá garantem que o.gitdo starter não foi copiado. Esse passo é só validação + limpeza do diretório temporário.
cd ~/code/meu-front
# remove diretório temporário do starter
rm -rf /tmp/llm-project-mapper-src
# confirma que NÃO há remote apontando pro repo do starter
git remote -v
# se aparecer algo como 'origin → wesleysimplicio/llm-project-mapper',
# significa que o .git do starter foi copiado por engano.
# NÃO rode rm -rf .git cegamente — você pode estar deletando o git do HOST.
# Em vez disso:
# 1. Verifica se o host tem commits próprios: git log --oneline -5
# 2. Se o log é só do starter, remove o remote: git remote remove origin
# 3. Se há commits do host misturados, pede ajuda manual.cd "C:\Users\me\source\meu-front"
Remove-Item -Recurse -Force "$env:TEMP\llm-project-mapper-src"
# confere remotes
git remote -v
# mesmo princípio: se apontar pro starter, investiga antes de deletar nada.Cole o bloco abaixo no fim do .gitignore do projeto host para manter o overlay fora do git do projeto:
# === LLM Project Mapper (overlay privado, per-dev) — não commitar no repo do host ===
# LLM Project Mapper tracked files
.starter-meta.json
.claude/settings.local.json
AGENTS.md
CLAUDE.md
INIT.md
_BOOTSTRAP.md
.agents/
.agents/**
.claude/
.claude/**
.codex/
.codex/**
.github/
.github/**
.skills/
.skills/**
.specs/
.specs/**
docs/**
scripts/**
playwright-report/**
tests/**
test-results/**
coverage/**
bootstrap.ps1
bootstrap.sh
playwright.config.tsSe algum desses arquivos já for rastreado pelo git do host, o arquivo continua no disco e no histórico, mas novas mudanças podem ficar menos óbvias no fluxo diário. Antes de usar como overlay privado, confirme com
git ls-files <arquivo>quando houver dúvida.
Como o Passo 2 usa --ignore-existing, nenhum arquivo do host é sobrescrito pela cópia. O comportamento por arquivo é:
| Arquivo do starter | Se o host já tem | Resultado |
|---|---|---|
README.md |
sim | starter NÃO copia; host fica como está |
package.json |
sim | starter NÃO copia; host fica como está |
playwright.config.ts |
sim | starter NÃO copia |
tests/ |
sim | starter NÃO mescla arquivos individuais que já existem |
AGENTS.md / CLAUDE.md / INIT.md |
sim | starter NÃO copia. Bootstrap registra em .starter-meta.json -> existing_instruction_files; INIT.md lê e mescla preservando o conteúdo do host |
.gitignore |
sim | starter NÃO sobrescreve. Bootstrap só adiciona ao final com cabeçalho marcador (se você responder yes no prompt) |
.github/workflows/ |
sim | starter NÃO sobrescreve workflows existentes; só adiciona dod.yml se não houver homônimo |
Você nunca terá "dois
package.json" —rsync --ignore-existing/robocopy /XC /XN /XOpulam o arquivo se já existe.
Substitui placeholders (<PRODUCT_NAME>, <STACK>) pelos valores reais detectados no host e gera .starter-meta.json.
cd ~/code/meu-front
chmod +x ./bootstrap.sh
./bootstrap.shcd "C:\Users\me\source\meu-front"
# PowerShell 7+
pwsh -File .\bootstrap.ps1
# PowerShell 5.1 (Windows 10/11)
powershell -ExecutionPolicy Bypass -File .\bootstrap.ps1No Windows não roda
chmod— o PowerShell não usa bit de execução. Basta invocar o.ps1diretamente.
./bootstrap.sh --yes --cli skip --append-gitignore noNo modo overlay com
.gitignorejá contendo o starter, responde não quando o bootstrap perguntar se quer fazer append. Os arquivos do starter já estão sendo ignorados pelo seu bloco — não precisa do bloco do bootstrap (que mira em uso standalone).
git statusEsperado: nenhum arquivo do starter aparece como untracked/modified. Se algum aparecer, ajusta o .gitignore para cobrir.
Quando sair uma versão nova do llm-project-mapper:
# baixa nova versão
cd /tmp
rm -rf llm-project-mapper-src
git clone --depth=1 https://github.com/wesleysimplicio/llm-project-mapper.git llm-project-mapper-src
# repete o Passo 2 — rsync mantém os seus específicos
cd ~/code/meu-front
rsync -av --exclude='.git' --exclude='.specs/product' --exclude='.specs/architecture' --exclude='.specs/sprints' /tmp/llm-project-mapper-src/ ./O --exclude preserva o conteúdo que você escreveu em .specs/ (vision, ADRs, sprints). Adapta se você customizou outras pastas.
cd ~/code/meu-front
# arquivos seguros (não colidem com host)
rm -rf .agents .skills .specs .claude .codex bin
rm -f _BOOTSTRAP.md INSTALL.md .starter-meta.json
rm -f bootstrap.sh bootstrap.ps1
rm -rf .github/copilot presentation video
rm -f .github/copilot-instructions.md .github/workflows/dod.yml
# arquivos do starter SÓ se você confirmou que NÃO são do host
# (mesma lista comentada no .gitignore — checa primeiro)
# rm -f AGENTS.md CLAUDE.md INIT.md README.pt-BR.md
# rm -f playwright.config.ts
# rm -rf tests/ presentation/ video/
# tira o bloco "LLM Project Mapper (overlay privado)" do .gitignore manualmenteNão há git rm envolvido — esses arquivos estão gitignored, nunca foram commitados.
Se o seu time inteiro vai usar os agents e você quer que skills/specs/agents sejam compartilhados:
- Não gitignora os arquivos do starter.
- Commita
.agents/,.skills/,.specs/,AGENTS.md,CLAUDE.md,INIT.md,.github/copilot*no repo do host. - Mantém
.claude/sessions,.claude/cache,.codex/local,.codex/history,.starter-meta.jsonno.gitignore(estado local de cada dev, não compartilha).
O bloco recomendado para esse caso (modo compartilhado) é o que o bootstrap.sh --append-gitignore yes já adiciona — só ele, sem o bloco "overlay privado" acima.
| Cenário | Modo |
|---|---|
| Sou o único dev usando agents nesse projeto | Overlay privado (este guia) |
| Quero testar antes de commitar para o time | Overlay privado primeiro |
| Time inteiro vai trabalhar com agents | Shared (commita no repo do host) |
| Projeto novo do zero, agents desde o dia 1 | Standalone — clona o llm-project-mapper direto, não overlay |
- Confere que
git statusestá limpo no host. - Abre o seu CLI/IDE de agente favorito na pasta do host.
- Pede para o agente ler
INIT.md(ou roda o handoff que o bootstrap configurou). - O agente vai inferir VISION/DOMAIN/PERSONAS do código do host e escrever em
.specs/. - Primeira task técnica passa pelo loop obrigatório de
AGENTS.md.