Objetivo
O Catálogo é a fonte única do que a organização vende (na Witbiz, o portfólio abaixo): produtos, módulos, faixas públicas, o que inclui e não inclui, entregáveis, quando recomendar e os 15 agentes do AI Layer. Tudo o que precifica lê daqui: o Agente SDR, a página da Pré-proposta, a etapa 2, o editor de Proposta, o Scope Builder e o agente de Expansão. Existem duas camadas: o catálogo em código (src/catalogo.ts, ADR-0004), que é a semente e a validação das chaves, e o Catálogo em banco (catalogo_itens, F0), por Organização, que muda faixas, preços, custos, prazos, escopo padrão e textos sem deploy.
Fluxo
- Semente em código.
catalogo.tsdefine 17 itens (Foundation: 6 módulos e a implantação completa; Sprint: Essencial, Completo e Enterprise; AI Layer: agente individual, 3 suítes e sustentação mensal; adicionais: workshop, check-up e implantação Radhr AI) e os 15 agentes, cada um com vertical, máquina, resumo, exemplo de entrega e sinais da etapa 2. - Semear o banco. Uma organização nova já nasce com a semente. Para a Witbiz (ou para completar o que faltar), o admin clica em "Semear o catálogo a partir do código" em
/radar/catalogo. A semente cria 32 linhas: os 17 itens e os 15 agentes comoai.agente:<id>. - Editar. O admin abre "editar" em um item e muda nome, resumo, faixa mínima e máxima, preço padrão, custo interno, margem alvo, prazo, escopo padrão, "quando recomendar" e se está ativo.
- Criar item livre. Para algo fora do código (ex.: um serviço pontual), o admin cria um item livre com nome, categoria, tipo, resumo e preço; a chave vira
livre.<nome>. - Valer. Em cada requisição que precifica, a Radhr AI carrega as linhas da organização (cache de 5 minutos) e aplica sobre o catálogo em memória. Cada edição limpa o cache na hora naquele servidor.
- Usar. O agente do site e a etapa 2 escolhem itens por chave; o código precifica pelo porte; o editor de Proposta lista os itens ativos com o preço de lista; o Scope Builder usa o escopo padrão e o prazo.
- Auditar. Salvar ou criar um item dispara, em segundo plano, a cadeia
catalogo_editado: o Organization Auditor confere produtos e serviços do perfil de IA da organização contra o catálogo (veria/organization-intelligence).
Regras de negócio
- Valor de referência pelo porte. Posição na faixa: pequeno 0,3; médio 0,5; grande 0,7 (porte desconhecido = médio), arredondado a R$ 500. —
src/catalogo.ts(POSICAO_POR_PORTE) - Faixas de referência do código: Foundation · CRM R$ 4–8 mil; Analytics R$ 3–6 mil; SEO Técnico R$ 4–8 mil; GEO R$ 5–10 mil; Automação R$ 4–8 mil; Réguas R$ 5–10 mil; implantação completa R$ 25–50 mil; Sprint Essencial R$ 20–35 mil, Completo R$ 35–60 mil, Enterprise R$ 60–100 mil; agente individual R$ 8–18 mil; suíte R$ 25–60 mil; sustentação R$ 2,5–6 mil/mês; workshop R$ 5–10 mil; implantação Radhr AI R$ 2,5–6 mil (Profissional / Escala, ADR-0016); check-up R$ 3–6 mil. O banco pode sobrescrever. —
src/catalogo.ts(CATALOGO) - Agrupamentos. 4 ou mais módulos do Foundation viram a implantação completa; 2 ou mais agentes da mesma máquina viram a suíte (vendas: SDR, Lead Scoring, Briefing; retenção: Atendimento, NPS, Churn; operação: Reunião→CRM, Data Quality, Relatórios). Os demais agentes são avulsos. —
src/catalogo.ts(montarPreProposta,AGENTES) - Os 15 agentes são itens. Na Pré-proposta, cada um entra como
ai.agentecom o campo do agente e o preço de "agente individual"; no banco e na Proposta, comoai.agente:<id>. —src/catalogo.ts,src/catalogo-db.ts(linhasSemente) - Condições comerciais não ficam no catálogo em banco. O padrão está no código (até 10x sem juros, 5% à vista, validade de 15 dias); a organização pode definir as suas nas regras de preço e de proposta do perfil de IA, e então valem no prompt do Agente SDR, na etapa 2, na Próxima ação, na Estratégia e no editor de Proposta. O total gravado na Pré-proposta (parcela e valor à vista) segue o padrão do código. —
src/catalogo.ts(CONDICOES_COMERCIAIS),src/perfil/condicoes.ts - Uma chave por organização.
catalogo_itenstem chave única por organização. — migração 0012 - Semear nunca sobrescreve. Insere só as chaves que faltam; o que já foi editado fica. Registra
catalogo_semeadoquando entra algo. —src/catalogo-db.ts(semear) - Edição com trilha. Só grava os campos que mudaram; recusa faixa máxima menor que a mínima; soma 1 em
versao; guarda antes, depois e quem emcatalogo_historico; registracatalogo_alterado. —src/catalogo-db.ts(salvarItem) - O que o banco muda em cada lugar.
- Faixa, nome, resumo, inclui, não inclui, entregáveis e "quando" só se aplicam às chaves que existem no código (os 17 itens). Valem para o agente do site, a página
/p/, a etapa 2, a Proposta e o Copiloto. —src/catalogo-db.ts(aplicarLinhas) - Linhas
ai.agente:<id>elivre.*não mudam o catálogo em memória: o agente do site e a etapa 2 não as veem. A faixa de um agente vem sempre da linhaai.agente. —src/catalogo-db.ts - Preço padrão, custo interno e prazo valem só no editor de Proposta (preço de lista, margem) e no Scope Builder (prazo; sem prazo, 21 dias). A Pré-proposta ignora o preço padrão e usa a faixa. —
src/propostas.ts(precoDeCatalogo),src/escopo.ts - Margem alvo vira a margem de referência da Proposta. A política de desconto compara a margem estimada com a média das
margem_alvodos itens da versão, ponderada pelo valor (recorrentes fora). Sem nenhum item com margem alvo, vale a referência fixa de 35%. Abaixo da referência, aviso; mais de 10 pontos abaixo, exige admin. —src/propostas.ts(margemAlvo,politicaDesconto) - Inativo sai de tudo o que é oferecido. Um item ou agente (
ai.agente:<id>) inativo some: - do prompt do agente do site e da precificação da Pré-proposta;
- das recomendações da etapa 2, pela regra e pela IA;
- das sugestões da expansão e da ferramenta
catalogodo Copiloto (que lista o catálogo da organização da sessão); - das sugestões do editor e da lista "Adicionar do catálogo" da Proposta (sem preço).
Com a suíte ou a implantação completa desativada, ficam os itens avulsos, também na soma que a página da etapa 2 faz no navegador. Os inativos valem por organização: duas organizações atendidas pelo mesmo Worker não veem os inativos uma da outra. Pré-propostas antigas seguem legíveis. — src/catalogo.ts (itemAtivo), src/catalogo-db.ts (aplicarLinhas)
- Escopo padrão. Uma linha por etapa;
[e]no fim marca entregável. A semente usa os entregáveis de cada item; para agentes, 5 etapas (descoberta, construção, testes, publicação e documentação, 90 dias de suporte). O Scope Builder procura primeiro a linha do agente (ai.agente:<id>), depois a chave base, depois a semente e, por fim, os entregáveis do código. —src/catalogo-db.ts,src/escopo.ts - Item livre. Nome e categoria obrigatórios; o preço informado vira preço padrão e faixa mínima e máxima; tipo "recorrente" vira mensal. —
src/catalogo-db.ts(criarItem) - Sem banco, vale o código. Sem a migração 0012, sem linhas ou com falha de leitura, o catálogo do código continua valendo. —
src/catalogo-db.ts(prepararCatalogo)
Casos de uso
- Reajuste de faixa. Os sócios sobem a faixa do GEO; o admin edita faixa mínima e máxima; em até 5 minutos o agente do site, a etapa 2 e as novas Propostas usam a faixa nova. O histórico guarda o valor anterior.
- Margem nas propostas. O admin cadastra o custo interno do Sprint Completo; o editor de Proposta passa a mostrar a margem estimada. Com a margem alvo cadastrada (por exemplo, 45%), o alerta passa a usar esse valor em vez dos 35% fixos.
- Prazo e escopo de projeto. O admin define prazo de 30 dias e as etapas do Foundation · CRM, marcando com
[e]o que é entregável; os próximos escopos gerados a partir de contratos usam esse modelo. - Serviço fora do portfólio. Um treinamento sob medida entra como item livre e fica disponível no editor de Proposta; o agente do site não o oferece.
Telas
- **
/radar/catalogo— Catálogo.** Em cima, o Catálogo em banco: uma linha por item com faixa, custo, margem calculada (preço padrão ou faixa máxima contra o custo), prazo e número de etapas do escopo padrão; para admin, "editar" em cada linha, "Semear" e "Novo item livre". Embaixo, a referência de leitura: parâmetros de precificação, os itens por produto com o Valor de referência por porte, os 15 agentes com vertical, máquina, exemplo e sinais, e as perguntas da etapa 2 com os sinais de cada opção. A lista é a da organização da sessão (src/radar/catalogo.ts). - **
/radar/lead/:id/proposta.** Onde o Consultor usa o catálogo: "Adicionar do catálogo" lista os itens ativos com o preço pelo porte do lead (verfuncional/propostas).
Permissões
- Consultor, financeiro e leitura: veem
/radar/catalogo, sem os controles de edição. - Admin: semeia, edita e cria itens livres. A checagem usa o papel vigente da sessão (vínculo de membro da organização); quem não é admin recebe 403 "Só administradores editam o catálogo".
- Lead anônimo: não acessa o catálogo; vê só os itens da própria Pré-proposta e da etapa 2.
- Plano: o catálogo não depende de plano. Cada organização edita o seu.
Perguntas frequentes
Mudei a faixa na Radhr AI e a Pré-proposta não mudou. Por quê? Há cache de 5 minutos por servidor; espere e teste de novo. Pré-propostas já geradas não são recalculadas. Se a linha editada for de um agente (ai.agente:<id>), a faixa não se aplica ao chat: edite a linha ai.agente.
Preciso de deploy para mudar preço? Não para faixas, preço padrão, custo, prazo e textos dos itens: isso fica no banco. Condições comerciais (parcelas, desconto à vista, validade) mudam sem deploy pelo perfil de IA da organização. A posição por porte, as regras de agrupamento e a lista de agentes estão no código e exigem deploy.
Desativei um item. O agente do site ainda recomenda? Não. Inativo sai do prompt do agente do site, da precificação da Pré-proposta, da etapa 2, do editor de Proposta, da expansão e do Copiloto. Até 5 minutos de cache por servidor podem passar antes de valer em todos.
Qual a diferença entre preço padrão e faixa? A faixa gera o Valor de referência pelo porte na Pré-proposta e no editor. O preço padrão, quando preenchido, substitui a faixa só como preço de lista no editor de Proposta.
Onde vejo quem mudou um preço? Na tabela catalogo_historico (antes, depois, quem, quando) e no evento catalogo_alterado. A tela ainda não mostra esse histórico.
Criei um item livre. O Copiloto enxerga? Não. A ferramenta catalogo do Copiloto lista os 17 itens e os 15 agentes do código que estão ativos na organização, com as faixas já atualizadas pelo banco.