Determinístico primeiro
O LangDrift raciocina sobre mudanças, não sobre repositórios. Os arquivos do repositório são entradas estruturadas; eventos normalizados e suas relações explícitas são as unidades usadas para descrever a evolução do produto.
Trabalho determinístico
Os pacotes atuais implementam operações reproduzíveis:
- validar dados de projetos, artefatos, registros (Record) e desvios (Drift) com JSON Schemas versionados;
- analisar frontmatter
langdriftexplícito, preservando o corpo Markdown como texto; - descobrir apenas os locais
.driftsdeclarados pelo pacote, em ordem, sem seguir links simbólicos; - derivar identidades estáveis de Record quando identidades imutáveis da origem são fornecidas a
recordId; - resolver referências locais e registradas explícitas sem consultas remotas;
- construir envelopes de payload com roteamento, proveniência, referências e conteúdo validado;
- planejar a configuração como
create,preserveouconflict, sem sobrescrever conteúdo existente.
A validação não converte valores, remove campos desconhecidos, preenche fatos ausentes nem migra versões não compatíveis. A configuração não faz solicitações de rede.
Trabalho interpretativo
Aplicações ou pessoas ainda decidem:
- com qual alvo de direção (Vision Target) comparar a mudança observada;
- se essa mudança é
expectedouunexpected; - quais evidências (Evidence) sustentam a interpretação;
- quais unidade e valores de impacto são adequados;
- se o raciocínio é
human,deterministicoullm; - como Product Vision é calculado e apresentado.
O SDK registra e valida essas decisões fornecidas. Ele não as torna canônicas.
Sem dependência de LLM
@langdrift/sdk não inclui, chama nem exige um LLM. Um evento de desvio (Drift Event) pode declarar raciocínio human, deterministic ou llm. Quando llm é fornecido, o esquema exige um identificador de modelo e ao menos um ID de evidência vinculado; quem chama a API continua responsável por executar o modelo e fornecer uma saída fundamentada.
O transporte segue o mesmo limite. As aplicações injetam um transporte em sendPayload; o SDK não fornece um backend em execução, endpoint, fila, novas tentativas automáticas ou envio automático.