Skip to content

feat(mapa) : Adicionado Mapa Treta no Gelo - #372

Open
usantos wants to merge 36 commits into
corosolto:mainfrom
usantos:map/treta-no-gelo
Open

feat(mapa) : Adicionado Mapa Treta no Gelo#372
usantos wants to merge 36 commits into
corosolto:mainfrom
usantos:map/treta-no-gelo

Conversation

@usantos

@usantos usantos commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adiciona o mapa Treta no Gelo como arena, com fortaleza, bastiões, paredes internas, obstáculos, armas e texturas de gelo/neve.
  • Adiciona preview sem arma para a seleção de mapas.
  • Implementa movimentação mais rápida no gelo e passos com som procedural específico.
  • Adiciona colisões nas paredes e réguas automatizadas para estrutura, navegação, texturas, áudio e gameplay.

Issue

  • N/A

Risk

  • low — docs/tooling/text only
  • medium — UI/site/runtime path touched
  • high — gameplay/render/backend/anti-cheat touched

Validation

  • npm run build
  • smoke path exercised when UI/gameplay changed
  • screenshots/video attached when visuals changed

Bot notes

  • ok to label safe-automerge
  • needs needs-staging
  • needs needs-human-gameplay
  • needs needs-human-backend

@usantos
usantos requested a review from rubenmarcus as a code owner August 18, 2026 23:32
@vercel

vercel Bot commented Aug 18, 2026

Copy link
Copy Markdown

@usantos is attempting to deploy a commit to the rubenmarcus' projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: área sensível ou diff grande; revisão manual obrigatória preview-autorizado.

@csbrasil-BOT csbrasil-BOT added needs-human-gameplay Mudança exige revisão humana de gameplay/render/HUD needs-staging Mudança precisa validação integrada em staging target:main PR apontando para a branch main labels Aug 18, 2026
@csbrasil-BOT

csbrasil-BOT commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

csbrasil-bot classification

Note

@usantos abriu 23 arquivo(s) · +496 −47, base main.

O que mudou

área arquivos + amostra
📚 docs 14 +65 −41 ARCH.generated.md, KNOWN-BUGS.md, README.md
🎮 jogo 4 +25 −5 audio.js, game.js, main.js
🌐 site 2 +15 −1 jogo.ts, maps.astro
🎨 assets 1 +0 −0 treta_no_gelo.jpg
🗺️ mapas 1 +250 −0 map_gelo.js
🧪 arnês 1 +141 −0 treta-gelo-check.mjs

Labels

label por quê
needs-human-gameplay toca gameplay/render/HUD/mapa/personagem — decisão de humano
needs-staging mudança de runtime/UI — valida integrado no staging antes do merge
target:main vai direto pra main, sem fila de integração

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head 009e4f2b3c60
checks vermelhos 1
classe outra
hora do plantão 2026-08-18T23:38:20.961Z

Vermelho:

Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%22009e4f2b3c60dcb9a4b670d9fb1cbcb6ec1b80b3%22%7D%2C%22id%22%3A%22QmRBy5etwinWo6Ma7o9o5addZDC2uogw7rbCMuqKrFNP4B%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A372%2C%22repo%22%3A%22client%22%7D)

Log do run já expirou — abrir pelo link do check.


de plantão: vi, registrei, hora no relógio 🕵️

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (10): AGENTS.md, KNOWN-BUGS.md, README.md, STATUS.md
  • arnês (9): ARCH.md, char_probe.json, g2ui-map-previews.mjs, map_check.json
  • jogo (4): audio.js, game.js, main.js, maps.js
  • outros (2): .graphify_query_args.json, package.json
  • assets (2): treta_no_gelo.jpg, foot-offsets.json
  • site (2): jogo.ts, maps.astro
  • mapas (1): map_gelo.js

Note

o que faz: Adiciona o mapa Treta no Gelo (Fortaleza de gelo com bastiões), implementando texturas procedurais, audio de passos no gelo, surface detection e integração no sistema de mapas. Inclui script de verificação eval:gelo com mutantes declarados.

2 graves · 4 leves

Warning

Risco MÉDIO · nota 8.3/10 ▓▓▓▓▓▓▓▓░░
2 achado(s) grave(s) — resolve antes do merge.

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.

