Claude Code Plugins

Community-maintained marketplace

Feedback
0
0

Consulta e opera dados logisticos da Nacom Goya. Consulta pedidos, estoque, disponibilidade, lead time. Cria separacoes. Resolve entidades (pedido, produto, cliente, grupo). Use para perguntas como 'tem pedido do Atacadao?', 'quanto tem de palmito?', 'quando fica disponivel?', 'crie separacao do VCD123'.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name gerindo-expedicao
description Consulta e opera dados logisticos da Nacom Goya. Consulta pedidos, estoque, disponibilidade, lead time. Cria separacoes. Resolve entidades (pedido, produto, cliente, grupo). Use para perguntas como 'tem pedido do Atacadao?', 'quanto tem de palmito?', 'quando fica disponivel?', 'crie separacao do VCD123'.
allowed-tools Read, Bash, Glob, Grep

Gerindo Expedicao

Skill para consultas e operacoes logisticas da Nacom Goya.


Indice

  1. Quando Usar Esta Skill
  2. DECISION TREE - Qual Script Usar?
  3. Scripts Disponiveis
  4. Fluxo de Criacao de Separacao
  5. Referencias (tables, business, glossary, synonyms, products, examples)

Quando Usar Esta Skill

USE para:

  • Consultas de pedidos: "tem pedido do Atacadao?", "pedido VCD123 esta em separacao?"
  • Consultas de estoque: "quanto tem de palmito?", "chegou cogumelo?"
  • Analise de disponibilidade: "quando VCD123 fica disponivel?", "o que vai dar falta?"
  • Calculo de prazo: "se embarcar amanha, quando chega?"
  • Criacao de separacao: "crie separacao do VCD123 pra amanha"
  • Resolucao de entidades: identificar pedido, produto, cliente por termos parciais

NAO USE para:

  • Analise COMPLETA da carteira com decisoes (use o Agent analista-carteira)
  • Comunicacao com PCP ou Comercial (use o Agent)
  • Decisoes de priorizacao P1-P7 (use o Agent)

DECISION TREE - Qual Script Usar?

SEMPRE consulte esta secao ANTES de executar qualquer script. A escolha correta evita resultados errados e retrabalho.

Mapeamento Rapido

Se a pergunta menciona... Use este script Com estes parametros
PRODUTO + CLIENTE/GRUPO ("quanto de X pro Y?") consultando_situacao_pedidos.py --grupo Y --produto X ou --cliente Y --produto X
Pedidos de um grupo ("tem pedido do atacadao?") consultando_situacao_pedidos.py --grupo atacadao
Pedidos de um cliente ("tem pedido do Carrefour?") consultando_situacao_pedidos.py --cliente Carrefour
Pedidos atrasados consultando_situacao_pedidos.py --atrasados
Estoque de produto ("quanto tem de X?") consultando_produtos_estoque.py --produto X --completo
Entradas recentes ("chegou X?") consultando_produtos_estoque.py --produto X --entradas
Ruptura/falta ("vai faltar X?") consultando_produtos_estoque.py --ruptura --dias 7
Quando pedido fica disponivel analisando_disponibilidade_estoque.py --pedido VCD123
Disponibilidade de grupo analisando_disponibilidade_estoque.py --grupo atacadao --completude
Prazo de entrega ("quando chega?") calculando_leadtime_entrega.py --pedido X --data-embarque Y
Criar separacao criando_separacao_pedidos.py --pedido X --expedicao Y (SEM --executar primeiro!)
Programacao de producao consultando_programacao_producao.py --listar --dias 7

