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:
kane-cli evidence validate checks a pack’s integrity and completeness:
The target can be an execution id, resolved against the project store, a live pack directory, or a sealed .evidence file. Exit codes: 0 valid, 1 invalid, 2 not found. --json plus the exit code makes this easy to gate in CI or scripts.

Gating a pipeline

What validation checks

Validation is status-gated. A pack that is still running or was aborted is checked for structure only. A finalized pack gets the full seal checks as well. Structure, on every run status:
  • the manifest anchor run.yaml and its identity fields are present,
  • each test’s recorded id equals its tests/<id>/ directory name,
  • every test directory has a result.yaml, and where a result.yaml declares a definition path, the file at that path exists,
  • a declared definition path is contained, with no leading /, no .., and no escape out of the pack,
  • step ordinals are unique and strictly increasing, with gaps allowed.
Full seal, added when the run is finalized:
  • ended and totals are present, and ended is at or after started,
  • totals equals the rolled-up per-test verdicts, and the test count equals the sum of the verdict buckets,
  • every declared definition carries a hash, and the hash matches its file.
  • at L1, each test has a logs/ directory whose meta.yaml declares at least one log, and a steps/ directory; the pack has a global coverage/ directory and the finalize-generated root failure.yaml.
A test marked passed that still has a failed or broken step is a warning, never a failure. The test verdict is authored, so the validator checks it, it does not overrule it.

Profiles

kane-cli packs carry the captured layer, so they validate at L1. That is the default for this command.
A missing per-step screenshot is a warning, not an error. Not every framework captures a frame per step, and not every step needs a folder.

When a pack will not open

If a pack will not open in the viewer, validate it. An unsealed pack, for example from a run that was killed hard, is checked for structure only, so it can still report valid. A truncated pack cannot be read at all and fails before any verdict.

Next steps