Skip to content

Commit 939212d

Browse files
authored
Merge pull request #33 from thiagoluga/docs/claude-md-rules
docs(claude): agent standing permissions + operational lessons
2 parents e1ba69d + ecaabf8 commit 939212d

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,60 @@ O handoff esperado do Claude Design são quatro entregáveis (`tokens.css`, `com
9090
- Siga `plan.md` em ordem; um PR por item, pequeno e independente.
9191
- Todo PR fecha um critério de aceite da spec e vem com testes.
9292
- Mudou uma decisão? Atualize `NeoReports-Decisoes.md` no mesmo PR.
93+
94+
## Permissões permanentes do agente (concedidas pelo mantenedor)
95+
96+
O agente tem permissão **permanente** (tem permissão pra tudo no ciclo abaixo, sem pedir confirmação a cada vez):
97+
98+
### Resumo — o que faço sozinho vs. o que precisa de você
99+
100+
| Faço com autonomia | Preciso da sua confirmação | Nunca faço (mesmo se pedir) |
101+
|---|---|---|
102+
| Ler/buscar código, explorar o repo | **Merge em `master`** | Inserir credenciais/senhas/tokens/cartão |
103+
| Criar branch, editar arquivos | **Publicar pacote** (NuGet) / tag de release | Mexer em controle de acesso/permissões de terceiros |
104+
| `build` / `test` / `format` / scan Sonar / rodar sample | Apagar branch remota, force-push, reescrever history | Apagar dados permanentemente |
105+
| `commit` + `push` na branch da tarefa | Ações destrutivas/irreversíveis (drop de schema, `reset --hard` em remoto, mudar visibilidade do repo) | Transações financeiras |
106+
| Abrir PR (`gh pr create`) | Adicionar **nova dependência** (vai no CPM) | Resolver CAPTCHA, mudar settings de segurança |
107+
| Acompanhar CI, ler/responder comentários do PR | Qualquer coisa "para fora" além do PR ||
108+
| Atualizar docs (plan/ADR/CHANGELOG) via PR |||
109+
110+
> O **merge é sempre seu** — eu nunca mergeio. O app do Claude Code ainda pode te mostrar um prompt do harness para autorizar alguns comandos (push, etc.); isso é a UI de permissões, separada deste acordo de fluxo.
111+
112+
Detalhe dos itens autônomos:
113+
114+
- **Leitura irrestrita.** Qualquer comando de leitura/inspeção em qualquer parte do sistema: ler/listar/buscar arquivos, `git` de leitura (`status`, `log`, `diff`, `show`, `branch`, `ls-files`, …), inspecionar build/testes, etc.
115+
- **Inspecionar arquivos, rodar quaisquer testes e analisar os resultados.**
116+
- **Executar e acompanhar os checks/CI.** Disparar/aguardar o CI, ler os resultados (`gh run`, `gh pr checks`) e diagnosticar falhas.
117+
- **Ler e responder comentários do PR no GitHub** (`gh pr view`/`comment`, review comments).
118+
- **Criar branch e escrever o código necessário.**
119+
- **Commit, push e abrir PR** (`git commit`, `git push`, `gh pr create`).
120+
- **Esperar o CI, corrigir o que for necessário, commitar e fazer push de novo** — iterar até o PR ficar verde.
121+
122+
### Ciclo de cada task (executar autonomamente, sem pedir confirmação)
123+
124+
Para cada item do `plan.md` (ou tarefa equivalente), seguir este ciclo de ponta a ponta:
125+
126+
1. **Criar a branch** a partir do `master` atualizado (`git branch --show-current` p/ confirmar que não está no master antes de codar/commitar).
127+
2. **Escrever todo o código necessário** (e os testes).
128+
3. **Clean build / rebuild quando necessário** — na dúvida sobre cache, apagar `obj/bin` ou usar `--no-incremental`.
129+
4. **Criar e executar todos os testes**; ler a linha real `Passed!/Failed!` e `Build succeeded/FAILED`.
130+
5. **Se tudo estiver verde** (0 falhas, build ok): **commit, push e abrir o PR**.
131+
6. **Após abrir o PR, acompanhar os check-runs até concluírem** (`check runs until done`) — confirmando que o `headRefOid` do PR == último commit.
132+
7. **Se precisar refazer algum passo** (CI vermelho, conflito, etc.): corrigir, commitar e push de novo, e repetir 3–6 até o PR ficar verde. Tudo isso é permitido sem nova confirmação.
133+
134+
**parar e pedir confirmação** no final (merge) e nas exceções abaixo.
135+
136+
Ainda exigem confirmação explícita: **merge de PR**, deletar branch remota de terceiros, force-push, e ações destrutivas/irreversíveis (`reset --hard` em remoto, mudar visibilidade do repo, dropar schema, etc.).
137+
138+
## Lições operacionais (erros já cometidos — não repetir)
139+
140+
1. **Confirme a branch ANTES de commitar.** Sempre `git branch --show-current` antes de `git add`/`commit`. Já commitei direto no `master` por engano (só não quebrou porque sou admin). Todo trabalho em branch própria.
141+
2. **NUNCA commite/pushe com build ou teste vermelho.** Antes de `git commit`, leia a linha real `Build succeeded`/`Passed!`/`Failed!` do escopo alterado. Se houver `Failed: N>0` ou `Build FAILED`, não commite. Já afirmei "verde" sem verificar e mergeei PR vermelho — inaceitável.
142+
3. **Build local incremental MENTE.** `obj/bin` em cache já mascarou erro real de compilação (CS0246) que só apareceu no CI. Na dúvida, `--no-incremental` ou apague `obj/bin` e rebuilde do zero antes de confiar no verde.
143+
4. **Edit que falha com "file modified since read" NÃO foi aplicado.** Re-leia e refaça; nunca assuma que entrou. Docs (ADR/plan) já não entraram em commits por isso.
144+
5. **Um comando por vez ao diagnosticar.** Lotes grandes em paralelo cancelam em cascata no primeiro erro e corrompem a visão de estado.
145+
6. **CI tem cache de status.** `gh pr checks` / `commits/<sha>/check-runs` pode mostrar run antigo. Confirme `headRefOid` do PR == seu último commit antes de confiar no resultado.
146+
7. **Resultados podem chegar fora de ordem.** Ao notar incoerência, PARE e rode uma checagem sequencial `git branch/status/log` antes de agir.
147+
8. **Um PR por vez.** Não abrir vários simultâneos sem o mantenedor pedir; fechar (mergear) o atual antes do próximo.
148+
9. **Novas dependências (inclusive de teste) vão no CPM** (`build/Directory.Packages.props`). `NU1010` = `PackageVersion` faltando.
149+
10. **`dotnet format --verify-no-changes` dá falso-positivo local** por autocrlf (CRLF no working tree vs LF no repo); o CI faz checkout LF e passa. Não persiga `ENDOFLINE` local; confie no step de format do CI.

0 commit comments

Comments
 (0)