hamzaabduljabbar/boq-schedule

Transforme uma Lista de Quantidades e Preços (BOQ) em um primeiro rascunho de cronograma de construção com custos carregados, importável para Primavera P6 (XER) – atividades por especialidade e localização, lógica aprendida de 73 cronogramas reais do P6, o dinheiro e a quantidade da BOQ em cada atividade.

O que é boq-schedule?

Esta skill transforma uma Lista de Quantidades e Preços (BOQ) detalhada em um primeiro rascunho de cronograma de construção carregado com custos, pronto para importação no Primavera P6 (formato XER). Ela é ideal para situações onde se possui uma BOQ (orçamento, planilha orçamentária) e se deseja um cronograma de referência, um programa de obra ou uma EAP (WBS) baseada nela, sem partir de um cronograma existente. A lógica de sequenciamento foi extraída de 73 cronogramas reais do P6, e o dinheiro e as quantidades da BOQ são alocados a cada atividade, garantindo precisão ao centavo. A skill opera em planilhas .xlsx ou .csv com cabeçalhos em inglês, português ou espanhol, e requer apenas Python 3 e um arquivo de dados auxiliar. O processo é semi-automático: a IA lê a BOQ, classifica cada linha por especialidade e localização (com justificativa), verifica totais, e então o planejador responde a um conjunto de perguntas curtas (datas, locais, prazos, durações conhecidas) que a BOQ não pode responder. Com base nisso, a skill gera um arquivo XER importável pelo Primavera P6, com atividades, vínculos e encargos financeiros. A saída não é uma previsão de fluxo de caixa e não deve ser confundida com tal. As plataformas suportadas incluem Claude (para execução das etapas de classificação e geração), e o resultado final é compatível com Primavera P6 Professional 25. O planejador mantém o controle das datas e do refinamento do cronograma.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hamzaabduljabbar/autoConst-boq-schedule/tree/HEAD

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

BOQ -> esboço de cronograma (Primavera P6)

Um planejador que inicia uma linha de base digita cada atividade, vincula e carrega os custos manualmente a partir da BOQ. Esta skill elabora esse primeiro esboço: uma atividade por especialidade por localização, lógica extraída de cronogramas reais, dinheiro da BOQ em cada atividade, em um XER que o P6 importa. O planejador controla as datas – o esboço é o esqueleto que eles corrigem, não uma previsão.

O que é necessário

  • Uma BOQ com preços: .xlsx ou .csv com descrição + quantidade + montante (ou taxa). Cabeçalhos como coluna ou como linhas de texto acima das linhas de dados, números de item (1, 1.2, 1.2.3) são aceitáveis. Cabeçalhos em inglês, português ou espanhol.
  • Python 3 e data/rates.json (taxas e lógica extraídas). Nada mais.

Fluxo de trabalho (Claude executa cada etapa; o planejador aprova a classificação e responde às perguntas)

1. Ler a BOQ

py scripts/read_boq.py <boq.xlsx|.csv> --out outputs/<job>

Gera brief.csv (cada linha com seu caminho de capítulo e um palpite de palavra-chave) e types.md (os tipos de trabalho e as regras para a etapa 2). Informe ao usuário a contagem de linhas, o total e a aba/colunas que foram usadas. Se o total não corresponder ao total da própria BOQ, pare e descubra o motivo antes de classificar qualquer coisa.

2. Classificar cada linha (esta é a tarefa do Claude, não o palpite de palavra-chave) Leia types.md, depois leia TODO o brief.csv – capítulo por capítulo, em páginas se for longo. Escreva outputs/<job>/decisions.csv com as colunas key,type,locations,reason:

  • chapter=<início do caminho do capítulo> cobre um capítulo (maiúsculas/minúsculas e acentos ignorados); id~=<regex> cobre uma seção da BOQ por número de item quando os nomes dos capítulos se repetem (ex.: dois capítulos ambos chamados "TUBULAÇÕES E CONEXÕES"); um id de linha cobre uma única linha.
  • Regras gerais primeiro, exceções depois: uma regra posterior sobrepõe uma anterior; uma regra de linha sempre vence.
  • Concreto armado: dobre fôrma, vergalhão e concretagem de um elemento no tipo do elemento (sapata, pilar, viga_baldrame, laje), a menos que a BOQ os precifique como serviços gerais.
  • Localizações: sempre defina-as (em branco espalha uma linha sobre cada localização, incluindo o canteiro). Pisos do edifício do mais baixo para o mais alto; canteiro de obras, obras externas, muro de divisa, tanques externos -> a localização canteiro.
  • skip apenas para dinheiro que não é trabalho de obra, e diga o motivo. Capítulos mistos ou duvidosos: escolha o melhor tipo e escreva "planejador pode dividir" no motivo – esses voltarão como perguntas.
  • Não confie no palpite de palavra-chave: ele interpreta mal ("tapume com telha" -> telhado, "cabeamento" -> laje, "alumínio" -> luz).
