Skip to content

Commit 92bb422

Browse files
argentinaluizclaude
andcommitted
refactor: carry the acceptance ID of a test in a tag, and drop docs/harness.md
The acceptance ID moves from the test title to a tag (Vitest `tags`, Playwright `tag`), and the checker reads it only from the tags. The docs/harness.md file and every reference to it are removed, and the browser tests' access to storage is described as it is. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017UJLJcNU6V3ceKgzE23AZ1
1 parent d099751 commit 92bb422

56 files changed

Lines changed: 1454 additions & 1637 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.claude/agents/revisor-conformidade.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Confere, em contexto novo, se uma mudança entrega o que foi planej
44
tools: Read, Grep, Glob, mcp__linear-server__get_issue
55
---
66

7-
Você confere a conformidade de uma mudança que outro agente escreveu com o que foi planejado para o ticket. Você não viu a implementação nem as justificativas de quem a fez: quem faz não avalia. Os defeitos gerais de código ficam com a `/code-review` e com o Copilot; o seu foco é o plano. O desenho está em `docs/harness.md`, seção "Revisor de conformidade".
7+
Você confere a conformidade de uma mudança que outro agente escreveu com o que foi planejado para o ticket. Você não viu a implementação nem as justificativas de quem a fez: quem faz não avalia. Os defeitos gerais de código ficam com a `/code-review` e com o Copilot; o seu foco é o plano.
88

99
**O que conferir é o do `REVIEW.md` da raiz.** Leia-o primeiro e aplique-o inteiro: onde está o padrão, as conferências, a severidade e como ler. Aqui fica só o que depende do contexto local.
1010

‎.claude/hooks/freeze-acceptance.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# O arquivo de aceite de um ticket fica congelado depois do commit de plano: quando o agente vai
55
# editar um docs/tickets/<issue>/<ticket>/aceite.md que já está em commit, nega a edição. Criar um arquivo
66
# de aceite novo e editar qualquer outro arquivo, inclusive os outros da pasta do ticket, continuam
7-
# liberados. O desenho está no docs/harness.md.
7+
# liberados.
88
#
99
# Sai com 0 para deixar a edição rodar e com 2 para negá-la. No 2, o que foi escrito na saída de
1010
# erro volta para o agente.

‎.claude/hooks/push-verify.sh‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
# na pasta de estado do harness (`.harness/`), onde ficam a trava e a aprovação; e o `git push`
88
# que o `scripts/verify.sh prepush` não aprova, porque os commits trazem segredo ou o modo completo
99
# não aprovou o último commit. As guardas são para um agente que coopera, e não uma barreira de
10-
# segurança. O desenho está no docs/harness.md, seções "Bloqueio no push" e "Trava das reprovações
11-
# repetidas".
10+
# segurança.
1211
#
1312
# Sai com 0 para deixar o comando rodar e com 2 para negá-lo. No 2, o que foi escrito na saída de
1413
# erro volta para o agente.

‎.claude/hooks/record-touched.sh‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
# arquivos de apps/ que o agente editou, para o hook de fim de turno (stop-verify.sh) bloquear só
55
# pelos erros desses arquivos. Um subagente traz o mesmo `session_id` da sessão que o chamou, então
66
# as edições dele caem no arquivo dela. Edição por shell (sed, mv, gerador) não passa por aqui: é
7-
# um limite aceito, e o modo completo confere a árvore inteira. O desenho está no docs/harness.md,
8-
# seção "Hook de fim de turno".
7+
# um limite aceito, e o modo completo confere a árvore inteira.
98
#
109
# O `session_id` entra no nome do arquivo de estado, então só vale com letras, dígitos, `_` e `-`.
1110
# Com outro formato, ou sem `jq`, o hook não anota nada, e o hook de fim de turno avisa que não

‎.claude/hooks/stop-verify.sh‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# o modo rápido do scripts/verify.sh nas apps em que a sessão dele editou arquivos. Quem anota esses
55
# arquivos, por sessão, é o record-touched.sh. Cada sessão só responde pelos arquivos dela: o erro
66
# que outra sessão deixou no mesmo clone não bloqueia este turno, só avisa. Se falhar num arquivo da
7-
# sessão, devolve a saída ao agente, que continua o trabalho. O desenho, inclusive o limite da edição
8-
# por shell, que não é anotada, está no docs/harness.md, seção "Hook de fim de turno".
7+
# sessão, devolve a saída ao agente, que continua o trabalho. A edição por shell não é anotada,
8+
# então ela não entra nessa conta.
99
#
1010
# Sai com 0 para deixar o turno encerrar e com 2 para bloquear. No 2, o que foi escrito na
1111
# saída de erro volta para o agente.

‎.claude/skills/implement-spec/SKILL.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Communication to and from subagents should be sparse. Communicate primarily thro
1717