🔴 graves (2)

  • superficies vazio quebra portão de consistênciatools/eval/mat_check.json:2702 (ação: leis-da-casa)
    A entrada treta_no_gelo define 'superficies': [] mas os outros mapas (atacadao_treta) tem array preenchido com tipos de superfície. Isso implica que scripts que leem esse JSON esperam dados de superfície para calcular estatísticas — com array vazio, o portão pode passar falso verde por falta de amostra ou falhar por acesso a propriedade indefinida.
    💡 conserto: Preencher o array 'superficies' de treta_no_gelo com os tipos de superfície do mapa (concrete, metal, wood, etc.) ou explicar por qué o mapa realmente não tem superfícies diferenciadas no README do arnês.

    mutação sugerida: Remover o campo 'superficies' completamente para ver se algum script do arnês falha silenciosamente.

  • Mutante sem-textura apenas troca nome, não remove texturatools/eval/treta-gelo-check.mjs:32 (ação: leis-da-casa)
    O mutante 'sem-texturas' só muda material.map.name para 'mutante-sem-textura', mas a textura continua carregada e aplicada no material. O portão GELO2 verifica textures.has() com base no nome, então passaria erroneamente mesmo sem texturas reais. Isso quebra a Lei 3: o mutante não introduz o defeito que a régua promete medir.
    💡 conserto: No bloco do mutante 'sem-texturas', remova a textura do material: if (material?.map) material.map = null;

if (material?.map) material.map.name = 'mutante-sem-textura';

  •     if (material?.map) material.map = null;
    
  > mutação sugerida: `MUTANTE=sem-texturas node tools/eval/treta-gelo-check.mjs`

### 🟡 leves (4)

- **Script eval:gelo não existe no diff** — `package.json:179` _(ação: ci-portoes)_
  O package.json declara o novo script 'eval:gelo': 'node tools/eval/treta-gelo-check.mjs', mas este arquivo não aparece no diff. Se o script não for criado no mesmo commit, o check:fast vai falhar.
  💡 **conserto:** Garanta que tools/eval/treta-gelo-check.mjs seja commitado junto com o package.json. Verifique com `ls tools/eval/treta-gelo-check.mjs`.
  > mutação sugerida: `Remova o script do package.json ou crie o arquivo vazio - o runner vai falhar em ambos os casos.`
- **Script eval:gelo ausente no diff** — `package.json` _(ação: leis-da-casa)_
  O check:fast em AGENTS.md, README.md e docs/ inclui eval:gelo na lista de passos, e package.json declara o script apontando para tools/eval/treta-gelo-check.mjs, mas esse arquivo NÃO aparece no diff. Ou não existe ainda, ou foi esquecido. Se rodar npm run check:fast hoje, esse passo vai falhar com 'missing script'.
  > mutação sugerida: `Tentando rodar 'npm run eval:gelo' em um clone limpo deste diff deve produzir erro de script não encontrado.`
- **Fallback do tipo de superfície é silencioso** — `public/js/audio.js:531` _(ação: leis-da-casa)_
  Se surfaceAt não existir no mapa ou retornar undefined, o código assume 'concrete' sem nenhum log. Em mapas antigos que não implementam surfaceAt, passos sempre tocam como concreto — ok para compatibilidade, mas inesperado para mapas novos que deveriam implementar a função.
  💡 **conserto:** Se pretende silenciar, deixe como está. Se quer visibilidade, adicione console.warn na primeira vez que detectar mapa sem surfaceAt.
  > mutação sugerida: `Comente a função surfaceAt em map_gelo.js e veja se passos tocam como concreto sem aviso.`
- **surfaceAt retorna string constante** — `public/js/map_gelo.js:226` _(ação: leis-da-casa)_
  surfaceAt está implementado como () => 'ice' — sempre retorna 'ice' independentemente da posição. Isso está correto para este mapa (tudo é gelo), mas diferente de como slowAt funcionava anteriormente (condicional por posição). A função existe, então o fallback em audio.js nunca é acionado neste mapa.

### impacto cruzado