Regras de Decisao (em ordem de prioridade)

  1. Se pergunta tem PRODUTO + CLIENTE/GRUPO juntos: → Use consultando_situacao_pedidos.py --grupo X --produto Y ou --cliente X --produto Y → Exemplo: "quantas caixas de ketchup tem pro atacadao?" → --grupo atacadao --produto ketchup

  2. Se pergunta e sobre PEDIDOS de um cliente/grupo (sem produto): → Use consultando_situacao_pedidos.py --grupo X ou --cliente X → Exemplo: "tem pedido do assai?" → --grupo assai

  3. Se pergunta e sobre ESTOQUE de produto (sem cliente): → Use consultando_produtos_estoque.py --produto X --completo → Exemplo: "quanto tem de palmito?" → --produto palmito --completo

  4. Se pergunta e sobre DISPONIBILIDADE de pedido: → Use analisando_disponibilidade_estoque.py --pedido X → Exemplo: "quando VCD123 fica disponivel?" → --pedido VCD123

  5. Se pergunta e sobre PRAZO de entrega: → Use calculando_leadtime_entrega.py → Exemplo: "se embarcar amanha, quando chega?" → --pedido X --data-embarque amanha

  6. Se for ACAO de criar separacao: → Use criando_separacao_pedidos.py (SEMPRE simular antes de executar!) → Exemplo: "crie separacao do VCD123" → --pedido VCD123 --expedicao [data] (SEM --executar)

Como Decidir (Raciocinio Obrigatorio)

ANTES de escolher qualquer script, faca este raciocinio mentalmente:

PASSO 1 - IDENTIFICAR: O que o usuario quer saber?

  • E sobre PEDIDOS? (quem comprou, quanto, quando entregar)
  • E sobre ESTOQUE? (tem, vai faltar, chegou, quanto sobra)
  • E sobre DISPONIBILIDADE? (quando pedido fica pronto)
  • E sobre PRAZO? (quando chega se embarcar dia X)
  • E uma ACAO? (criar separacao)

PASSO 2 - VERIFICAR: Tem cliente/grupo mencionado?

  • SIM + produto → consultando_situacao_pedidos --grupo/--cliente + --produto
  • SIM sem produto → consultando_situacao_pedidos --grupo/--cliente
  • NAO → provavelmente consultando_produtos_estoque

PASSO 3 - CONFIRMAR: A escolha faz sentido?

  • Se escolhi ESTOQUE mas usuario perguntou "pro atacadao" → ERRADO (use PEDIDOS)
  • Se escolhi PEDIDOS mas usuario perguntou "quanto tem em estoque" → ERRADO (use ESTOQUE)
  • Se escolhi DISPONIBILIDADE mas usuario perguntou "quando chega" → ERRADO (use LEADTIME)

PASSO 4 - PERGUNTAR: Se ainda em duvida apos os 3 passos → pergunte ao usuario!


Leitura de References (Sob Demanda)

**FILOSOFIA: 50% Regra / 50% IA**

Esta skill implementa um equilibrio entre scripts e IA:

SCRIPTS fazem:

  • Resolver entidades (cliente, grupo, produto)
  • Buscar dados no banco
  • Retornar TODOS os candidatos (sem truncar)

IA decide:

  • Como agrupar/apresentar resultados
  • Se precisa perguntar algo ao usuario
  • Quando usar references para contexto
ANTES de executar scripts, o agente DEVE ler os references relevantes baseado na pergunta:
Gatilho na Pergunta Reference a Ler Motivo
Produto mencionado references/products.md Entender abreviacoes (CI, AZ VF, BD)
Cliente/Grupo references/business.md Prefixos CNPJ, constantes
Termo desconhecido references/glossary.md "matar", "ruptura", "FOB"
Variacao de escrita references/synonyms.md ketchup→catchup
Comunicar PCP/Comercial references/communication.md Templates de mensagem
Duvida de script references/examples.md Validar escolha
**Exemplo de Fluxo Completo**

Pergunta: "quanto tem de palmito pro atacadao 183"

  1. IA le references/glossary.md → "pendente" = qtd_saldo > 0
  2. IA le references/business.md → atacadao = grupo com prefixos CNPJ
  3. IA executa: python consultando_situacao_pedidos.py --grupo atacadao --produto palmito
  4. Script encontra 18 candidatos de palmito
  5. Script busca TODOS na carteira do cliente (nao para por multiplos)
  6. Script retorna 2 SKUs com saldo: Tolete 15x300g (2.592 un), Rodela 15x300g (1.053 un)
  7. IA apresenta tabela consolidada ao usuario

