Conflicts, found mechanically
Conditions are sets of states, so overlaps and contradictions are exact. Exceptions are
explicit with Overrides:, and they must form a DAG.
Stories that can't drift
A story that relies on unspecified behaviour, or contradicts an expectation, is
rejected before it runs. It never has to restate what the rules already promise.
Coverage by construction
A flow DAG from the starting state gives every expectation a shortest route, and a
generated test follows it when no story does.
Any system, through a driver
A dozen closures bind the vocabulary to your code: a library, a game loop, an API, a
browser, a device. Time, polling and screenshots are built in.
Honest about gaps
What the driver or the machine can't do yet is "not supported yet", not a failure,
and the manual shows it. Databases and containers start themselves.
A manual people read
Markdown for GitHub and an HTML site, in the user's words, with
Say: and Shows: lines for what to press and what appears.