108 lines
6.0 KiB
Markdown
108 lines
6.0 KiB
Markdown
# Discovery do repositório — Gerador de Propostas EloPro
|
||
|
||
Data: 2026-10-02
|
||
Fase: prompt 00 (fundação; nenhuma feature de produto)
|
||
Raiz: `c:\Users\Usuário\Documents\gerador-proposta`
|
||
|
||
## Conclusão
|
||
|
||
Este repositório é greenfield. Não há aplicação EloPro pré-existente para reutilizar. A stack descrita no pacote de prompts e na especificação v1.0 ainda não está materializada aqui. O remoto aponta para Gitea (`origin` → `https://gitea.fatorxtech.com/cferraz/gerador-proposta.git`) e o branch `main` ainda não tem commits.
|
||
|
||
Decisão de 2026-10-02, registrada no ADR-000: o vazio deste checkout é o baseline oficial. Auth, workspace, papéis, RLS e design system serão criados aqui. Não há outro repositório a importar. A compatibilidade com o restante do EloPro é de produto e de contrato, não de código compartilhado.
|
||
|
||
## 1. Inventário da árvore
|
||
|
||
| Área pedida | Achado |
|
||
| --- | --- |
|
||
| `app/`, `src/`, componentes, `lib` | Ausentes |
|
||
| Server Actions, Route Handlers | Ausentes |
|
||
| Supabase (`supabase/`, clients, migrations) | Ausentes |
|
||
| Testes (`vitest`, `*.test.ts`) | Ausentes |
|
||
| CI (`.github/`, pipelines) | Ausente |
|
||
| Sentry (`sentry.*.config.*`, `@sentry/*`) | Ausente |
|
||
| `package.json`, lockfile, `tsconfig`, Tailwind, ESLint | Ausentes |
|
||
| `.cursor/rules/` | Criado nesta fase: `elopro-gerador-propostas.mdc` |
|
||
| `docs/gerador-propostas/` | Criado nesta fase |
|
||
|
||
Arquivos versionáveis antes desta fase: nenhum (working tree só com `.git`).
|
||
|
||
## 2. Workspace ativo e papéis
|
||
|
||
Não há código que resolva workspace ativo nem que represente `owner` / `admin` / `gestor` / `agent`.
|
||
|
||
Contrato documental (ainda não implementado), em `SOURCE_OF_TRUTH.md`:
|
||
|
||
- Tenant técnico = `workspace_id`, com RLS. CNPJ não é chave de tenant.
|
||
- Papéis: Superadmin (`profiles.is_superadmin`), Administrador (`owner`/`admin`), Gestor (`gestor`), Usuário (`agent`).
|
||
- `workspace_id` não pode vir do cliente como autoridade.
|
||
|
||
Não existe tabela `profiles`, sessão, helper de impersonação nem superadmin neste repo.
|
||
|
||
## 3. RLS, policies e autorização
|
||
|
||
Não há migrations, policies, helpers de autorização nem fluxo de impersonação. Nada a reutilizar. A regra do agente exige revalidação server-side e RLS; isso começa no prompt 02, não aqui.
|
||
|
||
## 4. Design system e Tailwind v4
|
||
|
||
Não há tokens, componentes EloPro, `tailwind` nem consumo de CSS. A especificação visual (EloPro V2.1) está só no texto: Cloud White `#FBFBFE`, Midnight Ink `#071B45`, Primary Blue `#1F6FFF`, Blue 600 `#225EDB`, Bright Blue `#2F8FFF`, Aqua Signal `#00C2A8`, Manrope, raios e motion descritos em `SOURCE_OF_TRUTH.md` §6. Ícones EloPro não estão no repositório; Lucide fica como fallback futuro, não como biblioteca da marca.
|
||
|
||
## 5. Redis / ioredis
|
||
|
||
Ausente. Não há cliente, URL nem uso de lock.
|
||
|
||
## 6. Storage privado e signed URLs
|
||
|
||
Ausente. Não há bucket, adapter nem padrão de signed URL.
|
||
|
||
## 7. Server Actions, Route Handlers, validação e erros
|
||
|
||
Ausentes. Não há convenção local de validação (Zod ou outra) nem de erro de domínio.
|
||
|
||
## 8. Sentry
|
||
|
||
Ausente nos três runtimes (client, server, edge). Não há DSN nem scrubbing configurado.
|
||
|
||
## 9. CI e comandos canônicos
|
||
|
||
Não há pipeline. Não há scripts `typecheck`, `lint`, `test` ou `build`.
|
||
|
||
### Baseline registrado (2026-10-02)
|
||
|
||
| Comando | Resultado |
|
||
| --- | --- |
|
||
| `typecheck` | Não existe. Sem `package.json` / `tsc`. |
|
||
| `lint` | Não existe. Sem ESLint. |
|
||
| `test` | Não existe. Sem Vitest. |
|
||
| `build` | Não existe. Sem Next.js. |
|
||
| Instalação | Não executada. Não há dependências declaradas e o prompt 00 proíbe introduzir dependências sem necessidade. |
|
||
|
||
Falhas preexistentes de toolchain: não se aplicam. O baseline é “repositório sem toolchain”. Regressão futura será qualquer falha introduzida depois que esses comandos passarem a existir.
|
||
|
||
## Divergências entre stack esperada e o repo
|
||
|
||
Stack obrigatória do pacote (ainda não instalada): Next.js 16 App Router, React 19, TypeScript 5, Tailwind CSS v4, Supabase Auth + PostgreSQL (`@supabase/supabase-js`, `@supabase/ssr`), Redis (`ioredis`), TanStack Query v5 só onde houver cache client-side real, `@react-pdf/renderer`, Sentry, `@anthropic-ai/sdk` só para IA aprovada, Lucide só como fallback, `@dnd-kit` só se drag-and-drop for necessário, Vitest, ESLint 9, `postgres` + `tsx` para migrations.
|
||
|
||
Premissa do prompt 00 (“integrar ao ecossistema EloPro existente e reutilizar helpers”) **não se confirma neste checkout**. O próximo prompt precisa tratar o app como novo, com boundaries explícitos, em vez de procurar pastas que não existem.
|
||
|
||
Entradas externas usadas nesta análise (não estão no Git):
|
||
|
||
- `Especificacao_Final_Gerador_de_Propostas_EloPro_v1.0.docx` (02/10/2026)
|
||
- `Prompt_Pack_Cursor_Gerador_Propostas_EloPro_v1.0.zip`
|
||
- `elopro-gerador-propostas.mdc`
|
||
|
||
## Riscos antes do prompt 01
|
||
|
||
1. **Plataforma EloPro ausente.** Resolvido pelo ADR-000: o produto segue standalone neste repositório. Entitlements (P-008) continuam sem lifecycle definido.
|
||
2. **Pendências P-001..P-012 permanecem abertas.** Não foram preenchidas. P-009, P-010, P-011 e P-006 são o alvo dos ADRs do prompt 01 e devem ficar `Proposed`.
|
||
3. **Sem baseline executável.** Gates A–E do `EXECUTION_ORDER.md` não podem ficar verdes até existir toolchain. O prompt 01 deve criar o mínimo de projeto só se o escopo dele exigir ports testáveis; o prompt 00 não cria app.
|
||
4. **Sem commits.** `main` não tem histórico. Convenção de commit ainda não existe no repo.
|
||
5. **Isolamento multi-tenant ainda é só documento.** Qualquer feature antes de RLS/policies (prompt 02) e auth server-side (prompt 03) não pode ser considerada segura.
|
||
6. **Spec longa fora do Git.** A fonte normativa operacional copiada é `SOURCE_OF_TRUTH.md`. O docx completo continua em Downloads; se ele mudar, este discovery não acompanha sozinho.
|
||
|
||
## O que esta fase não fez
|
||
|
||
- Nenhuma feature de negócio (modelos, propostas, PDF, e-mail, CRO).
|
||
- Nenhuma dependência nova.
|
||
- Nenhuma migration.
|
||
- Nenhuma escolha silenciosa sobre P-001..P-012.
|