AUR-516 — O comentário distingue evidência de CI de inferência do modelo
Medido antes (leitura do código em stream/B, depois do AUR-514)
Já existia, entregue pelo AUR-599 e pelo AUR-600 (reaproveitado aqui):
internal/review/cistatus:Parsesepara o contexto de CI em checks concluídos e o que não é fato (em andamento, statusaurumcode/*);Facts.Keepdescarta item deci_analysissobre status próprio, check sem resultado ou scanner que não rodou.settleCIStatus(cmd/aurumcode/review_ci_status.go) aplica isso no--pre no--base.writeCIStatusSection(cmd/aurumcode/pr_summary_sections.go, AUR-600) e a linha "nada falhou nesta execução".
Faltava o que o Outcome pede:
- Um item que sobrevivia ao
Keepera publicado como**<check> — <status do modelo>**, com causa, evidência, correção e próxima verificação do modelo. Sem contexto de CI, "CI — success" escrito pelo modelo saía como estado; num check que o contexto dava comoFAILURE, o parecer mostrava ostatusdo modelo e uma correção certa sem log. - O link do check nunca chegava ao parecer, e não havia como uma evidência de log fundamentar a correção.
Decisão
pkg/types.CIAnalysisganhaBasis,Observed,LinkeGroundedcomjson:"-": só o motor escreve; resposta do modelo nunca os preenche, e um item que não passou pela verificação (valor zero) é tratado como inferência (falha fechada).internal/review/cistatus/verify.go:Context.Verifymarca cada item. Check concluído do contexto:BasisCI, estado e link observados (nome repetido: a falha vence),Groundedquando aevidencedo modelo cita oexcerptdo check (comparação com espaços normalizados). Qualquer outro:BasisModel, sem estado observado.Passeddiz que estado dispensa diagnóstico (SUCCESS,SKIPPED,NEUTRAL).Check.Excerpt(excerptno arquivo de contexto): trecho de log opcional, já sanitizado, que um workflow pode acrescentar; nada o baixa por default (Non-goal). Chega ao modelo pelo mesmoModelText, que passa pela redação do prompt (reviewer.go).cmd/aurumcode/ci_status_render.go:writeCIAnalysisItempublica: verificado e passou: só estado e link; verificado, falhou e fundamentado: "Observado no log do CI", "Causa inferida pelo modelo", "Correção inferida pelo modelo" em linhas separadas; verificado, falhou e sem log: "Causa: desconhecida", a causa do modelo como "Hipótese do modelo (não verificada)", nenhuma correção e a orientação de abrir o log no link; não verificado: "estado não verificado (inferência do modelo ...)", causa desconhecida e hipótese, nunca ostatusdo modelo.- Textos novos no catálogo
internal/i18n(pt-BR e en, chavesreview.ci_*). O template do prompt não mudou.
Desvio de paths do card
O card lista só cmd/aurumcode, o aceite e docs/review-quality.md; foi
escrito antes do AUR-599 criar internal/review/cistatus. A regra de
classificação mora em internal/review/cistatus (lógica fora de cmd), os
campos do motor em pkg/types, os textos em internal/i18n/catalog.yml, e a
subseção "Status do CI no parecer" de docs/configuration.md foi atualizada.
Documentação
docs/review-quality.md("Cobertura e falhas") edocs/configuration.md("Status do CI no parecer") descrevem a separação e o campoexcerpt. Varredura dedocs/,README.md,docs/tutorialsedemo/tutoriais: nenhum tutorial publicaci_analysisnão vazio, nada desatualizado.
Como cada cenário é provado (tests/acceptance/AUR-516.sh)
- AC-001:
TestAUR516AC001ModelSaysCIGreenWithoutContextroda um--prreal (GitHub falso em processo) sem contexto de CI com o modelo dizendosuccess: o parecer não traz— successnem o rótulo de verificado e traz "estado não verificado".TestVerifyNeverTakesTheModelsState: sem contexto, contexto ilegível ou nome desconhecido, nada é observado. - AC-002:
TestAUR516AC002FailedCheckWithoutLogsGivesDiagnosis(pt-BR e en):Lint — failurecom link, causa desconhecida, hipótese, orientação de diagnóstico, e nem a correção nem a próxima verificação do modelo.TestVerifyObservedStateAndLink. - AC-003:
TestAUR516AC003EvidenceQuotedKeepsInferenceApart: comexcerptcitado, observação e inferência em linhas separadas e a correção publicada; evidência que não cita o trecho volta ao caso AC-002.TestVerifyGroundedOnlyWhenEvidenceQuotesTheExcerpt. - MUT-001: em
verify.go, o item sem check correspondente recebeBasisCIeObserved = item.Status; compila e deixa o AC-001 vermelho (AUR-516 model state published as CI state).
Fora do escopo
O summary livre do modelo continua filtrado pelas regras existentes
(AUR-517); esta mudança cobre a seção "Status do CI".
Correção da revisão estática
Uma palavra solta (por exemplo error) contava como citação do log.
quotes exige agora uma linha inteira do excerpt ou ao menos 20
caracteres que não são espaço (minQuotedChars). Prova:
TestVerifyOneWordIsNotAQuote (no AC-003).