FIR — Fractional Information Runtime

Plano de Implementação

Análise do estado atual do projeto em e:\fractionengine · gerado 2026-08-14 · build local verificado (30/30 testes passando)

1. Achado principal: os docs estão defasados em relação ao código

PROJECT_STATUS_COMPLETE.md, MANIFEST.md e DEVELOPER_QUICK_REFERENCE.md — todos datados de 2026-08-13 — descrevem o projeto como "Fase 1.5 completa, pronto para Fase 2" (VM ainda por construir). Mas o código-fonte já contém a Fase 2 inteira (VM, bytecode, compilador) e duas camadas inteiras não documentadas nesses arquivos de status: uma AI Engine e um Research Engine autônomo de pesquisa matemática. Rodei a suíte de testes agora:

30 / 30
testes passando (ctest)
4
camadas implementadas: core, vm, ai, research

Isso importa porque qualquer plano futuro — inclusive um gerado por outra sessão de IA — que parta só da leitura desses três arquivos vai replanejar trabalho que já existe. A primeira coisa a fazer é atualizar os documentos de status, não o código.

2. Inventário do que já existe

CamadaDiretórioStatus real
Core (MU types, operações, serializer, canonicalizer)src/core/implementado + testado
VM (bytecode, assembler, disassembler, executor, compiler)src/vm/implementado + testado
AI Engine (tools, knowledge base, context builder)src/ai/*.cppimplementado + testado
Research Engine (conjecturas, contraexemplos, lemas)src/ai/research_*.cppimplementado + testado
LLM real (OpenAI/Anthropic)src/ai/llm_client.cppsó stub — sem HTTP real

3. Gaps concretos encontrados no código

Busquei por TODO, stub, placeholder e not implemented em src/. O que sobrou depois de filtrar comentários cosméticos:

OndeO quê
ai/llm_client.h / .cppSó existe StubLLMClient. Os docs (docs/AI_ENGINE.md) descrevem FIR_LLM_PROVIDER=openai|anthropic como se funcionasse — não funciona ainda.
ai/ai_engine.cpp:11Construtor sempre instancia StubLLMClient, ignora a env var mencionada na doc.
core/operations.cpp:205-208MEXPAND_PARTIAL retorna vetor vazio — não implementado.
core/operations.cpp:222benchmark() genérico retorna "Not implemented" (baixa prioridade — os programas bench_*.cpp já cobrem isso separadamente).
vm/compiler.cpp:195, 271Codegen de LOG e de MU_REFERENCE emite placeholder em vez de bytecode real.
core/structural_hash.cpp:150Hashing de operações comutativas é um placeholder — a normalização real fica só no canonicalizer.

Some-se a isso as duas limitações já autodocumentadas em PHASE_1_5_ANALYSIS.md e nunca fechadas: detecção de equivalência canônica (2^100 == 4^50 não é reconhecido) e crescimento linear de cadeias de operações acima de ~1000 passos.

4. Plano proposto (ordenado por dependência e alavancagem)

Fase A Fechar o gap de documentação — ~1–2h

Fase B Integração real de LLM — ~1–2 dias

Fase C Fechar lacunas de corretude — ~2–4h cada

Fase D Completar o compilador

Fase E Higiene de infraestrutura

5. Por que essa ordem

Fase A vem antes de tudo porque qualquer trabalho novo — feito por você ou por outra sessão de IA — que ignore o estado real do código vai perder tempo replanejando o que já existe. Fase B é a de maior valor novo (é o que realmente diferencia o Research Engine). Fases C e D são endurecimento de corretude sobre o que já está construído. Fase E não é urgente, mas é relógio correndo: disco cheio e ausência de git são os dois jeitos mais prováveis de perder trabalho por acidente.