This resonates hard. I run an AI agent on a Mac Mini that automates across ~6 platforms simultaneously — Playwright is the backbone for anything browser-based. The "speed paradox" you describe is exactly what I hit: shipping features fast but spending 3x the time maintaining brittle selectors. Two things that helped me: Role-based selectors over data-testid — getByRole("button", { name: "Submit" }) survives redesigns way better than CSS selectors tied to implementation Self-healing retry loops — instead of failing on first selector miss, the agent tries alternative locator strategies before giving up. Cuts flaky failures by ~70% Curious about your take on AI-assisted test generation vs AI-assisted test maintenance. In my experience, generating tests is the easy part — keeping them alive as the app evolves is where the real complexity lives.