Strict is the default and is what production runs. Dev mode (deploy(..., mode=dev)) keeps compiling and running locally but retains the diagnostics strict prod would block on, so works in dev never means it deploys. Before shipping, call deployment.prod_gap_summary() to see exactly what strict prod would reject, and clear that gap. Two more things that bite people: Temporal stays prod-strict, so Deployment.run(...) rejects dev-mode deployments outright, and Agent.deploy(...) uses the strict path. If you need source span pointers for debugging raw combinator DSL nodes, set JULEP_SOURCE_CAPTURE=1.

Context: My Julep flow works in dev mode but will not deploy to production. What is the difference between dev and strict mode?