AUR-453 — Sugestões e resumo chegam completos ao terminal e ao PR
Documento histórico do board. Pode descrever componentes removidos; para uso atual, consulte o guia do produto.
O defeito medido
O caminho aurumcode review --base <ref> reconstruído pelo AUR-490 já imprime
o resumo determinístico e o diagrama Mermaid, e o caminho --pr já publica as
sugestões elegíveis como substituição nativa do GitHub
(nativeSuggestionComment). O que faltava era o terminal do --base: ele
imprimia resumo, diagrama e achados, mas nenhuma sugestão. Um usuário que
nunca abre um pull request recebia o resumo incompleto: as sugestões do modelo
existiam no resultado da revisão e simplesmente não chegavam ao stdout.
O que este card entrega
- O relatório local do
--basepassa a mostrar a seção de sugestões (renderSuggestions,cmd/aurumcode/passes.go) depois do resumo/diagrama e antes do changelog/achados. - Cada sugestão é classificada pelo mesmo critério do PR
(
applicableSuggestionRange, que reutilizasuggestionRangeeisInlineEligible): uma substituição só é aplicável quando todo o intervalo cai em linhas que o diff adicionou. - Uma sugestão sem localização, com faixa fora do diff, com faixa inconsistente ou sem código proposto é exibida como orientação e marcada como não aplicável — nunca vira uma substituição com aparência de "1 clique". A mensagem explica a limitação e nada é aplicado ou commitado automaticamente.
--prcontinua publicando a substituição nativa com arquivo, faixa, código atual e proposto, e preserva a redação de segredos e a escolha de idioma do consumidor.
Compatibilidade
O comportamento é aditivo:
- Zero sugestões: nenhuma seção é impressa, então o stdout de uma revisão sem sugestões permanece byte-idêntico ao já publicado (AUR-490).
- Revisão de qualidade pulada ou falha: o resultado é o zero
ReviewResult, sem sugestões, então nada novo aparece — a seção de achados determinísticos segue como antes (AUR-449/AUR-458). - O caminho
--prnão é alterado por este card: ele já publicava a sugestão nativa; o terminal passa a compartilhar a mesma definição de elegibilidade.
Exit codes
Inalterados: 0 (revisão rodou), 1 (falha de revisão), 2 (erro de uso),
3 (--fail-on fechou). Sugestões não são achados e nunca mudam o código de
saída.
Acceptance
./.board/bin/oci-run --profile go-unit-offline-v1 --card AUR-453 executa as
asserções reais do pacote cmd/aurumcode:
TestAUR453TerminalSummaryAndSuggestion(AC-001 terminal): resumo e sugestão elegível chegam ao stdout com arquivo, faixa, código atual e proposto.TestAUR453TerminalIneligibleSuggestion(AC-002 terminal): sugestão fora do diff ou sem código proposto é exibida com a limitação declarada, sem substituição aplicável.TestAUR453FormalReviewCarriesSuggestion(AC-001 PR): o review formal carrega a sugestão nativa com arquivo, faixa e código proposto.TestAUR453RedactionAndConsumerChoice(AC-003): a escolha de idioma do consumidor é preservada e um segredo canário é redigido antes da publicação.TestAUR453NoSuggestionIsUnchanged(AC-003): revisão sem sugestões não ganha seção vazia.
Skeptical mutations
- MUT-001: substituir a chamada
renderSuggestions(result, diff, reviewLanguage)do terminal por uma string vazia suprime uma sugestão elegível e faz o cenário AC-001 falhar (tests/acceptance/AUR-453.sh AC-001-MUT-001). A mutação compila de propósito: falha de compilação nunca é evidência RED. A fonte versionada não é tocada: a mutação roda sobre uma cópia gravável no diretório de scratch.