IMPORTANTE: Quando script retorna ia_decide: true, a IA DEVE processar os dados e decidir a melhor forma de apresentar.


Termos Ambiguos - PERGUNTE antes de agir!

Se o usuario usar estes termos, PARE e PERGUNTE antes de executar.

"programacao de entrega" (CRITICO - 4 interpretacoes)

Opcao Significado Campo Tabela
A Data que cliente solicitou data_entrega_pedido CarteiraPrincipal
B Data que vamos expedir expedicao Separacao
C Data que vai chegar no cliente agendamento Separacao
D Protocolo de agendamento protocolo Separacao

PERGUNTAR: "Voce quer saber: A) data que o cliente solicitou, B) data de expedicao programada, C) data de chegada no cliente, ou D) protocolo de agendamento?"

"quantidade pendente"

Opcao Significado Fonte
Carteira Ainda nao separado CarteiraPrincipal
Separacao Separado mas nao faturado Separacao (sincronizado_nf=False)
Total Ambos Carteira + Separacao

ACAO PADRAO: Mostrar AMBOS e explicar: "Na carteira: X un | Em separacao: Y un | Total pendente: Z un"

"itens" vs "unidades"

NUNCA usar "itens" sozinho. SEMPRE especificar:

  • "X linhas de produto" (SKUs diferentes)
  • "X unidades" ou "X caixas" (quantidade)

Multiplas lojas do mesmo grupo

Se resultado tiver mais de 1 loja do mesmo grupo (ex: Atacadao): PERGUNTAR: "Encontrei pedidos em X lojas do [grupo]. Qual loja especificamente, ou quer ver todas?"

Outros termos ambiguos

Termo Possibilidades O que PERGUNTAR
"quando fica disponivel?" Pedido ou produto? "Voce quer saber quando um PEDIDO fica disponivel ou quando um PRODUTO estara em estoque?"
"situacao" De que? "Situacao de qual pedido ou produto?"
"crie separacao" Data faltando "Para qual data de expedicao?"

Exemplos de Boas e Mas Escolhas

Pergunta: "quantas caixas de ketchup tem pendentes pro atacadao 183" Escolha: consultando_situacao_pedidos.py --grupo atacadao --produto ketchup Motivo: Combina PRODUTO + GRUPO, que e o caso 1 das regras de decisao. Pergunta: "quantas caixas de ketchup tem pendentes pro atacadao 183" Escolha ERRADA: consultando_produtos_estoque.py --produto ketchup Problema: Mostra catalogo de produtos, NAO pedidos do cliente. O usuario quer saber qtd pendente para o atacadao, nao estoque geral. Pergunta: "quanto tem de palmito?" Escolha: consultando_produtos_estoque.py --produto palmito --completo Motivo: Pergunta sobre ESTOQUE de produto, sem mencionar cliente. Pergunta: "quanto tem de palmito?" Escolha ERRADA: consultando_situacao_pedidos.py --produto palmito Problema: Mostra pedidos com palmito, NAO estoque. O usuario quer saber quantidade em estoque. Pergunta: "quando o pedido VCD123 fica disponivel?" Escolha: analisando_disponibilidade_estoque.py --pedido VCD123 Motivo: Pergunta sobre DISPONIBILIDADE de pedido especifico. Analisa estoque vs demanda. Pergunta: "quando o pedido VCD123 fica disponivel?" Escolha ERRADA: consultando_situacao_pedidos.py --pedido VCD123 --status Problema: Mostra status atual do pedido, NAO projeta quando tera estoque disponivel. Pergunta: "se embarcar amanha, quando chega em Manaus?" Escolha: calculando_leadtime_entrega.py --pedido X --data-embarque amanha Motivo: Calculo de PRAZO de entrega com data de embarque fornecida. Pergunta: "se embarcar amanha, quando chega em Manaus?" Escolha ERRADA: analisando_disponibilidade_estoque.py --pedido X Problema: Analisa disponibilidade de estoque, NAO calcula prazo de transporte. Pergunta: "crie separacao do VCD123 pra segunda" Escolha: criando_separacao_pedidos.py --pedido VCD123 --expedicao segunda Motivo: ACAO de criar separacao com data informada. SEMPRE simular primeiro (SEM --executar). Pergunta: "crie separacao do VCD123 pra segunda" Escolha ERRADA: criando_separacao_pedidos.py --pedido VCD123 --expedicao segunda --executar Problema: NUNCA usar --executar sem simular primeiro e confirmar com usuario! Pergunta: "o que vai ser produzido essa semana?" Escolha: consultando_programacao_producao.py --listar --dias 7 --por-dia Motivo: Consulta de PROGRAMACAO de producao futura com agrupamento por dia. Pergunta: "o que vai ser produzido essa semana?" Escolha ERRADA: consultando_produtos_estoque.py --entradas Problema: Mostra entradas de estoque (producao JA realizada), NAO programacao futura.

