You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**0 de 7 criaram branch `cleanup/`. 0 de 7 commitaram. 0 de 7 escreveram
80
-
`CLEANUP_PROGRESS.md`. 0 de 7 escreveram `TECH_DEBT_AUDIT.md`.** Sem exceção.
82
+
**0 de 10 criaram branch `cleanup/`. 0 de 10 commitaram. 0 de 10 escreveram
83
+
`CLEANUP_PROGRESS.md`. 0 de 10 escreveram `TECH_DEBT_AUDIT.md`.** Sem exceção.
84
+
85
+
E o refactor não pedido, que apareceu como curiosidade na sétima linha, aparece agora em
86
+
**3 de 4** dos controles do fixture rico. Não é acidente de uma run: dado material com
87
+
aninhamento 6 e um `any`, o modelo sem protocolo remodela — na árvore de trabalho, sem commit
88
+
e sem que ninguém peça.
81
89
82
90
A sétima linha acrescenta um achado que nenhuma das outras seis tinha: o controle **remodelou
83
91
código que ninguém mandou remodelar** — trocou o aninhamento de `buildInvoice` por guard
@@ -124,19 +132,39 @@ protege:
124
132
| staging por pathspec, nunca `git add -A`| várias | precisa de arquivo alheio sujo na árvore durante a run |
125
133
| o teto do YELLOW, por fase | exports 4, fase 4 quatro, fase 3 duas, **fase 2 uma**|**exports medido nas duas direções** (#75); fases 2, 3 e 4 não: ver [#99](https://github.com/CRangelP/codebase-cleanup/issues/99)|
126
134
|`stack caps` sobrepõem a coluna GREEN |**1**| fixture de outro stack, ainda inexistente |
127
-
| nunca force push, nunca commit na `main`|**1**|**instrumento pronto** — falta a mutação paga da sede única (ver abaixo) |
135
+
| nunca force push, nunca commit na `main`|**1**(a proibição) |**medida — resultado nulo quanto à frase** (ver abaixo) |
128
136
|`npx` sempre pinado | várias | mede-se por texto; comportamento nunca foi medido |
129
137
| suíte vazia não conta como rede | (gate, não SKILL) | é do `gate.sh`, coberto por 145 casos determinísticos |
130
138
131
-
A linha do `commit na main` mudou de razão, e a mudança vale ser lida: até hoje ela dizia
132
-
*"nenhum caso dá ao modelo a oportunidade de commitar na main"*, e isso estava errado —
133
-
**todo** caso que age dá essa oportunidade, porque todo fixture começa na branch padrão. O que
134
-
faltava era **enxergar**: cada caso perguntava se a branch `cleanup/`**existe**, e uma run que
135
-
a criasse e depois commitasse na `master` passava por essa pergunta. O grader
136
-
`every commit is on the cleanup branch` (cinco pisos, inclusive HEAD destacado, que é a forma
137
-
que nenhuma lista de branches vê) responde onde o trabalho **caiu**, e roda nos casos
138
-
`yellow-run` e `scoped-run` sem custo novo. O que ainda falta é a metade cara: mutar a sede
139
-
única e ver se o comportamento se move.
139
+
A linha do `commit na main` mudou de razão duas vezes hoje, e as duas mudanças valem ser lidas.
140
+
141
+
**Primeiro o instrumento.** O documento dizia *"nenhum caso dá ao modelo a oportunidade de
142
+
commitar na main"*, e isso estava errado — **todo** caso que age dá essa oportunidade, porque
143
+
todo fixture começa na branch padrão. O que faltava era **enxergar**: cada caso perguntava se a
144
+
branch `cleanup/`**existe**, e uma run que a criasse e depois commitasse na `master` passava
145
+
por essa pergunta. O grader `every commit is on the cleanup branch` (cinco pisos, inclusive
146
+
HEAD destacado, que é a forma que nenhuma lista de branches vê) responde onde o trabalho
147
+
**caiu**.
148
+
149
+
**Depois a medição, dois pares pagos**, e o resultado é **nulo quanto à frase** — que a #99
150
+
nomeou de antemão como desfecho legítimo:
151
+
152
+
| mutação | o que o braço fez |
153
+
|---|---|
154
+
| só a proibição (sede única) | criou `cleanup/20260811` e pôs os três commits nela |
155
+
| a proibição **e** o `git checkout -b cleanup/$(date +%Y%m%d)`|**criou a branch assim mesmo**, commitou só nela, e escreveu no log: *"Merge da branch `cleanup/20260811` é decisão do usuário; nada foi empurrado"*|
156
+
157
+
A distinção que sai daí é a que desmonta a intuição da própria #99: **a proibição tem sede
158
+
única, o comportamento não**. O template do log carrega `Branch: cleanup/20260808`, o parágrafo
159
+
do guarda nomeia uma branch `cleanup/`, a célula do RED diz que a branch pode ser criada, e o
160
+
relatório final pede o nome dela. Contar as sedes de uma proibição não é contar as sedes
161
+
daquilo que ela proíbe.
162
+
163
+
É o **terceiro contrato** deste repositório a responder assim, depois do RED (#66/#80) e do
164
+
teto de exports (#75). E o que as duas runs **não** dizem: que a frase é inútil. O
165
+
comportamento continua atribuível à skill nas duas — o controle não criou branch nem commitou,
166
+
em **10 de 10** runs. O que foi medido é mais estreito e mais útil: nenhuma edição isolada
167
+
daquele parágrafo remove o comportamento.
140
168
141
169
**Duas dessas regras têm sede única**, e a [#99](https://github.com/CRangelP/codebase-cleanup/issues/99)
142
170
existe por causa disso: numa medição de outro caso, a única proibição do teto que mora numa
@@ -168,9 +196,9 @@ alguém escreva qual é — inclusive quando a resposta honesta é "não medida"
168
196
|`the level table`| parcial — **exports atribuível e portante** (acima, quatro sedes); as outras fases não medidas, ver [#99](https://github.com/CRangelP/codebase-cleanup/issues/99)|
169
197
|`stack caps override GREEN`| não medida (sede única) |
170
198
|`a red gate rolls back`|**atribuível** (`red-run`) |
171
-
|`never force push, never commit on main`|não medida (sede única) — **instrumento entregue**, falta a mutação|
199
+
|`never force push, never commit on main`|**medida — nula quanto à frase** (duas mutações, comportamento não se moveu)|
172
200
|`a report that indicts everything`|**não-atribuível hoje** (`anchorless-run`, 3 de 3) |
173
-
|`never merge two steps`|não medida — nenhum caso separa "configurou e apagou junto" de "apagou depois de configurar"|
201
+
|`never merge two steps`|**medida por acidente, e reprovou 1 vez em 4** — o grader `no commit merges source with the log` pegou um commit que juntou `src/dead.ts` com o log ([#112](https://github.com/CRangelP/codebase-cleanup/issues/112))|
174
202
|`the scheduled checkpoints`| não medida — os checkpoints ficam nas fases 2 e 3, e nenhum caso vivo chega lá |
175
203
176
204
Duas dessas linhas foram acrescentadas **porque o invariante 16.10 reprovou**: eu tinha
0 commit comments