```mermaid
graph RL
  main_js["main.js"] --> audio_js["audio.js"]
  main_js["main.js"] --> game_js["game.js"]
  game_js["game.js"] --> maps_js["maps.js"]
  main_js["main.js"] --> maps_js["maps.js"]
  • audio.js (consumido por main.js)
  • game.js (consumido por main.js)
  • maps.js (consumido por game.js, main.js)
  • game.js → main.js (via world.speedMulAt/surfaceAt)
  • maps.js → game.js, main.js (via MAPS)
  • game.js (via surfaceAt, speedMulAt)

(grafo local de public/js, uma rodada atrás do head do PR.)


Resolve ou refuta nos fios — refutado com razão, eu caio fora.

todo bug confessa no diff, eu só faço o interrogatório 🤡

Comment thread tools/eval/mat_check.json
"radianciaFumaca": 0.2379,
"radianciaCeu": 0.3172,
"razaoFumacaCeu": 0.75,
"fonteCeu": "bloom.js skyRadiance(atacadao_treta) — AERIAL, medida por r3_fog.py"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[grave] superficies vazio quebra portão de consistência

A entrada treta_no_gelo define 'superficies': [] mas os outros mapas (atacadao_treta) tem array preenchido com tipos de superfície. Isso implica que scripts que leem esse JSON esperam dados de superfície para calcular estatísticas — com array vazio, o portão pode passar falso verde por falta de amostra ou falhar por acesso a propriedade indefinida.

Tip

conserto: Preencher o array 'superficies' de treta_no_gelo com os tipos de superfície do mapa (concrete, metal, wood, etc.) ou explicar por qué o mapa realmente não tem superfícies diferenciadas no README do arnês.

mutação: Remover o campo 'superficies' completamente para ver se algum script do arnês falha silenciosamente.

if (MUTANTE === 'parede-sem-uv') for (const object of named('gelo-estrutura-parede-')) object.geometry.deleteAttribute('uv');
if (MUTANTE === 'passo-concreto') world.surfaceAt = () => 'concrete';
if (MUTANTE === 'parede-sem-colisao') world.colliders = world.colliders.filter((collider) => !String(collider.tag || '').startsWith('gelo-parede-'));

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[grave] Mutante sem-textura apenas troca nome, não remove textura

O mutante 'sem-texturas' só muda material.map.name para 'mutante-sem-textura', mas a textura continua carregada e aplicada no material. O portão GELO2 verifica textures.has() com base no nome, então passaria erroneamente mesmo sem texturas reais. Isso quebra a Lei 3: o mutante não introduz o defeito que a régua promete medir.

Tip

conserto: No bloco do mutante 'sem-texturas', remova a textura do material: if (material?.map) material.map = null;

if (material?.map) material.map.name = 'mutante-sem-textura';
+         if (material?.map) material.map = null;

mutação: MUTANTE=sem-texturas node tools/eval/treta-gelo-check.mjs

Comment thread package.json Outdated
"//check:fast": "O runner percorre TODOS os passos e só reprova no fim; nenhum vermelho pode esconder os portões seguintes. A ordem ainda é deliberada: docs:check vem antes de arch:check para diagnosticar documentação derivada primeiro, e eval:redesign roda antes dos checks de mídia/animação porque também verifica o contrato entre fonte e assets.",
"check:fast": "node tools/eval/runner.mjs syntax eval:release eval:telemetry eval:identity eval:error-console eval:error-origin eval:webgl eval:webglguard eval:maprotate eval:shaderlog eval:shaderbudget eval:botbrain eval:prune eval:vminspect eval:faccao eval:mapid eval:mapjson eval:mapcontrato eval:redesign eval:matchoptions eval:charvoice eval:screenquery docs:check arch:check audio:check feet:check eval:vmlabhud eval:ctfhud eval:pause eval:ctfround eval:ctfwin eval:spawn eval:regen eval:pegada eval:dmgdir eval:ctflabels anims:check anims:merge:check walls:check media:check menuwalls:check travessao:check eval:medianet eval:posters eval:grafitelayout eval:simclock",
"check:fast": "node tools/eval/runner.mjs syntax eval:release eval:telemetry eval:identity eval:error-console eval:error-origin eval:webgl eval:webglguard eval:maprotate eval:shaderlog eval:shaderbudget eval:botbrain eval:prune eval:vminspect eval:faccao eval:mapid eval:mapjson eval:mapcontrato eval:redesign eval:matchoptions eval:charvoice eval:screenquery docs:check arch:check audio:check feet:check eval:vmlabhud eval:ctfhud eval:pause eval:ctfround eval:ctfwin eval:spawn eval:regen eval:pegada eval:dmgdir eval:ctflabels anims:check anims:merge:check walls:check media:check menuwalls:check travessao:check eval:medianet eval:posters eval:grafitelayout eval:simclock eval:gelo",
"//eval:gelo": "Contrato do Treta no Gelo: fortaleza central com quatro bastiões e rampas, materiais de pedra/neve/gelo, coberturas densas, arsenal, quatro objetivos, colisores, rota entre spawns e preview sem armas. Mutantes: sem-fortaleza|sem-rampas|sem-texturas|sem-cobertura|preview-com-arma.",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[leve] Script eval:gelo não existe no diff

O package.json declara o novo script 'eval:gelo': 'node tools/eval/treta-gelo-check.mjs', mas este arquivo não aparece no diff. Se o script não for criado no mesmo commit, o check:fast vai falhar.

Tip

conserto: Garanta que tools/eval/treta-gelo-check.mjs seja commitado junto com o package.json. Verifique com ls tools/eval/treta-gelo-check.mjs.

mutação: Remova o script do package.json ou crie o arquivo vazio - o runner vai falhar em ambos os casos.

Comment thread public/js/audio.js
// passos: round-robin nos samples (nunca repete o anterior) + playbackRate ±8% +
// volume ±15%. Fallback synth: timbre por surface (água do piscinão = splash grave+ruído,
// metal = brilho agudo, concreto = seco). surface vem do game.js (world.slowAt).
// gelo = crocância seca + cristais agudos, metal = brilho agudo, concreto = seco).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[leve] Fallback do tipo de superfície é silencioso

Se surfaceAt não existir no mapa ou retornar undefined, o código assume 'concrete' sem nenhum log. Em mapas antigos que não implementam surfaceAt, passos sempre tocam como concreto — ok para compatibilidade, mas inesperado para mapas novos que deveriam implementar a função.

Tip

conserto: Se pretende silenciar, deixe como está. Se quer visibilidade, adicione console.warn na primeira vez que detectar mapa sem surfaceAt.

mutação: Comente a função surfaceAt em map_gelo.js e veja se passos tocam como concreto sem aviso.

Comment thread public/js/map_gelo.js
const adj=nodes.map(()=>[]);
for(let i=0;i<nodes.length;i++) for(let j=i+1;j<nodes.length;j++) {
const dx=nodes[i].x-nodes[j].x,dz=nodes[i].z-nodes[j].z,d=Math.hypot(dx,dz);
if(d<=step*1.48&&!blocked((nodes[i].x+nodes[j].x)/2,(nodes[i].z+nodes[j].z)/2,.58)){adj[i].push(j);adj[j].push(i);}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[leve] surfaceAt retorna string constante

surfaceAt está implementado como () => 'ice' — sempre retorna 'ice' independentemente da posição. Isso está correto para este mapa (tudo é gelo), mas diferente de como slowAt funcionava anteriormente (condicional por posição). A função existe, então o fallback em audio.js nunca é acionado neste mapa.

@usantos usantos changed the title Adicionado Mapa Treta no Gelo feat(mapa) : Adicionado Mapa Treta no Gelo Aug 18, 2026
A branch estava 87 commits atrás e cruzou uma migração de schema. Dos 23 arquivos
em conflito, 18 eram gerados ou derivados (docs, ARCH, os *_check.json do arnês) e
vieram da main, re-derivados depois. Os cinco de verdade:

  · public/js/main.js: o PR ainda usava o MAP_CAT antigo (categoria = string) e a
    main migrou para MAP_CATS (categoria = LISTA). O `treta_no_gelo` foi migrado
    para o schema novo como ['ARENA','COMUNIDADE'], e ganhou entrada em MAP_AUTOR
    ('Ubiracy Santos') e MAP_DATA ('18/08/2026') - sem elas, `autorDe` cairia no
    autor da casa e creditaria o mapa a quem não o fez;
  · public/js/maps.js e tools/eval/g2ui-map-previews.mjs: união pura, mapas
    diferentes que coexistem;
  · package.json: entra `eval:gelo`, a régua DESTE mapa. `eval:bots`,
    `eval:invariants`, `eval:kick`, `eval:tags` e `eval:vm` apareciam como
    "novos" só porque a main os removeu do check depois que este PR abriu -
    ressuscitá-los aqui reverteria decisão alheia por engano;
  · KNOWN-BUGS.md: união. ATENÇÃO - a numeração colidiu: este PR usa BUG-68 para a
    rampa sem textura e a main já usa BUG-68 para o classify repetido. Preservei os
    dois e NÃO renumerei: renumerar bug alheio muda referência em régua e commit,
    e é decisão do autor.

Nenhum arquivo do mapa foi tocado.

Agent: Claude Opus 5 (Claude Code)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: área sensível ou diff grande; revisão manual obrigatória preview-autorizado.

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (14): ARCH.generated.md, KNOWN-BUGS.md, README.md, STATUS.md
  • jogo (4): audio.js, game.js, main.js, maps.js
  • arnês (3): ARCH.md, g2ui-map-previews.mjs, treta-gelo-check.mjs
  • site (2): jogo.ts, maps.astro
  • outros (1): package.json
  • assets (1): treta_no_gelo.jpg
  • mapas (1): map_gelo.js

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.

impacto cruzado

graph RL
  main_js["main.js"] --> audio_js["audio.js"]
  main_js["main.js"] --> game_js["game.js"]
  game_js["game.js"] --> maps_js["maps.js"]
  main_js["main.js"] --> maps_js["maps.js"]
Loading

(grafo local de public/js, uma rodada atrás do head do PR.)

maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head 39196630f9f8
checks vermelhos 1
classe outra
hora do plantão 2026-08-21T23:55:21.736Z

Vermelho:

Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%2239196630f9f84fe4666c44f6dbe9eaf1496093bb%22%7D%2C%22id%22%3A%22QmYbGnEZrcq2Hv4XrzYzGe6TUzg9p3JEViFidNiVo1D9Vf%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A372%2C%22repo%22%3A%22client%22%7D)

Log do run já expirou — abrir pelo link do check.


de plantão: vi, registrei, hora no relógio 🕵️

O release reescreveu README, STATUS, ARCH e docs/, e reabriu conflito em todo PR
aberto ao mesmo tempo. Os 8 arquivos em conflito eram TODOS gerados: ficou o da main e
os geradores re-derivaram. Nenhum arquivo de código foi tocado.

Agent: Claude Opus 5 (Claude Code)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: área sensível ou diff grande; revisão manual obrigatória preview-autorizado.

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (14): ARCH.generated.md, KNOWN-BUGS.md, README.md, STATUS.md
  • jogo (4): audio.js, game.js, main.js, maps.js
  • arnês (3): ARCH.md, g2ui-map-previews.mjs, treta-gelo-check.mjs
  • site (2): jogo.ts, maps.astro
  • outros (1): package.json
  • assets (1): treta_no_gelo.jpg
  • mapas (1): map_gelo.js

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.

impacto cruzado

graph RL
  main_js["main.js"] --> audio_js["audio.js"]
  main_js["main.js"] --> game_js["game.js"]
  game_js["game.js"] --> maps_js["maps.js"]
  main_js["main.js"] --> maps_js["maps.js"]
Loading

(grafo local de public/js, uma rodada atrás do head do PR.)

maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

rubenmarcus added a commit that referenced this pull request Aug 22, 2026
…igo (#414)

MEDIDO hoje, ao vivo: enquanto eu resolvia conflito à mão em quatro PRs, o
`chore(release): v2.0.0-alpha.173` entrou na main e reabriu os quatro de uma vez.
Os NOVE arquivos em conflito do #400 depois disso eram todos gerados - README,
STATUS, ARCH e docs/ -, nenhum de código. Todo release reescreve esses arquivos,
então resolver isso à mão é trabalho de Sísifo: o release seguinte desfaz.

O autofix passa a trazer a base antes de consertar. Conflitou, ele pergunta à
MESMA lista de permissão do resto do bot: se todo caminho em conflito for arquivo
gerado, fica o da base e os geradores re-derivam. Se sobrar UM fora da lista, ele
dá `git merge --abort` e comenta - conflito de código é julgamento, e julgamento
não é dele.

A conta do dia, dos quatro PRs que resolvi à mão: 53 arquivos em conflito, 45
gerados e 8 de código. É a fatia que o bot passa a cobrir, e sobra para gente
exatamente a que exige decisão - como a colisão de numeração de BUG-68 no #372,
que preservei sem renumerar.

A AF5 guarda o caminho de exceção: sem o `git merge --abort`, o bot resolveria
código escolhendo um lado no escuro. O mutante `resolve-conflito-de-codigo`
remove o abort e reprova.

Agent: Claude Opus 5 (Claude Code)

Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
rubenmarcus added a commit that referenced this pull request Aug 22, 2026
DEFEITO MEU, do #398: a linha de base rodava `gen-docs --check --autoria`, mas `--autoria` só é
derivável na MAIN — é exatamente o contrato que o #398 estabeleceu. Qualquer branch com autor
novo no histórico reprovava, e a régua passou a cobrar o contrário do que guarda. Bateu em #375,
#372, #399 e na pilha de CI de outra sessão, que precisou de PREPUSH=0 para empurrar.

Conserto: linha de base sem `--autoria`. A DOCSAUT2 (que pergunta se `--autoria` MORDE a autoria
torta) só roda quando a autoria está medível; numa branch onde ela já está torta por si, a régua
AVISA que pulou em vez de reprovar. Na main continua valendo integralmente.

Conferido: os dois mutantes seguem mordendo na main, e com autoria torta commitada numa branch a
régua passa imprimindo o aviso.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Claude Code
rubenmarcus added a commit that referenced this pull request Aug 22, 2026
DEFEITO MEU, do #398: a linha de base rodava `gen-docs --check --autoria`, mas `--autoria` só é
derivável na MAIN — é exatamente o contrato que o #398 estabeleceu. Qualquer branch com autor
novo no histórico reprovava, e a régua passou a cobrar o contrário do que guarda. Bateu em #375,
#372, #399 e na pilha de CI de outra sessão, que precisou de PREPUSH=0 para empurrar.

Conserto: linha de base sem `--autoria`. A DOCSAUT2 (que pergunta se `--autoria` MORDE a autoria
torta) só roda quando a autoria está medível; numa branch onde ela já está torta por si, a régua
AVISA que pulou em vez de reprovar. Na main continua valendo integralmente.

Conferido: os dois mutantes seguem mordendo na main, e com autoria torta commitada numa branch a
régua passa imprimindo o aviso.



Agent: Claude Code

Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head 67841c505a3b
checks vermelhos 3
classe outra
hora do plantão 2026-08-22T00:34:36.789Z

Vermelho:

classify (https://github.com/corosolto/client/actions/runs/32539277877/job/96945895878)
dco (https://github.com/corosolto/client/actions/runs/32539097207/job/96945362537)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%2267841c505a3bc97c63e610723d3e6ecde0c9a8af%22%7D%2C%22id%22%3A%22QmQkG95pkV9yhUgLy5tAspY7azvXSRiDv11yfx7WiwVcuA%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A372%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-22T00:07:22.4289987Z ##[group]Run if [ -z "$GH_TOKEN" ]; then
2026-08-22T00:07:22.4290604Z if [ -z "$GH_TOKEN" ]; then
2026-08-22T00:07:22.4291578Z   echo "::error::CSBRASIL_BOT_TOKEN ausente — crie o secret (PAT da conta csbrasil-bot, scopes: repo/workflow). Sem ele o classify posta como github-actions[bot] ou não posta."
2026-08-22T00:07:22.4292548Z   exit 1
2026-08-22T00:07:22.4292898Z fi
2026-08-22T00:07:22.4313392Z shell: /usr/bin/bash -e {0}
2026-08-22T00:07:22.4313991Z env:
2026-08-22T00:07:22.4314408Z   GH_TOKEN:
2026-08-22T00:07:22.4314764Z   PR_NUMBER: 372
2026-08-22T00:07:22.4315186Z   DESIRED_BASE_BRANCH: staging
2026-08-22T00:07:22.4315576Z ##[endgroup]
2026-08-22T00:07:22.4428022Z ##[error]CSBRASIL_BOT_TOKEN ausente — crie o secret (PAT da conta csbrasil-bot, scopes: repo/workflow). Sem ele o classify posta como github-actions[bot] ou não posta.
2026-08-22T00:07:22.4437592Z ##[error]Process completed with exit code 1.


nada fora do normal no meu turno 🕵️

O `check:fast` deste PR cita `eval:gelo`, a chave de documentação `//eval:gelo`
descreve o contrato e a régua `tools/eval/treta-gelo-check.mjs` existe em disco -
mas o script nunca foi definido em `scripts`. Com um nome órfão na lista, o npm
morre em "missing script" e TODOS os passos depois dele não rodam: o portão parava
no meio sem ninguém perceber.

