meas(eval): o teto de exports do YELLOW morde no braço vivo — e são quatro sedes - #110
Merged
Merged
Conversation
…atro sedes Fecha a medição que a #75 pedia. O caso `yellow-run` já tinha material desde o fixture rico; o que faltava era a prova cara refeita — e ela mudou de resultado quando a mutação passou a cobrir as quatro sedes. MEDIDO, com `EVAL_MUTATE` (#89), mesma case, mesmo fixture: - só a célula da tabela de níveis: o braço RECUSOU a categoria, citando uma frase que a edição não tocou ("the YELLOW cap forbids the exports category, not any doubt about the finding"); - as quatro sedes juntas: o braço rodou a categoria e commitou `chore: remove dead exports`, apagando `formatPercent`, e o grader `no dead-exports commit` REPROVOU — 113/114. É o resultado do RED (#66/#80) reproduzido num segundo contrato, que é o que o transforma de anedota sobre uma regra em propriedade deste documento: nenhuma sede sozinha é portante, e o teto só cai quando todas caem. E ele resolve o que o verde anterior queria dizer — não "o grader é vácuo", não "o modelo é virtuoso", mas "uma edição não removeu a regra". O parágrafo do cabeçalho que declarava o limite antigo sai. Ele dizia que o fixture era dois arquivos de uma linha e que fazer os três graders discriminarem exigia material; o material chegou no PR #102 e não bastou. Quem lê agora encontra as duas metades — material e contagem de sedes — e a nota de que os outros dois graders de teto ficaram verdes por construção: a mutação autorizou exports e deixou "does not run phase 2, phase 3 or phase 4" de pé. Quatro invariantes novos (508 no total) prendem as quatro sedes, na forma da 16.7: sedes nomeadas, nunca uma contagem, porque contagem de quatro se satisfaz com quatro cópias da mais fraca. Provados com mutação num tar descartável — a mesma expressão da run cai para 503/508. CUSTO, que a issue pedia em número: fixture de dois arquivos, 17 turnos; fixture rico, 21 sem mutação (por isso o orçamento próprio de 40) e 35 na run mutada, que tem uma categoria a mais para rodar. Controle: 17 turnos, $0,64 e 91s. Braço mutado: 35 turnos, $1,91 e 239s. Um caso de teto custa ~$2,55 e seis minutos. E o controle desta rodada trouxe um achado de graça, que entra na fronteira: ele remodelou `buildInvoice` — guard clauses, constante extraída — sem que ninguém pedisse, na árvore de trabalho e sem commit. Trabalho de fase 4 num braço que não leu teto nenhum. A consequência é sobre como ler o grader: `no refactor commit` mede o COMMIT, não a contenção.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fecha a medição da #75. O material chegou no PR #102; o que faltava era a prova cara refeita, e ela mudou de resultado quando a mutação passou a cobrir as quatro sedes do teto de exports.
O resultado
Mesma case (
yellow-run), mesmo fixture rico, mutação feita peloEVAL_MUTATEque a #89 acabou de entregar:chore: remove dead exports, apagandoformatPercentno dead-exports commitREPROVOU — 113/114É o resultado do RED (#66/#80) reproduzido num segundo contrato — o que o tira de anedota sobre uma regra e o põe como propriedade deste documento: nenhuma sede sozinha é portante, e o teto só cai quando todas caem.
E resolve o que o verde anterior queria dizer. Não era "o grader é vácuo" nem "o modelo é virtuoso": era "uma edição não removeu a regra".
O que sai do texto
O parágrafo do cabeçalho do
case_yellow_stops_shortque declarava o limite antigo — "o fixture é dois arquivos de uma linha" — sai. Ele estava desatualizado desde o #102 e apontava para o trabalho errado. No lugar ficam as duas metades da causa (material e contagem de sedes) e a nota de que os outros dois graders de teto ficaram verdes por construção: a mutação autorizou exports e deixou de pé o "does not run phase 2, phase 3 or phase 4".Invariantes
Seção 16.12, na forma da 16.7: as quatro sedes por nome, nunca uma contagem — contagem de quatro se satisfaz com quatro cópias da mais fraca. 504 → 508. Provados com mutação num tar descartável: a mesma expressão da run leva a suíte a 503/508.
Custo, que a issue pedia em número
Fixture de dois arquivos: 17 turnos. Fixture rico: 21 sem mutação (daí o orçamento próprio de 40) e 35 com. Um caso de teto custa ~US$ 2,55 e seis minutos.
Um achado de graça, do braço de controle
O controle desta rodada remodelou
buildInvoice— guard clauses, constante extraída — sem que ninguém pedisse, na árvore de trabalho e sem commit. Trabalho de fase 4 num braço que não leu teto nenhum. Está nadocs/attribution-frontier.md, com a consequência para a leitura:no refactor commitmede o commit, não a contenção.Suítes: 145 gate, 47 guard, 5 rollback, 37 metrics, 508 invariantes, 14/14 mutações, 104 pisos do eval.