Scripts Disponiveis

Ambiente Virtual

Sempre ativar antes de executar:

source .venv/bin/activate

1. analisando_disponibilidade_estoque.py

Proposito: Analisa disponibilidade de estoque para pedidos ou grupos de clientes.

Queries cobertas: Q1, Q2, Q3, Q4, Q5, Q6, Q9, Q11, Q12

source .venv/bin/activate && \
python .claude/skills/gerindo-expedicao/scripts/analisando_disponibilidade_estoque.py [parametros]
Parametro Descricao Exemplo
--pedido Numero do pedido ou "grupo termo" --pedido VCD123 ou --pedido "atacadao 183"
--grupo Grupo empresarial --grupo atacadao, --grupo assai, --grupo tenda
--loja Identificador da loja (em raz_social_red) --loja 183
--uf Filtrar por UF --uf SP
--data Data para analise (hoje, amanha, dd/mm, YYYY-MM-DD) --data amanha
--sem-agendamento Apenas pedidos sem exigencia de agendamento flag
--sugerir-adiamento Sugerir pedidos para adiar (liberar estoque) flag
--diagnosticar-origem Distinguir falta absoluta vs relativa flag
--completude Calcular % faturado vs pendente flag
--atrasados Analisar pedidos com expedicao vencida flag
--diagnosticar-causa Detalhar causa do atraso flag
--ranking-impacto Ranking de pedidos que mais travam carteira flag
--limit Limite de resultados (default: 100) --limit 20

2. consultando_situacao_pedidos.py

Proposito: Consulta pedidos por diversos filtros e perspectivas.

Queries cobertas: Q8, Q10, Q14, Q16, Q19

source .venv/bin/activate && \
python .claude/skills/gerindo-expedicao/scripts/consultando_situacao_pedidos.py [parametros]
Parametro Descricao Exemplo
--pedido Numero do pedido ou termo de busca --pedido VCD123
--grupo Grupo empresarial (atacadao, assai, tenda) --grupo atacadao
--cliente NOVO CNPJ ou nome parcial do cliente --cliente Carrefour, --cliente "45.543.915"
--produto Filtrar por produto (combina com --grupo ou --cliente) --produto palmito
--atrasados Listar pedidos atrasados flag
--verificar-bonificacao Verificar bonificacoes faltando flag
--status Mostrar status detalhado flag
--consolidar-com Buscar pedidos para consolidar --consolidar-com "assai 123"
--ate-data Data limite de expedicao --ate-data amanha, --ate-data 15/12
--em-separacao Buscar em Separacao (nao CarteiraPrincipal) flag
--limit Limite de resultados (default: 100) --limit 20

