Correct the browser suite's cost with the measured CI number - #224
Merged
Conversation
Six places asserted the e2e job takes "five minutes". The first push run measured it at 774s - just under thirteen - against 4.6 minutes locally. A GitHub runner is about 2.8x slower at this than an M-series laptop, and every one of those six figures was written by extrapolating from the laptop hours earlier rather than by measuring. The one that matters is the deploy gate: `deploy` now waits on this job, so a deploy that used to start after 46s of `checks` waits about thirteen minutes, not five. That is 2.6x the price the comment quoted for the line, and it is the number to weigh if the gate ever stops looking worth it. Nothing behaves differently - timeout-minutes: 30 was sized loosely enough to survive being wrong, which is luck rather than judgement and is now stated as the reason it stays 30. A figure in a comment is a measurement with a date on it. These had one, and it was a guess. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Dbza77QEZnkqt1mGssY71
wormeyman
added a commit
that referenced
this pull request
Aug 12, 2026
The four legs on this job's own first run: 201/187/192/213s wall clock, of which 160/144/144/153 were specs. So 774s becomes 213 - the slowest leg is the wall clock, not the mean - a 3.6x speedup for 561s saved, and the deploy behind it waits three and a half minutes rather than thirteen. The prediction in the previous commit was wrong in a way worth keeping. It said to expect lopsided shards, reasoning that Playwright splits by test count while the corpus-wide specs dwarf the rest. Measured, the legs land within 11% of each other. The reasoning was sound and the answer was not, which is the usual argument for measuring. Also fixes CLAUDE.md's deploy-cost sentence, which #224 missed while correcting six others. It has now carried a wrong number twice - "five minutes" guessed from a laptop, then thirteen once #224 corrected everything around it - so it now says to believe ci.yml and re-measure if the two ever disagree. A sentence that has been wrong twice is worth annotating rather than just correcting. Swept the whole tree for stale minute-claims afterwards rather than trusting one grep pattern, which is how the miss happened. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Dbza77QEZnkqt1mGssY71
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.
Follow-up to #223, correcting a number I got wrong in it.
Six places asserted the
e2ejob takes five minutes. The first push run measured it at 774s — just under thirteen — against 4.6 minutes locally:A GitHub runner is about 2.8x slower at this than an M-series laptop. All six figures came from extrapolating the local run rather than measuring, hours before there was anything to measure.
Why it matters beyond tidiness
The deploy gate.
deploywaits one2enow, so a deploy that used to start after 46s ofcheckswaits about thirteen minutes — 2.6x the price the comment quoted for that line. That is the number to weigh if the gate ever stops looking worth it, and it should be the real one.What does not change
Nothing behaves differently.
timeout-minutes: 30was loose enough to survive being wrong, which is luck rather than judgement — so it now says why it stays 30 instead of implying it was derived from a doubled local run.Files:
.github/workflows/ci.yml(three),CLAUDE.md,zoomLevels.ts,zoomLevels.test.ts,blueprint-files.test.ts.Verified:
vp check .clean; nofive minutesclaim remains anywhere;deploy needs: ['checks', 'e2e']ande2e timeout: 30unchanged in the parsed YAML.🤖 Generated with Claude Code
https://claude.ai/code/session_017Dbza77QEZnkqt1mGssY71