py scripts/apply_types.py outputs/<job> --locations "Canteiro|Térreo|1º Andar"

Para em qualquer tipo desconhecido, localização desconhecida ou linha não decidida. Verificação de dinheiro: classificado + ignorado = total da BOQ. Gera lines.csv e typing.md (dinheiro por especialidade, quem decidiu cada linha, avisos de unidade). Mostre ao usuário a tabela de dinheiro por especialidade e os avisos; corrija e execute novamente até que esteja limpo.

3. Perguntar ao planejador

py scripts/questions.py outputs/<job> --start 2026-01-05

Constrói um primeiro esboço não calibrado e escreve questions.md + answers.json com respostas sugeridas. Coloque as perguntas ao usuário em palavras simples (AskUserQuestion funciona bem para as de sim/não), depois preencha answers.json:

PerguntaPor que é importante
Data de início, semana de trabalho (5/6/7), moedaCalendário e a moeda do dinheiro no P6
Localizações, canteiro, layout (pisos empilhados / blocos separados), quais executam lado a ladoA sequência. Testado: a própria estratégia de sequenciamento do esboço é a principal razão pela qual os trabalhos reais diferem
Período do contrato (meses)Sem ele a duração era correta (0,75-1,33x) para 4-6 de 17 trabalhos reais; com ele, 17 de 17
Três durações que conhecem (uma estrutura, um envelope/acabamento, um serviço de instalações)As durações do esboço erram ~2,25x em uma linha; três âncoras as trazem para ~1,76x e escalam o resto
Obras de canteiro no início ou após a estrutura (muro de divisa, drenagem, tanques, pavimentação)Move dinheiro real; os empreiteiros geralmente constroem o muro primeiro
Pontos de classificação sinalizados como "planejador pode dividir"Linhas que o Claude colocou, mas um planejador pode querer dividir

Respostas em branco mantêm o padrão e o relatório informa isso – nunca invente uma resposta para o planejador.

4. Construir

py scripts/build.py outputs/<job>

Executa plan.py + export.py: schedule.json/.csv, report.md, schedule.xer. Cada atividade carrega seus ids de linha da BOQ e a razão para sua duração; cada vínculo diz de onde veio (cronogramas reais: n links A->B, ordem padrão, resposta do planejador).

Importar

  • P6: Arquivo > Importar > Primavera PM (XER) > Criar Novo Projeto, depois Ferramentas > Programar (F9). As despesas aparecem por atividade como " BOQ " com quantidade, unidade e preço unitário.

Evidência (todos em dados reais, leave-one-out)

  • Classificação: Hassan BOQ 22/22 linhas = a atividade do próprio planejador por linha (palpite de palavra-chave 15/22). Aracaju 643 linhas e Januária 628 linhas classificadas, dinheiro ao centavo.
  • Lógica: 75-80% dos vínculos reais se mantêm em 17 cronogramas retidos; Hassan 18/18.
  • P6: o XER do esboço importa para o Primavera P6 Professional 25 e programa para as mesmas datas que o motor.
  • Durações: erro mediano de x2,25, x1,76 com três durações do planejador.
  • Não é uma previsão de fluxo de caixa: a curva mensal do esboço não se aproximou mais da real do que uma curva S de livro-texto. Diga isso sempre que alguém perguntar sobre fluxo de caixa ou prazos a partir do esboço.

Limitações

  • Apenas BOQs em texto (não PDFs escaneados). Uma atividade por especialidade por localização: o planejador divide de forma mais refinada.
  • Taxas e lógica provêm de 73 cronogramas, a maioria de edifícios; obras civis/infraestrutura não foram testadas.
  • data/ é extraído de 73 cronogramas P6 publicamente disponíveis (os XERs brutos não estão incluídos).

Testes

py tests/smoke.py – o exemplo incluído (BOQ de licitação pública de Januária, 628 linhas) através da classificação, perguntas, construção e XER do P6: linhas, dinheiro ao centavo, tabelas, tarefas, despesas, vínculos, calendário do projeto. Execute após qualquer alteração. Os testes de desenvolvimento (3 BOQs reais, 17 cronogramas retidos, a verificação de importação do P6) usaram arquivos que não estão incluídos.

Habilidades Relacionadas