Journeys, discovery, and runs.
Journeys are defined once in application manifests and executed across the supported surfaces. Discovery is strictly read-only; execution is preflight-gated and produces durable, analyzable artifacts.
Journeys live in application manifests#
Application manifests define repositories, targets, required journeys, paths, and ownership. Environment variables provide explicit target coordinates, not hidden application defaults.
Journeys carry stable identity. An onboarding-first-use journey, for example, has an immutable journeyId, a journeyVersion, a UUID journeyVersionId, and a firstSuccessFact; its publication policy names the stable screenId, allowed artifact kinds, minimum evidence level, and whether verified redaction is mandatory.
An explicit PROBIERZ_JOURNEY naming one declared journey runs only that journey. A value declared in journeyOverrides.when.PROBIERZ_JOURNEY instead selects that override's complete group when every condition matches.
Without an explicit journey, the first matching override replaces the default group. Unknown selectors and named groups whose additional conditions do not match are refused; an unrelated matching override cannot make an unknown selector valid.
Discovery is read-only#
Discovery lists surfaces, registered applications, specifications, journey outlines, source identity, and the exact run commands — without installing dependencies, starting a driver, executing a suite, or changing an application repository.
probierz list # the surfaces, tools, targets, and env
probierz specs [surface] # journey specs discovered by the Rust runner
probierz describe <spec> # static outline of a supported spec file
probierz cmd <target> # the exact shell command to run a target yourselfPreflight before execution#
`probierz check <target>` is authoritative for toolchain readiness on the current host. It either reports readiness or names the missing prerequisite and its owner. Readiness is not evidence that a journey passed; only a completed run can produce that evidence.
Probierz owns and installs its own tooling through `probierz setup`: npm dependencies, Playwright browsers, and Appium drivers. Host-level prerequisites — Xcode, the Android SDK, simulators, physical devices, WinAppDriver, operating-system permissions — are detected and reported with a fix, never installed.
Running a target#
Targets are `web`, `electron`, `mobile:ios`, `mobile:android`, `mobile:ios:byk-auth`, `desktop:mac`, `desktop:cua`, `desktop:win`, and `tui`. A successful run returns the run result and analysis and writes target-specific artifacts under `test-results/`. Execution may drive a real browser, simulator, device, terminal, or desktop application, so it is not a read-only continuation of discovery.
For `mobile:ios:byk-auth`, `--local` keeps execution on this machine; otherwise `--host <selector>` places it on fleet capacity and defaults to `stado:mini`. `--seed-resend` seeds the login mailbox resend source without running a journey.
A selected `--spec` normally comes from the harness registry. It may also be an absolute path to an executable program owned by the application's own repository; Probierz validates that ownership boundary and stamps its report with `owner: "application"`.
probierz check TARGET
probierz run TARGET --app APP_ID --recordRecording and analysis#
- `run --record` forces video, trace, and screenshot capture on Playwright web runs, with a JSON reporter writing report.json.
- Electron runs capture trace + screenshot; Playwright video is a browser-context feature and does not attach to Electron windows.
- WebdriverIO mobile and desktop-native runs write per-test Appium screen recordings; drivers without screen recording (often Mac2 / WinAppDriver) degrade silently and never fail the run.
- Recording support is driver-specific and never upgrades a failed run to success.
- `probierz analyze` parses the report, classifies media with sizes, pulls recording metadata via ffprobe, and can extract frame montages via ffmpeg — both optional.
Change-driven selection#
`probierz affected` maps a change (git diff against a ref, or explicit files) to the targets it could touch, deterministically and structurally. `probierz ci` composes it: select affected targets, run the ready ones (blocked ones are reported with their fix, not spawned), analyze, and return one verdict with a summary of passed, failed, blocked, and ran.