Repository navigation
Check formatting in CI #35
Copy link
Copy link
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Contexto
O AGENTS.md exige "formatting check clean" para uma issue estar pronta, mas só o check.ps1, na máquina de quem desenvolve, confere a formatação (decisão 29). Esta issue leva a conferência para o CI. Por decisão do dono em 2026-10-07, o mesmo pull request remove um padrão morto do Dependabot e escreve como regra a ordem executar → revisar → merge, porque o PR #40 foi mesclado antes da revisão.
Escopo
- Mudança em
.github/(autorizada): em.github/workflows/ci.yml, no trabalhoBuild and test, o passoCheck formattingentreRestoreeBuild, comdotnet format ${{ env.SOLUTION }} --verify-no-changes --no-restore. Nenhum trabalho novo; a regra Protect main não muda. - Mudança em
.github/(autorizada): em.github/dependabot.yml, linha 12, remover"CommunityToolkit.Aspire.*"do grupoaspire, que ficapatterns: ["Aspire.*"]. docs/decisoes-de-arquitetura.md:- decisão 29: trocar o parágrafo "O CI ainda não confere a formatação" por um que diga que o CI confere, com o comando;
- decisão 34, item 1: incluir a conferência de formatação na descrição do trabalho Build and test;
- remover a seção "O que ainda reflete o plano antigo" (título, frase e tabela), que só continha esta sobra.
AGENTS.md, seção "Workflow: three commands", logo abaixo de "Agents open pull requests; the owner merges them.": "The owner merges after/revisar-issue, not before: a review only protectsmainif it comes first."docs/agents/workflows/git-and-pull-requests.md, passo 7: "When CI is green, tell the owner in Portuguese: the pull request link, what changed, how you verified it, and anything they should look at closely. End with the next step:/revisar-issue <n>in a new conversation, before the merge. Then stop.".claude/skills/executar-issue/SKILL.md:- passo 9: "Deliver the final report and stop. The owner merges after
/revisar-issue."; - última linha do modelo de relatório: "Próximo passo:
/revisar-issue <n>, numa conversa nova, antes do merge."
- passo 9: "Deliver the final report and stop. The owner merges after
.claude/skills/revisar-issue/SKILL.md, passo 1, acrescentar: "If the pull request is already merged, say so in the first line of the report and reviewmainat the merge commit: in step 4, updatemaininstead of checking out the pull request, and in step 7 the fixes go in a new branch and a new pull request."docs/agents/trabalhando-com-agentes.md, abaixo da tabela dos três comandos: "O merge vem depois da revisão. Com o CI verde, o pull request já parece pronto, mas é a revisão que confere se ele faz o que a issue pede."- Título do pull request:
ci: check formatting.
Fora do escopo
- Mudar o
check.ps1, o.editorconfigou o.gitattributes— não é preciso: a conferência já passa com eles. - Um trabalho separado no CI ou qualquer mudança na regra Protect main — exige o dono nas configurações do repositório.
- Conferir a formatação de arquivos que não são
.cs(Markdown, YAML, JSON) — recomendação futura.
Dependências
- Remove the leftovers of the old plan (unused packages, Mailpit, template extras) #34 (PR chore: remove the leftovers of the old plan #40), já mesclada: removeu o pacote do Mailpit, o único que casava com
CommunityToolkit.Aspire.*. - Decisões 29 e 34 de
docs/decisoes-de-arquitetura.md. - Aprovação do dono para mudar
.github/, dada em 2026-10-06 (CI) e 2026-10-07 (Dependabot).
Riscos
- O CI instala o .NET
10.0.xmais recente, e a máquina local tem o 10.0.401. Uma versão mais nova pode formatar diferente — aparece como falha no passoCheck formattingsem que o pull request tenha mexido em código; corrigir rodando ocheck.ps1com a mesma versão. - A passagem no Linux foi simulada no Windows, com os finais de linha que o Linux recebe (exit 0), e não num Linux de verdade — a confirmação é o T01.
- O
dependabot.ymlsó é validado pelo GitHub depois do merge — conferir em Insights → Dependency graph → Dependabot que não há erro de configuração. - O commit temporário do T02 não pode ficar no branch — o CI precisa terminar verde depois de desfeito, e
git diff mainnão pode mostrar o arquivo usado.
Decisões do levantamento
- O passo entra no trabalho
Build and test, antes doBuild— a regra damainnão muda, e o erro aparece cedo. - O comando é o
dotnet formatcompleto, e não sówhitespace— é o mesmo que o AGENTS.md e ocheck.ps1usam. - O vermelho é provado no CI com um commit temporário, desfeito em seguida — um passo que nunca falhou não provou que confere.
- A frase do
revisar-issueganhou o complemento sobre os passos 4 e 7 — sem ele, a skill se contradiz quando o pull request já foi mesclado. - A seção "O que ainda reflete o plano antigo" é removida — ficaria vazia.
Testes
Esta issue não tem código de produção, então não há teste xUnit. As verificações abaixo são observadas no CI do pull request, e a evidência é o link da execução.
| ID | Teste | Camada | Regra | Resultado esperado |
|---|---|---|---|---|
| T01 | Deve passar a conferência de formatação com o código atual, no Linux do CI | CI | Decisão 29 | Passo Check formatting verde, e o trabalho Build and test verde |
| T02 | Deve reprovar o pull request quando um arquivo .cs está fora do padrão |
CI | Decisão 29 | Com um commit temporário que estraga o recuo de um .cs, o trabalho Build and test falha no passo Check formatting, e o Build não roda. Depois do commit que desfaz, o CI volta a ficar verde |
Sem teste próprio:
dependabot.yml— configuração; conferida pela leitura no/revisar-issue 35e, depois do merge, na página do Dependabot.- Os cinco arquivos de documentação do fluxo e o
docs/decisoes-de-arquitetura.md— conferidos pela leitura no/revisar-issue 35.
Critérios de aceite
- Os testes T01 e T02 passam, com o link de cada execução do CI no relatório.
-
check.ps1termina sem avisos, com todos os testes do projeto verdes. - O
ci.ymlcontinua com os mesmos dois trabalhos, com os mesmos nomes. - O diff final do pull request não contém o arquivo usado no T02.
-
grep -r "CommunityToolkit" .githubnão encontra nada. - Os textos do fluxo estão nos cinco arquivos, iguais aos do Escopo.
-
docs/atualizado no mesmo pull request:docs/decisoes-de-arquitetura.md,docs/agents/workflows/git-and-pull-requests.md,docs/agents/trabalhando-com-agentes.md.
Recomendações futuras
- Conferir a formatação de Markdown, YAML e JSON — hoje nenhum requisito pede.
- Fixar a versão exata do .NET no CI, se o risco de versões diferentes se concretizar — antes disso é complexidade sem necessidade.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
MendesMat commentedon Oct 7, 2026
Decisão do dono em 2026-10-07, na revisão da #34: incluir no escopo desta issue a remoção do padrão
"CommunityToolkit.Aspire.*"do grupoaspireem.github/dependabot.yml(linha 12). O único pacote que casava com ele era o do Mailpit, removido no PR #40. Considerar no/levantar-issue.MendesMat commentedon Oct 7, 2026
Decisão do dono em 2026-10-07, na revisão da #34: documentar no pull request desta issue a ordem executar → revisar → merge. Motivo: o PR #40 foi mesclado antes do
/revisar-issue 34. A ordem já era a intenção, mas nenhum documento a escrevia como regra.O texto do item 1 está aprovado, literal. Os demais são a mesma regra levada aos outros lugares que descrevem o fluxo; a redação é conferida no
/levantar-issue.1.
AGENTS.md, seção "Workflow: three commands"Logo abaixo de "Agents open pull requests; the owner merges them.":
2.
docs/agents/workflows/git-and-pull-requests.md, passo 7 ("Hand over to the owner")A entrega passa a terminar com o próximo passo:
3.
.claude/skills/executar-issue/SKILL.md/revisar-issue."/revisar-issue <n>, numa conversa nova, antes do merge."4.
.claude/skills/revisar-issue/SKILL.md, passo 1Acrescentar: "If the pull request is already merged, say so in the first line of the report and review
mainat the merge commit."5.
docs/agents/trabalhando-com-agentes.md, abaixo da tabela dos três comandosSem teste próprio: é documentação, conferida pela leitura no
/revisar-issue 35.ci: check formatting (#43)