Cria, edita e gerencia documentacao de features no Outline (wiki Geovendas). Use quando o usuario diz /doc, pede para "documentar feature", "criar documentacao", "atualizar doc", "documentar funcionalidade", ou menciona criar/editar documentacao de produto no Outline.
Gerencia documentacao de features na wiki Geovendas (Outline). Cria documentos padronizados dentro da collection "Documentacoes", organiza por produto e segue template definido.
Toda documentacao nova usa exatamente este template. As 5 secoes abaixo sao obrigatorias, nesta ordem, com estes titulos exatos. Nao adicionar, remover ou renomear secoes.
O publico principal da documentacao sao usuarios de negocio, analistas, suporte e gestores — nao desenvolvedores. Por isso:
Se durante a escrita de qualquer secao (1 a 4) surgir um detalhe tecnico, mover para "Consideracoes Tecnicas" e, se necessario, referenciar brevemente: "(ver Consideracoes Tecnicas para detalhes de implementacao)".
# **Objetivo / Contexto**
## **Problema:**
> Descrever o problema ou necessidade do ponto de vista do usuario/negocio.
> Evitar termos tecnicos — focar no impacto pratico.
## **Solucao:**
> Explicar como a feature resolve o problema, em linguagem acessivel.
> Focar no valor entregue, nao na implementacao.
---
# Fluxo
> Guia pratico e detalhado de como a feature funciona no dia a dia.
> Escrever como se estivesse explicando para um colega de outra area:
> - Onde encontrar a funcionalidade (menus, telas, botoes)
> - O que acontece em cada etapa (com prints/screenshots se disponivel)
> - Exemplos concretos de uso
> - Comportamentos esperados e mensagens que o usuario vera
>
> NAO incluir: nomes de componentes, classes, endpoints, queries SQL,
> ou qualquer detalhe de codigo. Esses vao em "Consideracoes Tecnicas".
---
# **Ativacao**
> Passo a passo de como ativar ou configurar a feature.
> Usar linguagem direta: "Acesse tal menu", "Clique em tal botao", "Selecione a opcao X".
> Se houver configuracoes tecnicas (variaveis de ambiente, flags, crontab),
> mencionar apenas o efeito pratico aqui e detalhar a configuracao em "Consideracoes Tecnicas".
---
# **Origem**
> Link do chamado que originou a funcionalidade.
---
# **Consideracoes Tecnicas**
> Secao destinada a desenvolvedores e equipe tecnica.
> Aqui entram TODAS as informacoes tecnicas da feature:
> - Componentes e modulos envolvidos (nomes de classes, services, controllers)
> - Endpoints e rotas de API
> - Tabelas e campos de banco de dados afetados
> - Configuracoes de ambiente, flags, variaveis
> - Detalhes de crontab, jobs, filas
> - Trechos de codigo relevantes
> - Dependencias entre servicos
> - Qualquer informacao que outro desenvolvedor precise para dar manutencao
Regras do template:
> A preencher.Quando desviar do template (e somente nestes casos):
Fase sem interacao com o usuario. Executar dois tracks em paralelo:
Host: https://docs.geovendas.com (configurado via MCP server outline no .mcp.json)
Analisar a mensagem do usuario e extrair o maximo possivel:
| Produto | Keywords | ID (interno — nunca mostrar ao usuario) |
|---|---|---|
| B2B | b2b, catalogo, ecommerce | ca5e4f10-2f30-4890-8d7e-d04a7dbf5b8f |
| CRM | crm, crm360, 360, relacionamento | 23cb6761-aff4-47e5-9514-507818f799d2 |
| Servicos | servicos, service, ordem de servico, os | ed7fa041-c6a4-44ae-8d27-ab8c3f8fb242 |
| Analytics | analytics, relatorios, dashboard, bi | 362f0865-61c2-404c-8730-c62e4ed1d787 |
| Forca de Vendas (Textil) | textil, forca de vendas textil, isf textil | 6df4c797-3a6c-4d5a-a9b2-60b326415629 |
| Forca de Vendas (Confeccao) | confeccao, forca de vendas confeccao, isf confeccao | 91d8b213-6e91-4e8d-9518-6ceb71281958 |
#123 ou PR #123 → Pull RequestGEO-1234 → chamado JiraAo encontrar nomes de tabelas de configuracao no codigo ou em fontes (PRs, Jira), substituir pelo nome amigavel na documentacao. Nunca usar o nome tecnico da tabela nas secoes 1 a 4 — usar a descricao abaixo:
| Tabela (nome tecnico) | Usar na documentacao como |
|---|---|
| B2SPCfgGeral | Configuracao geral do Forca de Vendas |
| CRMCfgGeral | Configuracao geral do CRM |
| GeoConfigModulos | Configuracao geral de modulos do GEOvendas |
list_collections().750fc124-e315-4380-baf3-29c929e9fb97.Apresentar um card de confirmacao unico com base no que foi extraido na FASE 0. Tres cenarios possiveis:
Quando a FASE 0 conseguiu extrair feature e produto:
Entendi que voce quer documentar:
Feature: <nome extraido>
Produto: <produto detectado>
Fontes: <PRs e/ou Jira detectados, ou "Nenhuma">
RP / Parcial: Nao
Confirma? Pode ajustar qualquer campo ou adicionar fontes.
Quando a feature foi identificada mas o produto nao:
Entendi que voce quer documentar:
Feature: <nome extraido>
Produto: ?
Qual produto?
1. B2B 2. CRM 3. Servicos 4. Analytics
5. Forca de Vendas (Textil) 6. Forca de Vendas (Confeccao)
/doc puro)Quando a mensagem nao contem informacao suficiente:
O que voce quer documentar e em qual produto?
1. B2B 2. CRM 3. Servicos 4. Analytics
5. Forca de Vendas (Textil) 6. Forca de Vendas (Confeccao)
Exemplo: "Filtro de segmento no CRM, baseado na PR #456 e GEO-1234"
Se o usuario confirmar e adicionar informacao extra (ex: "ok, e usa o PR #789 tambem"), capturar e incorporar automaticamente.
Executar automaticamente, sem interacao adicional:
Buscar docs existentes:
search_documents(query="<nome da feature>") — buscar docs similares.get_collection_structure(collectionId="750fc124-e315-4380-baf3-29c929e9fb97") — verificar estrutura da sub-pasta escolhida.Buscar dados de fontes (se informadas):
gh pr view <numero> --json title,body,files,additions,deletions,mergedAt
gh pr diff <numero>
Extrair: arquivos alterados, features implementadas, endpoints, configuracoes, descricao do PR e comentarios relevantes.getJiraIssue(issueIdOrKey="GEO-1234", fields=["*all"], expand="names", responseContentFormat="markdown")
Extrair: descricao do chamado, criterios de aceite, comentarios relevantes, links para PRs.
Importante: Sempre ler tambem o campo customizado customfield_10066 ("Descricao do procedimento"). Este campo contem cenarios de teste, instrucoes de validacao e dicas de QA escritas pelo desenvolvedor. Usar esse conteudo como fonte complementar para as secoes "Fluxo" e "Consideracoes Tecnicas".Se encontrar doc existente, perguntar: "Ja existe documentacao similar: <titulo>. Deseja atualizar a existente ou criar nova?"
read_document() para ler o conteudo atual.Ir direto para FASE 2 (Preview).
Antes de publicar no Outline, mostrar ao usuario exatamente o que sera publicado — direto na conversa/terminal. O usuario precisa ver o conteudo e aprovar antes de qualquer escrita no Outline.
# **Objetivo / Contexto** (com sub-secoes ## **Problema:** e ## **Solucao:**)# Fluxo# **Ativacao**# **Origem**# **Consideracoes Tecnicas**
Se alguma secao estiver faltando, renomeada ou fora de ordem, corrigir antes de mostrar ao usuario.📄 PREVIEW — Nova documentacao: <Nome da Feature>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<conteudo markdown completo que sera publicado>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
read_document().📄 ANTES (conteudo atual no Outline):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<conteudo atual completo>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 DEPOIS (conteudo proposto):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<conteudo novo completo>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
create_document(
title="<Nome da Feature>",
collectionId="750fc124-e315-4380-baf3-29c929e9fb97",
parentDocumentId="<ID da sub-pasta do produto>",
text="",
publish=true
)
create_document(
title="Documentacao padrao",
collectionId="750fc124-e315-4380-baf3-29c929e9fb97",
parentDocumentId="<ID do doc-pai criado>",
text="<template preenchido>",
publish=true
)
create_document(
title="Documentacao #NOME_CLIENTE",
collectionId="750fc124-e315-4380-baf3-29c929e9fb97",
parentDocumentId="<ID do doc-pai criado>",
text="<apenas diferencas em relacao ao padrao>",
publish=true
)
read_document(id="<doc-id>").update_document(id="<doc-id>", text="<conteudo completo>").ATENCAO:
update_documentsubstitui o conteudo inteiro. Sempre ler antes de atualizar.
Informar ao usuario o que foi feito:
SEMPRE:
NUNCA:
750fc124-e315-4380-baf3-29c929e9fb97)| Erro | Causa | Solucao |
|---|---|---|
| Collection nao encontrada | MCP Outline nao configurado ou collection removida | Verificar configuracao do MCP server e existencia da collection |
| Documento duplicado | Ja existe documentacao para a feature | Perguntar ao usuario se deseja atualizar a existente |
| Sub-pasta nao encontrada | ID da sub-pasta mudou | Usar get_collection_structure para buscar ID atualizado |
| Conteudo perdido ao atualizar | update_document substitui tudo | Sempre ler o documento antes de atualizar |