Analyze schedule timing
analyze_scheduleResolve a Rhylthyme program onto the clock and report what the live runner will do: every step's start/end (seconds from start and, if you pass finishAt or startAt, ISO wall-clock times), total makespan, the critical path, bindingConstraints (what gates each critical-path edge — an in-flight cap, a saturated task, an offset, or a plain dependency), resource conflicts tagged kind: "maxConcurrent" (more steps claim a task than its maxConcurrent allows) or kind: "inFlight" (more instances of a replicated step are between it and its barrier than replicates.maxInFlight allows), inFlight windows per replicated step, peak concurrency vs. declared actors, and per-track slack (instances get their own sub-track rows, tagged with parentTrackId / instanceOf). Use it to answer 'when do I start the potatoes so everything is ready at 6pm?' (pass finishAt), to find why a schedule is longer than expected (critical path and binding constraints — e.g. the cooling rack, not the oven), or to check equipment contention before visualizing. Pure computation; also returns validation findings so you can fix problems in the same turn.
Analysing against real history. Pass history (run records from load_run, or from rhylthyme runs on disk) and every step with enough measurements gains predicted: {seconds, low, high, basis, n} beside its planned duration, plus top-level predictedMakespan and predictedCriticalPath. basis is "identical" (runs of the same program version, environment and variance factors — their median), "model" (a per-step regression on the factors that correlate) or "none" (no usable measurement). Simpler still: give program_id (a UUID from list_my_programs) plus token and the tool loads the caller's own recorded runs of that program for you. useDurations: "predicted" then recomputes the makespan, itinerary, critical path and conflicts from the predicted durations instead of the authored ones; the default stays "planned" so a program is analysed on what it says.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | Your Rhylthyme access token from the login tool. Only needed with `program_id`, to load your recorded runs; analysis itself needs no login. | |
| history | No | Recorded runs of this program (`runs` schema 0.1.0-alpha documents, as load_run returns them in `run`). Supplying them adds `predicted` per step and `predictedMakespan` / `predictedCriticalPath` to the result. Only runs that measure the executor count — completed, wall clock, speed 1 — and within them only steps a person ended, unpaused. | |
| program | Yes | Rhylthyme program JSON (any shape — validation errors come back in the result, not as a schema rejection). | |
| startAt | No | ISO 8601 datetime the program STARTS at. Ignored when finishAt is given. | |
| finishAt | No | ISO 8601 datetime the whole program should END at (e.g. '2026-11-26T18:00:00-05:00'). Start times are computed backwards from it. | |
| program_id | No | Library program UUID: with `token` and no `history`, the caller's own recorded runs of this program are loaded and used as the history. | |
| useDurations | No | Which duration set the makespan, wall-clock itinerary, critical path, conflicts and slack are computed from. "planned" (default) analyses the program as authored; "predicted" analyses it as history says it will actually run. Needs `history` (or `program_id` + `token`) to differ. | planned |
| predictionContext | No | How to condition the prediction. Everything is optional; with none of it the lookup uses the program's own hash and the factors each run recorded. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| steps | Yes | ||
| tracks | Yes | ||
| inFlight | No | ||
| makespan | Yes | ||
| actorPeak | Yes | ||
| programId | Yes | ||
| wallClock | Yes | ||
| validation | No | ||
| criticalPath | Yes | ||
| durationsUsed | No | "planned" or "predicted": which duration set the makespan, itinerary, critical path and conflicts above were computed from. | |
| makespanSeconds | Yes | ||
| plannedMakespan | No | ||
| predictedMakespan | No | ||
| resourceConflicts | Yes | ||
| bindingConstraints | No | ||
| predictedCriticalPath | No | ||
| plannedMakespanSeconds | No | ||
| predictedMakespanSeconds | No |