bugfix reconciliation extractor

This commit is contained in:
2026-09-07 20:17:01 -03:00
parent 76c8cdc738
commit 811d4fd175
194 changed files with 1031 additions and 41 deletions

View File

@@ -0,0 +1,15 @@
# Correção — resolução relacional de contestação
## Regra
`resolved_value` representa um valor efetivamente resolvido/validado para o `subject` da transação.
Um valor apenas informado pelo usuário é `candidate_value` até a pré-validação autoritativa confirmar a relação `subject + valor` contra a evidência da fatura.
## Invariantes
1. Um valor divergente não é promovido a `resolved_value`.
2. Se o mesmo subject aparece com vários valores na fatura, o subject sozinho não escolhe um valor arbitrário.
3. Se dois produtos diferentes têm o mesmo valor, o valor não substitui um subject já identificado por evidência mais forte do usuário.
4. Quando a pré-validação rejeita um parâmetro, ela pode declarar `clear_fields` para invalidar derivados dependentes; o framework aplica essa lista sem conhecer semântica de domínio.
5. A extração do turno atual ocorre antes da reconciliação. A reconciliação pode canonicalizar o candidato, mas não apagá-lo antes da pré-validação.
6. Somente uma validação relacional bem-sucedida promove o candidato a `resolved_value`.

View File

@@ -0,0 +1,19 @@
# Rework mínimo da reconciliação temporal — 2026-09-07
## Princípios
1. Extração do turno atual é uma etapa curta, sem histórico.
2. Reconciliação temporal só roda se required fields continuarem faltando.
3. Candidate estrutural só existe quando há um único evidence block ancorado por parâmetro conhecido.
4. Candidate estrutural nunca é resolved; exige pre-validation configurada.
5. Não existe fallback baseado apenas em uma fala histórica única.
6. A pre-validation/CVAL é a autoridade para canonicalização e relação subject+valor.
7. Intent shift genérico não encerra transação ativa; abandono explícito pode encerrar e rerotear.
## Cenário 08
Mensagem atual -> valor 14.99 (current-only extraction) -> histórico ancorado -> candidate subject -> CVAL -> subject canônico -> confirmação.
## Cenário 16
Subject preservado -> valor 25.50 candidato -> CVAL rejeita relação -> valor continua pendente -> valor 19.99 -> CVAL valida relação -> confirmação. Uma fala como "isso mesmo, pode cancelar" permanece na transação; abandono explícito como "esquece isso, quero ver minha fatura" pode rerotear.