2 minute read

An individual screen can look finished while the experience around it is still fragile.

The user reaches it. Makes a choice. Receives a result. Leaves. Comes back. Some state should persist and some should disappear. The next part of the product needs to agree with what the previous part just promised.

That sequence is much harder to evaluate from a screenshot than the screen itself.

In July, work on my game included stabilizing a replay-oriented system across its transitions and adding route and regression coverage. The repository also gained more playtest and release-capture tooling. Looking back, the shift is visible: more attention was going toward continuity between features.

Check the promise at the boundary

I find it useful to ask what promise a feature makes to the next part of the system.

If an action grants a reward, where should that reward become visible? If a screen changes a selection, which component owns the new state? If the user exits and returns, what should survive? If the transition fails, what state is safe to recover from?

Those questions produce more useful tests than simply asking whether each component can run.

For a transition, I find this small review useful:

Moment Question
Before the action Is the starting state valid and explicit?
After acceptance Which system owns the committed result?
After leaving What state and resources should be gone?
After returning What should persist, and what should start fresh?

The answers are specific enough to become test scenarios. They also expose disagreements before anyone writes the test.

They also make agent assignments more precise. “Build the results screen” is an interface task. “Show the accepted result, persist the appropriate state, and return to the next valid route” describes a product behavior with several obligations.

The scope may be larger, but at least it is visible.

Do not use a screenshot as a substitute for a journey

Screenshots are valuable for layout and visual judgment. They cannot establish that a save survives reload or that a second visit starts in the correct state.

For those behaviors, I want a focused path through the transition. The evidence should identify the starting state, the action, and the expected result on the other side.

I still do not need to exercise every possible journey for every small change. The test should follow the risk. If I change a shared progression contract, I need evidence at its important boundaries. If I adjust a label, I can usually stay much narrower.

This distinction helps me avoid two kinds of waste: under-testing a consequential state change and turning every edit into a comprehensive regression project.

Integration deserves explicit time

An agent can make local implementation feel almost free. Integration remains a real activity. It includes reconciling assumptions, checking state ownership, and deciding what behavior should occur when components disagree.

If I treat that work as an incidental cleanup step, it will appear as a surprise near the end. If I include it in the definition of the task, the result is easier to review.

The same reasoning applies to teams. A collection of completed tickets can leave an incomplete experience if nobody owns the transitions between them.

July reinforced a simple standard for me: a feature should have a clear entrance, a clear result, and a clear way to leave. Its relationship with the rest of the product is part of what I am building.

For the broader testing workflow, see what an AI agent has to prove before I call it done.

Details

Published: