Skip to main content

Using Claude Code, Cursor, or another coding agent? Paste this into your prompt to run cross-browser and real-device tests, debug sessions, and wire up CI on the TestMu AI cloud:
A .evidence file is a standard zip. unzip -l <pack> lists it, and unzip -p <pack> <entry> prints one file without extracting the whole pack.

The layout

A testrun pack has one tests/<test-id>/ directory per member, all under the same root.

The load-bearing files

Three files are load-bearing at L0, the minimal profile. At L1, the profile a kane-cli pack validates against, four more artifacts are required once the run is finalized: each test’s logs/ (with its meta.yaml), each test’s steps/ directory, a global coverage/ directory, and the pack-root failure.yaml.

Reading a pack without unzipping it

The sealed zip is flat: its entries are exactly the contents of the pack directory, with run.yaml at the archive root and no wrapping folder. Because nothing is solid-compressed, a consumer can read the zip’s central directory and then fetch only the entries it needs. That is why the hosted viewer opens a very large pack after fetching only a few kilobytes.

Run status and test verdicts

The format keeps two axes separate. Run lifecycle, in run.yaml.status: Test verdicts, used at both test level and step level: The failed versus broken split is the heart of the model: it separates “the product is wrong” from “we could not tell”. A run can be finalized and still contain failed tests. The lifecycle is not a verdict.

Next steps