This is a personal proof-of-concept project. It is not intended for production use. Please refrain from using it.
Skip to content

Plans & scheduling

A plan is a named, ordered bundle of suites the AI debugging agents run as a single regression pass, on demand, or automatically on a cron schedule. It's how you go from "I have 20 checks the agents saved" to "re-run the whole nightly regression and root-cause whatever broke." The agents are non-destructive: they drive your flow and read your servers read-only, so a nightly pass investigates and diagnoses without ever mutating your app or data.

What a plan is

  • An ordered list of items, each { suite, cases? } (omit cases to run the whole suite).
  • Running a plan enqueues its items in order onto the run queue; each suite keeps its own shared fixtures/state, exactly like a normal run.
  • An optional cron schedule so the plan fires itself.
  • An optional auth test account that's logged in before each suite (for flows behind login).

Create and run

From the dashboard's Plans page (build a plan from your suites, or have generation produce a whole plan at once), or over the API:

bash
# Create a plan
curl -X POST http://127.0.0.1:8400/api/v1/plans \
  -H "Authorization: Bearer $TOKEN" -H 'content-type: application/json' \
  -d '{
        "name": "Nightly regression",
        "items": [
          { "suite": "01-storefront.upliftr.yaml" },
          { "suite": "03-checkout.upliftr.yaml", "cases": ["t1-de-checkout"] }
        ],
        "schedule": "0 2 * * *"
      }'

# Run it now, enqueues every item in order
curl -X POST http://127.0.0.1:8400/api/v1/plans/<plan_id>/run \
  -H "Authorization: Bearer $TOKEN"

See the Plans API.

Scheduling

Set schedule to a standard cron expression (0 2 * * * = 02:00 daily). A scheduler daemon polls and fires each due plan onto the run queue, then stamps last_run. The dashboard shows the computed next run; an invalid cron is flagged rather than silently skipped.

Newly-saved schedules arm for their next boundary (a plan saved at 01:59 with 0 2 * * * runs at 02:00, not retroactively). Pair scheduled plans with notifications so a failed nightly pass pings Slack or Teams, and with issue filing so failures land as triaged tickets while you sleep.

How to use it

  • One plan per environment or cadence, e.g. a fast smoke plan per push, a full regression plan nightly.
  • Order matters, put setup/auth-establishing suites first; later suites inherit nothing across suites, but ordering keeps the report readable.
  • Scope with cases, a plan can run just the critical cases of a large suite.

Related: Runs & assertions · Notifications · Filing issues

Upliftr · AI-native, self-healing E2E testing. Terms · Privacy · Legal Notice