Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Ferramenta de auditoria de estoque a partir de arquivos SPED EFD ICMS/IPI e XML de NF-e. Reconstitui o inventário, monta o Kardex item a item, aponta divergências com trilha até a linha do arquivo de origem e produz papel de trabalho. Reconstitui o estoque em qualquer data. Percorre os movimentos em ordem cronológica desde um saldo de abertura congelado, aplicando custo médio ponderado móvel. Saídas baixam pelo custo vigente — nunca pelo valor da nota de venda, que é preço e não custo.README 전문 보기 ↗
Ferramenta de auditoria de estoque a partir de arquivos SPED EFD ICMS/IPI e XML de NF-e. Reconstitui o inventário, monta o Kardex item a item, aponta divergências com trilha até a linha do arquivo de origem e produz papel de trabalho.
Reconstitui o estoque em qualquer data. Percorre os movimentos em ordem cronológica desde um saldo de abertura congelado, aplicando custo médio ponderado móvel. Saídas baixam pelo custo vigente — nunca pelo valor da nota de venda, que é preço e não custo.
Reconstrói um mês isolado, do zero. Todo item partindo de zero, só com as notas do período: entrou, saiu, saldo no fim. Serve quando não há inventário confiável para ancorar — ou quando ele existe e é justamente o que se quer conferir. Saldo negativo aí é esperado, não achado, e a tela diz isso.
Monta a ficha de cada item. Um registro por movimento, com documento, contraparte, CFOP, entrada, saída e saldo corrido. Responde de onde veio o saldo, quem levou a mercadoria e em que momento o saldo furou.
Confronta as fontes. O EFD é o que a empresa declarou; o XML é o documento que ela emitiu. O sistema concilia os dois por chave de acesso, item a item, e concilia também a mesma nota escriturada por duas filiais do grupo.
Levanta achados com ciclo de vida. Cada achado tem identidade estável, severidade, responsável, prazo, resposta do cliente e desfecho. Reexecutar as regras concilia com o que já existe: cria os novos, mantém os que persistem, marca como resolvidos os que sumiram. Nunca apaga.
Emite papel de trabalho. Sumário, achados com motivo e prova, lista dos arquivos-fonte com SHA-256, metodologia e limitações. Imprime em PDF e exporta em CSV.
Guarda uma auditoria por trabalho. Cada cliente, cada exercício, é um trabalho isolado: importações, movimentos, achados e histórico. Começar outra auditoria não custa apagar a anterior — e prova apagada é prova que nunca existiu, se o cliente contestar um achado seis meses depois.
| Tipo | Severidade | O que aponta |
|---|---|---|
valoracao | crítico | Item inventariado por custo distante do documentado por nota |
nao_escriturada | crítico | NF-e autorizada e ausente da escrituração |
transferencia_divergente | crítico | Mesma nota com totais diferentes nas duas filiais |
saldo_negativo | alto / médio | Saldo abaixo de zero na data da posição |
terceiros | alto | Mercadoria própria em poder de terceiro |
cfop_aberto | alto | CFOP sem efeito definido — bloqueia o movimento |
sem_documento | alto | Nota escriturada sem o XML correspondente |
item_pendente | médio | Código do fornecedor ainda sem correspondência |
cobertura_item | informativo | Movimento sem detalhe por item na escrituração |
ressalva | informativo | Limitação assumida pelo auditor |
Na dúvida, não inventa. CFOP não classificado bloqueia o movimento; item que não casou vai para uma fila de resolução. Um Kardex com furo visível é auditável; um com número adivinhado, não.
A prova é imutável e atribuível. Nada é apagado. Toda linha guarda o arquivo de origem, seu hash SHA-256 e a linha física de onde veio.
A materialidade é decisão do auditor. Os limiares vivem no banco, em três níveis, e constam do papel de trabalho. Falha estrutural nunca é descartada por trivialidade — só achado de natureza monetária.
Reprodutível. Migrações versionadas com detecção de alteração, versão do motor registrada em cada importação e varredura, testes golden sobre arquivos reais.
git clone https://github.com/paulinho121/spedauditoria
cd spedauditoria
pip install "psycopg[binary,pool]"
cp .env.example .env # preencha DATABASE_URL
python -m auditoria migrar
python -m auditoria config diagnóstico da configuração
python -m auditoria migrar aplica migrações pendentes
python -m auditoria status o que está no banco
python -m auditoria conferir <arquivos> valida sem gravar
python -m auditoria importar <arquivos> importa EFD ou NF-e (idempotente)
python -m auditoria congelar <data> define o saldo de abertura
python -m auditoria materialidade [p e t] mostra ou define os limiares
python -m auditoria varrer [data] executa as regras e concilia achados
python -m auditoria achados [filtro] lista os achados em aberto
python -m auditoria ressalvas limitações assumidas
python -m auditoria trabalhos lista as auditorias e qual está em uso
python -m auditoria trabalho novo <nome> abre uma auditoria vazia e passa a usá-la
python -m auditoria trabalho usar <id> troca a auditoria em uso
python -m auditoria trabalho excluir <id> apaga uma auditoria e os dados dela
Painel web:
python app/server.py
Seis telas em http://localhost:8777 — dashboard, estoque por data, mês
isolado, importação, achados e papel de trabalho. O manual de uso está em
MANUAL.md.
python -m tests.test_sped
Os testes golden guardam apenas contagens, totais e hashes — nunca os dados fiscais. Para regerar após uma mudança intencional no parser:
python -m tests.test_sped --gerar
auditoria/ pacote principal
config.py carrega o .env
db.py Postgres via psycopg, com fallback pela Management API
auth.py sessão contra o Supabase Auth
sped.py parser de EFD — funções puras, sem I/O de banco
nfe.py parser de NF-e — XML com namespace
carga.py importação idempotente de EFD
carga_nfe.py importação de NF-e e geração de movimento
migra.py aplicador de migrações com detecção de alteração
cli.py linha de comando
migrations/ SQL numerado, aplicado uma vez, hash conferido
app/ painel local (servidor stdlib + HTML/CSS/JS sem dependências)
api/ função serverless do Vercel
tests/ testes do parser e golden files
O painel publicado importa arquivos enviados pelo navegador: cada um é gravado numa única chamada ao banco, dentro de uma transação. Varrer uma pasta continua exigindo o servidor local, porque depende do disco do auditor.
.env nunca vai para o repositório.HttpOnly; o JavaScript da página nunca o vê.service_role só existe no servidor e nunca chega ao navegador.127.0.0.1.C170, e nenhuma saída o traz mesmo em
perfil A: a escrituração de saída usa o analítico C190. O Kardex de saída
depende do XML. A importação avisa a cobertura encontrada.