Repository navigation
Releases: Mpaape/AurumCode
Release list
Analysis data 20261018T080904Z
Automated analysis-data artifact. set_digest: sha256:08847e3a52d1cffd075da4bdf3f124667805a775ba4b59db7b1ad5ca40a75ed2
Analysis data 20261017T075431Z
Automated analysis-data artifact. set_digest: sha256:f30aaa7ba05336f1062936ba831dbd32461cc93bdb4ee842c8c2d5d7076a020d
Analysis data 20261016T081810Z
Automated analysis-data artifact. set_digest: sha256:3b71f957a1c40b69b0e733f04e54a169e661be91873e828be297caf212c93c33
AurumCode v2.1.0
Nenhum limite de tamanho derruba a revisão, e um agente de scan de vulnerabilidade entra como plugin da validação agendada, com achados só na aba Security.
Entregue
- O modelo decide o veredito final: todo achado estático (segredo, análise, SAST, lint) sem avaliação vai a uma triagem dedicada; contestado não conta. Sem o modelo, os achados aguardam a avaliação e nunca reprovam o gate sozinhos.
- Parecer enxuto: o mesmo problema de duas fontes vira um item; a correção de um bloqueante vem como sugestão aplicável; status curto; sem listas técnicas, sem texto cru de scanner em inglês e com acentos.
- SARIF e auditoria sempre JSON válido; o achado que o modelo contestou sai do SARIF (o alerta da aba Security fecha) e fica só na auditoria, com o motivo do modelo.
- Plugins externos na validação agendada (
scheduled.plugins): o plugin roda em container próprio e os achados vão só para a aba Security, nunca para log, resumo ou artefato (#185). - Exemplo pronto do harness agêntico de vulnerabilidade da Visa, fixado por commit e só de descoberta; candidato que o verificador do plugin não decidiu vira alerta "não verificado" (#185).
- Plugin degradado, sem análise ou com cobertura perdida é inconclusivo e não envia SARIF, para não fechar os alertas abertos; entrada da política exige imagem por digest (#185).
- Sem teto de token por padrão; quando o modelo recusa o prompt por tamanho, a revisão se divide em lotes até caber e o terminal narra cada recusa (#179).
- Política grande não derruba mais a revisão: catálogo de regras, texto das skills e arquivos curados do repositório entram inteiros (#179).
- Sem teto de bytes nem de contagem: MCP, scanner, manifestos, OSV, Dependency-Track, verificação, ferramentas, filtro de segredos e commits do changelog entram inteiros.
- Arquivo de texto grande não fica de fora: o diff cai para substituição inteira quando a busca exata não cabe; no
--pr, arquivo sem linhas na API tem o diff refeito do checkout. - Contexto de código por relevância (mesma linguagem, só arquivos que alcançam a mudança); depois de uma recusa por tamanho ele é reduzido para caber, e a redução é declarada.
- Recusas de tamanho reconhecidas também no 400 de texto longo demais e no 429 de pedido maior que o limite por minuto; 429 comum espera o
retry-aftere tenta de novo. - Workflow reutilizável: revisão que não terminou diz o motivo na anotação e no resumo; grupos de concorrência viraram
aurumcode/...; o SARIF dos exemplos tolera revisão sem artefato (#179). - Tutoriais: gravação de outra árvore é aviso, e só o tutorial cuja saída muda é regravado; tutorial novo
plugin-agendado.
Limites
- Repositório privado sem GitHub Code Security: o job de plugin falha antes de rodar e não publica nada; a sincronização com issues do próprio repositório ainda não existe.
- O gate da PR ainda não avisa sobre alerta sigiloso aberto num arquivo mexido.
- Recusa por tamanho nas rodadas de ferramenta da deliberação conta como do prompt base, e a auditoria da tentativa recusada se perde (falha fechada).
- Renomeação pura para um caminho que executa (como
.github/workflows) não é mostrada ao modelo, como na 2.0.0.
Migração do v1
- Da 2.0.0 para a 2.1.0, troque
@v2.0.0por@v2.1.0. Quem quer os tetos antigos os declara em.aurumcode/config.yml; o plugin agendado precisa desecurity-events: writeno job chamador.
Analysis data 20261015T082603Z
Automated analysis-data artifact. set_digest: sha256:8f9bf2c3d9c5a1c2657978e8e27d75ba468bade2a1a0abb587b2e3a2c3a1a5ab
AurumCode v2.0.0
Primeira release do AurumCode atual: a revisão de pull request virou um gate
de conformidade que escreve para gente ler, verifica o que o modelo afirma
antes de publicar e falha fechado quando não consegue decidir.
Entregue
Camadas de política e padrões, analistas com ferramentas
- Camada de padrões de engenharia: segundo repositório central (
--padroes;standards_repositoryno workflow) com skills e analistas abaixo da política;config.ymlcom seção é recusado; parecer e auditoria nomeiam a camada. - Analistas (
--perfis/review.profiles) deliberam com as mesmas ferramentas da passada única, num teto somado por revisão; o terminal diz o motivo real quando nada é oferecido e a auditoria registra as rodadas por analista. - Publicação recusada por permissão (401/403): o diagnóstico nomeia a permissão que o token precisa (
pull-requests: writeoustatuses: write) e onde declará-la, mantendo a resposta do GitHub. - Dados de análise publicados como pre-release e cópias com mais de 7 dias apagadas pelo workflow diário (mínimo de 3 mantidas; só
analysis-data/*); terminal sem "(s)": singular e plural pelo catálogo pt-BR/en.
Parecer da pull request
- A decisão abre o comentário num aviso nativo do GitHub (Aprovado, Aprovado
com observações, Bloqueado ou Inconclusivo), lida do gate declarado em
.aurumcode/config.yml; depois "Corrigir antes do merge" com um item por
problema, observações em uma linha, resumo e o resto recolhido em
"Detalhes da revisão". Sem elogio, sem emoji, no máximo três limitações e
três testes propostos; testes afetados aparecem contados. - Um parecer por PR, editado a cada rodada; comentário na linha só para o que
bloqueia, com sugestão aplicável também no modocomments; comentário já
resolvido é marcado em vez de repetido; eco de scanner publicado uma vez. - O status
aurumcode/reviewe o código de saída do--prseguem o gate
declarado: achado que o gate não reprova não conta como grave. O--base
local abre com a mesma decisão. - Com
review.language: pt-BR, parecer, status do gate, terminal e MCP saem
em pt-BR (motivo de inconclusivo em frase, com o código entre colchetes);
auditoria e SARIF não mudam de idioma. Achado sem prova descartado deixa o
título em "nenhum problema comprovado". - O parecer, a auditoria e o SARIF mostram a versão do AurumCode que revisou.
Análise por time
- Analistas por time (
review.profiles,.aurumcode/profiles.yml) no local, no
MCP e na revisão da PR: uma passada do modelo por analista (segurança embutido;
padrões, QA ou outro do time), lida da base; o achado diz quem o encontrou.
Confiança no que o modelo diz
- Todo achado do modelo é verificado contra o código revisado, os bloqueantes
primeiro; refutado com citação literal sai do parecer e fica na auditoria;
confirmado, incerto, citação inexistente, erro ou teto mantêm o bloqueio
(review.verification:enabled,max_calls). - A última rodada da deliberação pede o parecer com a evidência já reunida em
vez de terminar sem resposta;ignorelimita também o escopo dos scanners;
regra de segurança com forma de código (SQL, XSS, injeção de comando) não
olha.txt/.log/.md; achado da passagem de segurança já traz a
correção da regra. gate.triagevalemodel: o modelo pesa a evidência das regras, contestar
exige justificativa e resposta degradada nunca rebaixa. A redação antes do
prompt não mutila código; o catálogo não dispara em literal nem em prosa.- Contexto: o modelo lê e busca arquivos da revisão em qualquer linguagem,
fontes MCP configuradas, trechos de impacto e o alcance da parte vulnerável
de uma dependência; status do CI separado da inferência do modelo.
Provedores de modelo
- Provedor reserva:
LLM_FALLBACK_<n>_PROVIDER|_BASE_URL|_API_KEY|_MODEL
(até 5), tentados em ordem quando o principal falha, com a troca anunciada;
todos falhando, a revisão falha fechada. O workflow reutilizável aceita duas
reservas (fallback_1_*,fallback_2_*).
Dependências
- Cada dependência alterada é checada no OSV em qualquer ecossistema, com gate
dependencies.fail_on, exceção por CVE e licença; pacote malicioso ou
typosquat reprova;aurumcode dependenciesagendado publica SARIF. Nível
defail_onilegível ou lista vazia falha fechado.
Changelog obrigatório
aurumcode changelog --base <sha>reprova a PR sem entrada útil em
Unreleased(changelog_check.mode: required;suggestsó sugere); ao
reprovar, a entrada sugerida vai ao log, ao resumo do job e ao parecer.
PR aberta por bot não reprova (changelog_check.bots, padrãosuggest).
Realimentação da política
aurumcode realimentacaoabre uma única PR no repositório da política com
propostas citando falsos positivos, achados corrigidos e/aurum perdeu;
nada é aplicado sem merge humano.
Documentação e operação
- Demonstração
demo/do-zeroem três repositórios (segurança, engenharia e o serviço): PR bloqueada pelas três camadas, o serviço não afrouxa a segurança, correção aprovada; tutorial executávelcamadas. - Política central em repositório privado ou interno: secret opcional
AURUMCODE_POLICY_TOKEN(só leitura) nos workflows de revisão e changelog. - Tutoriais executáveis por capacidade, com saídas gravadas e conferidas no CI; site com busca e navegação por capacidade; docs de changelog e de auditoria/SARIF reescritas.
- Guias com proteção de branch, secrets do Dependabot, precedência da política central, versões fixadas e como saber que há versão nova.
Limites
- Sem benchmark com modelos reais: a qualidade do parecer foi conferida em
casos gravados, não medida em escala; a taxa de pareceres inconclusivos
também não é medida. - Custo por revisão não é medido automaticamente e não há guia de qual
modelo basta para cada tipo de repositório. - Sem chave de modelo, o gate local roda só a parte determinística (segredos,
SAST, vet, changelog) e termina emquality_skipped. - xBOM: CBOM e Build BOM existem, sem AIBOM; xBOM não é critério do gate.
- O parecer não avisa quando existe versão mais nova: quem fixa
@v2.0.0
acompanha as releases do repositório.
Migração do v1
- As tags
v1.xsão do produto anterior e não recebem este conteúdo. No
workflow do repositório, troque a referência de
Mpaape/AurumCode/.github/workflows/review.yml(@mainou@v1...) por
@v2.0.0;@mainrecebe toda mudança sem aviso. - Secrets de Actions
LLM_API_KEYeLLM_BASE_URL(serviço compatível com
OpenAI); opcionais a variávelLLM_MODEL, o inputfallback_1_providere
os secretsLLM_FALLBACK_1_API_KEYeLLM_FALLBACK_1_BASE_URL. .aurumcode/config.ymlna branch base declara o gate (gate.fail_on,
gate.inconclusive,quality_gates.scanners,dependencies.fail_on,
changelog_check.mode) e as skills de convenção em.aurumcode/skills/;
sem o arquivo, o review só orienta.- Não existem mais o gerador de docs de terceiros, os extratores, o runtime
Jekyll e o resumo Mermaid do--base.
Analysis data 20261014T085045Z
Automated analysis-data artifact. set_digest: sha256:a1206bac88aca0543be14a11c8fd73ac4d65b3ad451f3549da072f3e772ac7fc
Analysis data 20261013T104555Z
Automated analysis-data artifact. set_digest: sha256:702f81b97647741943172c1cba7d08f5edaf9acc2739688fc3b401ce33ef4ea4
Analysis data 20261012T110229Z
Automated analysis-data artifact. set_digest: sha256:c7ae3a82f547fa755a67cc20a47a642fdb7eb27dc9faa711b5b1acae92583f52
Analysis data 20261011T100749Z
Automated analysis-data artifact. set_digest: sha256:afb1452e17f9e4cdcc795dd15ed91215454c602212b709aa3e6acb5e5d3802f6