A régua roda e passa (GELO1 a GELO10).

Agent: Claude Opus 5 (Claude Code)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: área sensível ou diff grande; revisão manual obrigatória preview-autorizado.

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (14): ARCH.generated.md, KNOWN-BUGS.md, README.md, STATUS.md
  • jogo (4): audio.js, game.js, main.js, maps.js
  • arnês (3): ARCH.md, g2ui-map-previews.mjs, treta-gelo-check.mjs
  • site (2): jogo.ts, maps.astro
  • outros (1): package.json
  • assets (1): treta_no_gelo.jpg
  • mapas (1): map_gelo.js

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

pente fino passado: nenhum achado que eu defenda em voz alta

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.

impacto cruzado

graph RL
  main_js["main.js"] --> audio_js["audio.js"]
  main_js["main.js"] --> game_js["game.js"]
  game_js["game.js"] --> maps_js["maps.js"]
  main_js["main.js"] --> maps_js["maps.js"]
Loading

(grafo local de public/js, uma rodada atrás do head do PR.)

todo bug confessa no diff, eu só faço o interrogatório 🤡

rubenmarcus added a commit that referenced this pull request Aug 22, 2026
… definir

Dos 8 arquivos em conflito, 7 eram gerados. O único de verdade era o
package.json - e ele quase me pegou: resolvendo pela linha do `check:`, fiquei com
a lista de um lado e PERDI as DEFINIÇÕES do outro. `eval:wfsecret`,
`eval:deploygate` e `eval:autofix` viraram nome órfão de uma vez. Um nome órfão
mata o npm em "missing script" e TODOS os passos depois dele param de rodar - o
portão pararia no meio sem ninguém perceber.