1818
## Steps
1919

20-
1. Read the spec and tickets to understand the task graph. For each ticket, start from its plan commit and its acceptance file (`docs/tickets/<issue>/<ticket>/aceite.md`), as the root `AGENTS.md`, section "Plano do ticket", describes. If a ticket has no plan commit, stop and ask for `/plan-ticket` first. Every acceptance test carries its criterion ID in the title.
20+
1. Read the spec and tickets to understand the task graph. For each ticket, start from its plan commit and its acceptance file (`docs/tickets/<issue>/<ticket>/aceite.md`), as the root `AGENTS.md`, section "Plano do ticket", describes. If a ticket has no plan commit, stop and ask for `/plan-ticket` first. Every acceptance test carries its criterion ID in a tag.
2121

2222
2. (optional) Use an **exploration subagent** to conduct any exploration required by the tickets - relevant codebase files or external documentation. Ensure the exploration subagent can save files - it should save its markdown notes in a directory outside the repo, accessible by all future subagents. This lets **implementer subagents** focus on implementation rather than exploration.
2323

‎.claude/skills/implement/SKILL.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Implement the work described by the user in the spec or tickets.
88

99
If the user passes a ticket reference, fetch it from the issue tracker and state its title before starting. If the reference is ambiguous, ask.
1010

11-
If the ticket has a plan commit, start from it and from its acceptance file (`docs/tickets/<issue>/<ticket>/aceite.md`), and put each criterion ID in the title of its acceptance test, as the root `AGENTS.md`, section "Plano do ticket", describes. If it has none, stop and ask for `/plan-ticket` first.
11+
If the ticket has a plan commit, start from it and from its acceptance file (`docs/tickets/<issue>/<ticket>/aceite.md`), and put each criterion ID in a tag of its acceptance test, as the root `AGENTS.md`, section "Plano do ticket", describes. If it has none, stop and ask for `/plan-ticket` first.
1212

1313
Call the Skill tool with "tdd" where possible, at pre-agreed seams.
1414

‎.claude/skills/plan-ticket/formatos/aceite.md‎

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Ticket de exemplo. O CA1 é provado por teste HTTP, e o CA2, pela leitura do dif
2626

2727
**Cenário:** Dado um Usuário com um item, quando ele o copia, então a cópia é criada com o nome dado.
2828

29-
**Teste previsto:** testes de ponta a ponta da API, `items.e2e-spec.ts`, "copia o item @PROJ-123-CA1".
29+
**Teste previsto:** testes de ponta a ponta da API, `items.e2e-spec.ts`, "copia o item".
3030

3131
## PROJ-123-CA2
3232

@@ -41,4 +41,17 @@ O arquivo de aceite não muda depois do commit de plano. Descongelar é do usuá
4141

4242
## Teste de aceite
4343

44-
Cada teste de aceite leva no título o token `@<ticket>-CA<n>`, com o `@`, como `@PROJ-123-CA3`. O nome e o arquivo do teste podem mudar durante a implementação, porque a ligação com o critério é o ID.
44+
Cada teste de aceite leva o ID do critério numa tag, `@<ticket>-CA<n>`, com o `@`, como `@PROJ-123-CA3`, e não no título. O nome e o arquivo do teste podem mudar durante a implementação, porque a ligação com o critério é o ID. Um teste que prova mais de um critério leva uma tag por critério. O token no título não vale como ID.
45+
46+
No Vitest, a tag vai nas opções do teste:
47+
48+
```ts
49+
it('copia o item', { tags: ['@PROJ-123-CA1'] }, async () => {});
50+
```
51+
52+
No Playwright, vai na opção `tag`, e várias tags formam uma lista:
53+
54+
```ts
55+
test('o Usuário copia o item', { tag: '@PROJ-123-CA1' }, async ({ page }) => {});
56+
test('o Usuário copia e move o item', { tag: ['@PROJ-123-CA1', '@PROJ-123-CA2'] }, async ({ page }) => {});
57+
```

‎.github/workflows/ci.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: CI
22

33
# O veredito do projeto: reexecuta a definição de pronto inteira, no mesmo Compose do
4-
# desenvolvimento. O desenho está no docs/harness.md.
4+
# desenvolvimento.
55

66
on:
77
pull_request:

‎.github/workflows/harness-guard.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Guarda do harness
22

33
# Reprova o pull request que altera um arquivo protegido do harness. Sem isto, um pull request
4-
# poderia enfraquecer a CI e ser aprovado pela CI enfraquecida. O desenho está no docs/harness.md.
4+
# poderia enfraquecer a CI e ser aprovado pela CI enfraquecida.
55
#
66
# O `pull_request_target` roda a versão da `main` deste workflow e do script, e não a do pull
77
# request. O código do pull request nunca é baixado nem executado aqui.

0 commit comments

Comments
 (0)