Combinacoes suportadas:

  • --grupo atacadao --produto ketchup → Pedidos do Atacadao com ketchup
  • --cliente Carrefour --produto palmito → Pedidos do Carrefour com palmito
  • --cliente "45.543.915" → Busca por CNPJ

3. consultando_produtos_estoque.py

Proposito: Consulta estoque atual, movimentacoes, pendencias, projecoes e SITUACAO COMPLETA.

Queries cobertas: Q13, Q17, Q18, Q20 + SITUACAO COMPLETA

source .venv/bin/activate && \
python .claude/skills/gerindo-expedicao/scripts/consultando_produtos_estoque.py [parametros]
Parametro Descricao Exemplo
--produto Nome ou termo do produto --produto palmito, --produto "az verde"
--completo SITUACAO COMPLETA (estoque, separacoes, demanda, producao, projecao) flag
--entradas Mostrar entradas recentes (qtd > 0) flag
--saidas Mostrar saidas recentes (qtd < 0) flag
--pendente Quantidade pendente de embarque + lista pedidos flag
--sobra Calcular sobra de estoque apos demanda flag
--ruptura Previsao de rupturas flag
--dias Horizonte de projecao em dias (default: 7) --dias 14
--limit Limite de resultados (default: 100) --limit 50
--limit-entradas Limite de movimentacoes por produto (default: 100) --limit-entradas 20

Opcao --completo retorna:

  • Estoque atual e menor estoque nos proximos 7 dias
  • Separacoes por data de expedicao (detalhado com pedidos)
  • Demanda total (Carteira bruta/liquida + Separacoes)
  • Programacao de producao (proximos 14 dias)
  • Projecao dia a dia (estoque projetado)
  • Indicadores: sobra, cobertura em dias, % disponivel, previsao de ruptura

4. calculando_leadtime_entrega.py

Proposito: Calcula data de entrega OU data de expedicao sugerida (calculo reverso).

Queries cobertas: Q7 + CALCULO REVERSO

source .venv/bin/activate && \
python .claude/skills/gerindo-expedicao/scripts/calculando_leadtime_entrega.py [parametros]
Parametro Descricao Exemplo
--pedido Numero do pedido ou termo de busca --pedido VCD123, --pedido "atacadao 183"
--cidade Cidade de destino (alternativa ao pedido) --cidade "Sao Paulo"
--uf UF de destino (requerido se usar --cidade) --uf SP
--data-embarque Data de embarque (calcula data de entrega) --data-embarque amanha
--data-entrega NOVO Data de entrega desejada (calcula data de embarque) --data-entrega 25/12
--limit Limite de opcoes de transportadora (default: 10) --limit 3

Modos de operacao:

Modo Parametro Descricao
Previsao de entrega --data-embarque Se embarcar dia X, quando chega?
Sugestao de embarque --data-entrega Para chegar dia Y, quando embarcar?
Auto (usa pedido) Apenas --pedido Usa data_entrega_pedido para calculo reverso

5. criando_separacao_pedidos.py

Proposito: Cria separacoes de pedidos via linguagem natural.

IMPORTANTE: Sempre executar primeiro SEM --executar para simular!

source .venv/bin/activate && \
python .claude/skills/gerindo-expedicao/scripts/criando_separacao_pedidos.py [parametros]
Parametro Descricao Exemplo
--pedido Numero do pedido (OBRIGATORIO) --pedido VCD123
--expedicao Data de expedicao (OBRIGATORIO) --expedicao amanha, --expedicao 20/12
--tipo Tipo de separacao --tipo completa, --tipo parcial
--pallets Quantidade de pallets desejada --pallets 28
--pallets-inteiros Forcar pallets inteiros por item flag
--apenas-estoque Separar apenas o que tem em estoque flag
--excluir-produtos JSON array de produtos a excluir --excluir-produtos '["KETCHUP","MOSTARDA"]'
--agendamento Data de agendamento --agendamento 22/12
--protocolo Protocolo de agendamento --protocolo AG12345
--agendamento-confirmado Marcar agendamento como confirmado flag
--executar Efetivamente criar (sem isso, apenas simula) flag

