Files
2026-10-03 00:00:45 -03:00

108 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.