Foi o segundo caso do dia: o #372 citava `eval:gelo` no `check:fast` sem nunca ter
definido o script, com a régua existindo em disco e desligada. Conflito de
`package.json` é o mais comum que existe aqui, porque todo PR que acrescenta régua
mexe na mesma linha - então isto vai se repetir.

Daí a PI: todo passo citado nos dois portões tem de estar definido (PI1) e toda
régua tem de apontar para arquivo que existe (PI2). 97 citações conferidas. Os
dois mutantes mordem, e ela reprova o #372 de verdade, não só o caso sintético.

As três réguas desta pilha também receberam o padrão do #416, que entrou na main
depois delas: prova que não morde é vermelho, não aviso.

Agent: Claude Opus 5 (Claude Code)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Commit-grande: merge da main na pilha de CI — 21 dos 24 arquivos são bloco gerado re-derivado
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 preview no ar → https://csbrasil-q5pvuehlg-rubenmarcus-projects.vercel.app

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (14): ARCH.generated.md, KNOWN-BUGS.md, README.md, STATUS.md
  • jogo (4): audio.js, game.js, main.js, maps.js
  • site (2): jogo.ts, maps.astro
  • assets (1): treta_no_gelo.jpg
  • mapas (1): map_gelo.js
  • arnês (1): treta-gelo-check.mjs

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.