Modos de operacao:

Modo Descricao
Sem --executar SIMULA e mostra o que seria criado
Com --executar CRIA efetivamente a separacao

Tipos de separacao:

Tipo Parametros Descricao
Completa --tipo completa Todos os itens com qtd total
Parcial --tipo parcial N itens com qtds especificas
Por pallets --pallets N Distribuir N pallets proporcionalmente
Pallets inteiros --pallets N --pallets-inteiros Cada item = pallets inteiros
Apenas estoque --apenas-estoque So o que tem disponivel
Excluindo produtos --excluir-produtos '[...]' Tudo exceto lista

6. consultando_programacao_producao.py

Proposito: Lista programacao de producao e simula alteracoes para resolver ruptura.

Queries cobertas: Q15 + LISTAGEM COMPLETA

source .venv/bin/activate && \
python .claude/skills/gerindo-expedicao/scripts/consultando_programacao_producao.py [parametros]
Parametro Descricao Exemplo
--listar NOVO Lista TODA a programacao de producao flag
--dias Horizonte em dias (default: 14) --dias 7
--por-dia Mostrar detalhes agrupados por dia flag
--por-linha Mostrar detalhes agrupados por linha flag
--linha Filtrar por linha de producao --linha "Linha A"
--produto Produto em ruptura (para reprogramacao) --produto "VF pouch 150"

Modos de operacao:

Modo Parametro Descricao
Listagem --listar Toda a programacao dos proximos N dias
Reprogramacao --produto Opcoes para resolver ruptura

Exemplo de listagem completa:

python .claude/skills/gerindo-expedicao/scripts/consultando_programacao_producao.py --listar --dias 7 --por-dia

7. resolver_entidades.py

Proposito: Modulo utilitario para resolver entidades do dominio.

Uso interno pelos outros scripts. Resolve:

  • Pedidos por numero parcial ou termo
  • Produtos por nome ou abreviacoes
  • Grupos empresariais por nome
  • Cidades por nome (normalizado)

Fluxo de Criacao de Separacao

Checklist Obrigatorio

Campo Obrigatorio Como Obter
Pedido SIM Usuario informa
Data expedicao SIM Usuario informa
Tipo (completa/parcial) SIM Perguntar se nao especificado
Agendamento CONDICIONAL Verificar ContatoAgendamento pelo CNPJ
Protocolo CONDICIONAL Se exige agendamento

Sequencia

  1. SIMULAR primeiro (sem --executar)
  2. Verificar alertas de estoque
  3. Mostrar resultado ao usuario
  4. Solicitar confirmacao
  5. EXECUTAR (com --executar)

Nivel de Detalhes (Progressive Disclosure)

  1. Resposta inicial: Resumo com 3-5 itens principais
  2. Se pedir mais: Mostrar mais itens do mesmo JSON
  3. Se pedir "todos": Lista completa

Referencias

Os arquivos em `references/` sao carregados sob demanda. **NAO leia todos de uma vez** - consulte apenas quando necessario.
Arquivo Quando Consultar
tables.md Precisa saber nome de campo ou tipo de dados
business.md Precisa de constantes, prefixos CNPJ, limites veiculos, ou formulas
glossary.md Encontrou termo desconhecido (ruptura, matar, FOB, RED)
synonyms.md Usuario usou termo diferente do padrao (catchup, caixa, embarque)
products.md Usuario usou abreviacao de produto (CI, AZ VF, BD, IND)
examples.md Precisa ver resposta esperada ou output de exemplo
context.md Precisa entender contexto da empresa, clientes, ou escalar decisao
communication.md Vai gerar mensagem para PCP ou Comercial

Grupos Empresariais: --grupo atacadao, --grupo assai, --grupo tenda