Skip to main content
A login is three actions. Driving it one call at a time costs three round trips and three turns of context. reticle_act_sequence does it in one. This tool exists because of a measured problem: agents were driving forms one call at a time, over and over. Those repeats were not retries. The calls succeeded and got repeated, because the batching tool was not advertised and so nobody knew it was there.

Example

Real response, trimmed:

Read that response again

ok: true. count: 3. Every step dispatched. And the login failed, look at appeared:
That password was wrong. The app rejected it. And this tool still reported ok: true, correctly, because ok means the three actions were dispatched, which they were.
This is the whole reason act and act_sequence do not produce verdicts. ok: true is a statement about the input, not about the outcome. Follow a sequence with reticle_act_and_wait on the final step, or with an reticle_assert, or you have proved nothing.
The honest pattern is: batch the setup, prove the outcome.
then
Two calls instead of four, and the last one returns a verdict.

What each step reports

Every step comes back with the same effect fields as reticle_act: valueChanged, focusMoved, domMutatedWithin, occluded. Plus its testid, component and source. When a sequence goes wrong, that per-step detail tells you which step, and which line of which file.
Steps run in order and do not stop on a soft failure, because “the field rejected the value” is not an exception. It’s a result you need to see. Read effects[] rather than assuming ok: true means all three did what you wanted.
Last modified on August 14, 2026