Ask Pete (pre-flight checker)
Ask Pete is a lint + dry-run checker that tells you what would break in a sequence, blockscript, or scheduler campaign — before the night does. Point it at what you're about to run and it hands back a plain-language verdict and a list of findings, so you don't discover a dangling filter name or a target that never rises at 2am.
Pete is the simulated-operator persona Starship uses for its night simulations; the pre-flight checker is that same "would this actually run?" scrutiny wired into the editors.
Where it lives
An Ask Pete button sits in the Sequencer, Blockscript, and Schedule editors. Clicking it checks the current config — the sequence you're editing, the selected blockscript (even unsaved), or your live project list — and pops a report modal: a verdict pill (errors / warnings / all clear), each finding with a ✓ / ⚠ / ✗ icon and where it is, and Pete's one-line take ("I wouldn't run this yet — 3 things are broken" / "Looks clean, I'd hit start").
It's also an API: POST /api/pete/check {kind: "sequence" | "blockscript" | "scheduler", ...} returns the findings plus a friendly summary.
What it catches
Two layers:
- Static lint (reliable for "undefined") — every dangling reference:
- a filter that isn't in your wheel / library, - a slew with no coordinates and no target, - a run_sequence naming a plan that doesn't exist, - a blockscript goto to a state that isn't there, - an unknown action type, or a retry_connect for a device you don't have.
- Light dry-run — a sequence is compiled and walked (always finite) for a **time
estimate and value sanity; the scheduler is scanned against tonight's sky to flag a target that never clears your horizon (it would sit idle forever) or a malformed goal; a blockscript is checked for goto self-loops, an unparsable wait until time, and a session with no run_sequence / run_scheduler body** anywhere — it would idle in RUNNING until you force shutdown.
What it can't promise
Truly proving a script halts is the halting problem — no tool can. Pete flags the structural mistakes (a self-loop, a goal that can never complete) and is upfront that he can't certify termination. Treat a clean report as "no obvious breakage," not "guaranteed to finish."
How it fits with the simulators
Ask Pete is the quick, per-edit sanity check. For a fuller look before you trust a night, the Schedule page's Simulate tonight draws tonight's plan as a timeline (with per-target skip reasons), and a multi-night campaign simulation plays a whole week forward. Use Ask Pete to catch mistakes as you build, and the simulators to see how a valid plan actually plays out. See the Sequencer, Blockscript, and Scheduler topics.