Journeys

A Journey is a parameterized, deterministic, replayable recording plus metadata. It is the one artifact everything in Jevitate produces or consumes.

The artifact

A Journey wraps a parameterized recording with:

  • A name and a param-schema derived from its variables
  • Postconditions that decide whether a step really succeeded
  • Provenance, retention, and promotion state
  • Secret references — a manager key + bound origin + field, never the value

1. Record by demonstration

Step through your app in a headed browser; Jevitate captures a take — a durable, descriptor-based recording (semantic locators, not brittle selectors). Capture a few takes of the same task to generalize the variable parts.

2. Parameterize

Bind the variable values and fold multiple takes into one parameterized Journey:

jevitate recording diff takeA.json takeB.json   # see what varies
jevitate recording fit take.json                # bind variables
jevitate recording postdoc take.json --out journey.json

3. Promote

Promotion is the approval gate. Only a promoted Journey is runnable and discoverable over MCP — nothing auto-publishes.

jevitate recording promote journey.json

4. Run

jevitate journey list
jevitate journey run <id> --param email=you@example.com

Replay is deterministic — the same descriptors, the same steps, no model in the loop.

The run context

A single immutable RunPolicy is threaded through every step, segmented into narrow sub-policies. It's a required parameter — there is no default construction, and the fallback is never permissive:

RunPolicy (required — no permissive default)
├── SelfHealPolicy   fail-closed | hybrid | full
├── DirectionPolicy  deterministic ↔ Jev-directed ↔ goal-based
├── SecretPolicy     vault-autofill | visible-handback | fail-closed
├── PacingPolicy     human-speed profile
└── Budget           max-steps · per-run/day · concurrency

Safe default: fail-closed self-heal, deterministic direction, fail-closed secret handling.

Self-healing

Today, on divergence a run fails closed — it stops and quarantines rather than guessing. Write, irreversible, and real-send steps never auto-heal.

Roadmap: hybrid/full in-flight self-healing — a scoped Jev re-learn of just the broken step, spliced back into the Journey and gated by policy.

LM-driving

Roadmap: instead of recording by hand, let Jev drive — it makes typed op + target decisions while a generative model supplies text only, emitting the same deterministic Journey. This is the Testing Modes engine; the DirectionPolicy above already reserves its place on the spectrum.