impacto cruzado

graph RL
  main_js["main.js"] --> audio_js["audio.js"]
  main_js["main.js"] --> game_js["game.js"]
  game_js["game.js"] --> maps_js["maps.js"]
  main_js["main.js"] --> maps_js["maps.js"]
Loading

(grafo local de public/js, uma rodada atrás do head do PR.)

todo bug confessa no diff, eu só faço o interrogatório 🤡

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Warning

Classe drift de gerados: bloco gerado desatualizado. Não consegui commitar (o PR vem de fork). Conserto:

npm run docs && npm run arch
o quê valor
head 3dbbdce3ad76
checks vermelhos 3
classe drift
hora do plantão 2026-08-22T21:46:01.778Z

Vermelho:

build (https://github.com/corosolto/client/actions/runs/32600025865/job/97096795168)
dco (https://github.com/corosolto/client/actions/runs/32600025865/job/97096794956)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%223dbbdce3ad7641d04e80f0c8ae52202038ba71a2%22%7D%2C%22id%22%3A%22QmYgbMy9q1RPEWJUu6DRYJ2pRq2cPyrKgJHnxdD6yzeS9m%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A372%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-22T21:35:53.4676003Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-22T21:35:53.4676366Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-22T21:35:53.4676756Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-22T21:35:53.4677173Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib
2026-08-22T21:35:53.4677576Z ##[endgroup]
2026-08-22T21:35:53.6233090Z {"ok": false, "missing": ["26c270093fa7605c74d7e0b3386bed33a372d1e3", "009e4f2b3c60dcb9a4b670d9fb1cbcb6ec1b80b3"]}
2026-08-22T21:35:53.6283606Z ##[error]Process completed with exit code 1.
2026-08-22T21:35:50.1343322Z ##[group]Run npm run arch:check
2026-08-22T21:35:50.1343654Z npm run arch:check
2026-08-22T21:35:50.1383752Z shell: /usr/bin/bash -e {0}
2026-08-22T21:35:50.1384048Z ##[endgroup]
2026-08-22T21:35:50.2412140Z
2026-08-22T21:35:50.2412643Z > coro-solto@2.0.0-alpha.182 arch:check
2026-08-22T21:35:50.2413081Z > node tools/gen-arch.mjs --check
2026-08-22T21:35:50.2413282Z
2026-08-22T21:35:50.2902517Z ✗ ARCH1  ARCH.md está DESATUALIZADO em relação ao código.
2026-08-22T21:35:50.2903868Z          game.js tem 6918 linhas; o índice do ARCH.md não bate.
2026-08-22T21:35:50.2904440Z          Rode: npm run arch
2026-08-22T21:35:50.3029623Z ##[error]Process completed with exit code 1.


de plantão: vi, registrei, hora no relógio 🕵️

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão.

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 preview no ar → https://csbrasil-3g8cxmuay-rubenmarcus-projects.vercel.app

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (14): ARCH.generated.md, KNOWN-BUGS.md, README.md, STATUS.md
  • jogo (4): audio.js, game.js, main.js, maps.js
  • site (2): jogo.ts, maps.astro
  • assets (1): treta_no_gelo.jpg
  • mapas (1): map_gelo.js
  • arnês (1): treta-gelo-check.mjs

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.

impacto cruzado

graph RL
  main_js["main.js"] --> audio_js["audio.js"]
  main_js["main.js"] --> game_js["game.js"]
  game_js["game.js"] --> maps_js["maps.js"]
  main_js["main.js"] --> maps_js["maps.js"]
Loading

(grafo local de public/js, uma rodada atrás do head do PR.)

maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Warning

Classe drift de gerados: bloco gerado desatualizado. Não consegui commitar (o PR vem de fork). Conserto:

npm run docs && npm run arch
o quê valor
head 3bdef3021037
checks vermelhos 3
classe drift
hora do plantão 2026-08-23T22:31:07.854Z

Vermelho:

build (https://github.com/corosolto/client/actions/runs/32670363158/job/97270187213)
dco (https://github.com/corosolto/client/actions/runs/32670363158/job/97270187336)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%223bdef3021037d5e0c2e8d90ae85d4ff3ec90cf8e%22%7D%2C%22id%22%3A%22QmTAdqQRDuqKjzW3UTmvqVxLQA7kLwsX35RCy7yKSfGBJZ%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A372%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-23T22:22:31.5030678Z          game.js tem 6918 linhas; o índice do ARCH.md não bate.
2026-08-23T22:22:31.5031315Z          Rode: npm run arch
2026-08-23T22:22:31.5155025Z ##[error]Process completed with exit code 1.
2026-08-23T22:22:36.2860751Z ##[group]Run printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-23T22:22:36.2861229Z printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-23T22:22:36.2861596Z   "d464906b139497b454f17348f7525af300378a69" \
2026-08-23T22:22:36.2861994Z   "3bdef3021037d5e0c2e8d90ae85d4ff3ec90cf8e" > /tmp/dco.json
2026-08-23T22:22:36.2862401Z python3 scripts/ci/dco_check.py < /tmp/dco.json
2026-08-23T22:22:36.2905683Z shell: /usr/bin/bash -e {0}
2026-08-23T22:22:36.2905985Z env:
2026-08-23T22:22:36.2906271Z   pythonLocation: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-23T22:22:36.2906733Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib/pkgconfig
2026-08-23T22:22:36.2907158Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-23T22:22:36.2907558Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-23T22:22:36.2907946Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-23T22:22:36.2908327Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib
2026-08-23T22:22:36.2908710Z ##[endgroup]
2026-08-23T22:22:36.4704178Z {"ok": false, "missing": ["26c270093fa7605c74d7e0b3386bed33a372d1e3", "009e4f2b3c60dcb9a4b670d9fb1cbcb6ec1b80b3"]}
2026-08-23T22:22:36.4755758Z ##[error]Process completed with exit code 1.


nada fora do normal no meu turno 🕵️

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

Agent: csbrasil-bot (autofix)

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão.

Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label preview-autorizado.

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 preview no ar → https://csbrasil-pm5uf6hul-rubenmarcus-projects.vercel.app

@csbrasil-BOT

Copy link
Copy Markdown
Collaborator

🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso.

@estraga-codigo estraga-codigo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • docs (14): ARCH.generated.md, KNOWN-BUGS.md, README.md, STATUS.md
  • jogo (4): audio.js, game.js, main.js, maps.js
  • site (2): jogo.ts, maps.astro
  • assets (1): treta_no_gelo.jpg
  • mapas (1): map_gelo.js
  • arnês (1): treta-gelo-check.mjs

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.

impacto cruzado

graph RL
  main_js["main.js"] --> audio_js["audio.js"]
  main_js["main.js"] --> game_js["game.js"]
  game_js["game.js"] --> maps_js["maps.js"]
  main_js["main.js"] --> maps_js["maps.js"]
Loading

(grafo local de public/js, uma rodada atrás do head do PR.)

todo bug confessa no diff, eu só faço o interrogatório 🤡

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Warning

Classe drift de gerados: bloco gerado desatualizado. Não consegui commitar (o PR vem de fork). Conserto:

npm run docs && npm run arch
o quê valor
head 4f7aa39adc66
checks vermelhos 4
classe drift
hora do plantão 2026-08-24T18:10:23.719Z

Vermelho:

build (https://github.com/corosolto/client/actions/runs/32758601907/job/97531821360)
autofix (https://github.com/corosolto/client/actions/runs/32758599538/job/97531792666)
dco (https://github.com/corosolto/client/actions/runs/32758601907/job/97531821565)
Vercel (https://vercel.com/git/authorize?team=rubenmarcus'%20projects&slug=rubenmarcus-projects&teamId=team_4nZdRW8viHMCXpdixaCtzZ7z&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%224f7aa39adc665206df7327af57b43cd9cd294ee6%22%7D%2C%22id%22%3A%22QmfRaeQBmRjPqBG7ugkVUEYNE8Soid41P2T5zzUnxgj4TB%22%2C%22org%22%3A%22corosolto%22%2C%22prId%22%3A372%2C%22repo%22%3A%22client%22%7D)

Rabo do log:

2026-08-24T17:47:36.3503513Z          game.js tem 6918 linhas; o índice do ARCH.md não bate.
2026-08-24T17:47:36.3504157Z          Rode: npm run arch
2026-08-24T17:47:36.3602214Z ##[error]Process completed with exit code 1.
2026-08-24T17:48:08.5893496Z ##[group]Run printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-24T17:48:08.5893972Z printf '{"baseRefOid":"%s","headRefOid":"%s"}' \
2026-08-24T17:48:08.5894369Z   "463da9ffcf9ccf645e86ce8404bdd08194bcda46" \
2026-08-24T17:48:08.5894775Z   "4f7aa39adc665206df7327af57b43cd9cd294ee6" > /tmp/dco.json
2026-08-24T17:48:08.5895197Z python3 scripts/ci/dco_check.py < /tmp/dco.json
2026-08-24T17:48:08.5933542Z shell: /usr/bin/bash -e {0}
2026-08-24T17:48:08.5933799Z env:
2026-08-24T17:48:08.5934074Z   pythonLocation: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-24T17:48:08.5934557Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib/pkgconfig
2026-08-24T17:48:08.5935013Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-24T17:48:08.5935438Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-24T17:48:08.5936069Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.15/x64
2026-08-24T17:48:08.5936473Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.15/x64/lib
2026-08-24T17:48:08.5936974Z ##[endgroup]
2026-08-24T17:48:08.7587900Z {"ok": false, "missing": ["26c270093fa7605c74d7e0b3386bed33a372d1e3", "009e4f2b3c60dcb9a4b670d9fb1cbcb6ec1b80b3"]}
2026-08-24T17:48:08.7665911Z ##[error]Process completed with exit code 1.


nada fora do normal no meu turno 🕵️

@rubenmarcus

Copy link
Copy Markdown
Member

O mapa será retrabalhado no stack map2 (branch map2/gelo) em cima do #399, com geometria nova — a original é a mais low-poly do jogo e o dono quer reautoria. Este PR fica fechado quando o retrato abrir. Agent: GLM (opencode)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-human-gameplay Mudança exige revisão humana de gameplay/render/HUD needs-staging Mudança precisa validação integrada em staging target:main PR apontando para a branch main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants