Ferramenta batch em COBOL que ajuda fiscais de contrato do setor público a conferir se os encargos (INSS/FGTS) das folhas das terceirizadas foram calculados e recolhidos corretamente — apontando divergências com evidência utilizável no processo administrativo.
Contratos públicos com mão de obra dedicada exigem fiscalização administrativa (IN 05/2017; Lei 14.133/2021): todo mês, o fiscal recebe da terceirizada a folha, as guias e os comprovantes, e precisa verificar — funcionário por funcionário — se salários e encargos batem. Hoje esse trabalho é feito no braço, com planilha e PDF: lento, repetitivo e sujeito a erro justamente onde erro custa caro.
Repare na forma do problema: ler um lote grande de registros → aplicar regras de cálculo → comparar com o declarado → relatar divergências com totais de controle. Essa é literalmente a descrição de um job batch COBOL — o tipo de problema para o qual a linguagem foi criada em 1959 e pelo qual ela ainda sustenta bancos, previdência e tributos (no Brasil: Dataprev, SERPRO, bancos públicos). E aritmética decimal exata aqui é requisito, não luxo: dinheiro não admite os erros de arredondamento do ponto flutuante binário.
Este repositório é também um projeto de aprendizado guiado: construir um sistema COBOL de verdade, do zero, no formato fixo dos legados reais — e depois percorrer o mesmo caminho que o mercado percorre com sistemas de 40 anos:
construir → manter → modernizar → migrar/integrar
Na fase final, o core COBOL será exposto/migrado para uma linguagem moderna (a decidir), com testes de paridade dual-run — a mesma técnica usada nas migrações reais de mainframe.
- Ferramenta auxiliar de conferência; não substitui sistemas oficiais nem parecer do fiscal.
- Entrada realista: CSV/layout fixo exportado de planilha — o que um fiscal consegue produzir.
- Alíquotas e tabelas parametrizadas por competência, porque mudam por lei, todo ano.
O fiscalizado nunca fornece as duas pontas da comparação.
A terceirizada entrega fatos (salários pagos, valores depositados). A régua (alíquotas, tabelas legais) mora no programa, sob controle do fiscal. Conferência feita com a régua do fiscalizado não é conferência.
| Incremento | Entrega | Status |
|---|---|---|
| INC-1 | Conferência de FGTS de 1 funcionário (dados fixos no código) | 🔨 em andamento |
| INC-2 | Tabela progressiva do INSS + teto, parametrizada por competência | ⬜ |
| INC-3 | Leitura do arquivo da folha (N funcionários) + relatório | ⬜ |
| INC-4 | Calculado × declarado; relatório de divergências com totais de controle | ⬜ |
| INC-5 | Multi-contratos: cadastro indexado, quebras por empresa, lote mensal | ⬜ |
| INC-6 | Modularização (CALL/copybooks) + testes de paridade | ⬜ |
| INC-7 | Migração/integração com linguagem moderna (dual-run) | ⬜ |
Pré-requisito: GnuCOBOL 3.2+ (sudo apt install gnucobol).
cobc -x -fixed programa.cob && ./programaPor que -fixed? O GnuCOBOL 3.2 autodetecta o formato livre e "perdoa" erros de coluna. Aqui o core simula um legado real do setor público: formato fixo estrito, como um mainframe exigiria. O formato livre aparecerá — de propósito — na fase de migração.
*.cob— programas COBOL (formato fixo)instrutor/progresso.md— diário pedagógico público: trilha de conceitos, decisões de projeto e registro de cada sessão de estudo
Projeto conduzido em modo instrutor com Claude Code: o instrutor propõe problemas do domínio, guia por perguntas e revisa; todo o código COBOL é escrito pelo aluno. O histórico de commits e o diário registram a jornada real — erros, descobertas e decisões incluídos.