Launch Roadmap
Get Launch Plan
Returns the whole launch roadmap: plan status and environment, target and forecast launch dates, computed health with its reason, the critical path (step keys), the profile and resolved modules, milestones, every step (state, progress, evidence, owner, `size` — `S`, `M` or `L`, due / latest-start dates, health, dependencies, lanes, sign-off, not-needed marker, blocked mark), members (`user_id`, `name`, `roles`, `watcher`, `digest_opt_out`, `is_staff`), and:
Create Launch Plan
Builds the account's launch plan from a profile: one step per applicable library step (owners defaulted from member roles, default size), then evaluates it.
Update Launch Plan
Changes plan settings. Send only the fields to change:
Get Launch Plan Summary
A cheap summary of the plan for a status indicator: `{exists, roadmap_available, health, reason, target_launch_on, forecast_launch_on, open_for_me}` where `open_for_me` counts open steps owned by the calling user and `roadmap_available` says whether the roadmap applies here (a plan exists, the caller is SKU.io staff, or the account has not launched yet). Cached for up to 5 minutes and cleared on every plan change. `exists` is false (and the other fields null / 0) when there is no plan or it is archived.
Update Launch Profile
Replaces the profile. Steps for newly applicable modules are added (or restored, with their history, if an earlier profile change set them aside); steps that no longer apply are marked not needed with reason `profile_changed` — never deleted.
Refresh Launch Plan
Re-checks every data-driven step against the account's data now, then re-runs the schedule and health (the plan is otherwise refreshed on read when older than 15 minutes, and nightly). At most once a minute per account: **429** `{code: refresh_throttled, retry_after}` with a `Retry-After` header inside that window. Response: the full launch plan, as returned by Get Launch Plan (`{data, exists: true}`), with dates and health recomputed. A paused or archived plan is frozen: nothing is re-checked, and the response is its frozen launch plan (200) plus `message` saying it was not refreshed. **404** `{exists: false, message}` when the account has no plan.
List Launch Plan Members
The people on the plan: `user_id`, `name`, `roles` (`owner`, `ops`, `catalog`, `finance`, `implementer`, `sku`), `watcher`, `digest_opt_out` and `is_staff`. Members receive the weekly digest unless they opted out.
Replace Launch Plan Members
Replaces the whole member list; members left out are removed. A removed member's open steps become unassigned (recorded in each step's activity with reason `member_removed`); steps they already finished keep them as owner. Membership changes are recorded in the plan's activity.
Add Custom Launch Step
Adds a one-off step to the plan.
Update Launch Step
Changes a step. Send only the fields to change:
Delete Custom Launch Step
Deletes a custom step; other custom steps drop it from their dependencies. Library steps can't be deleted (**422**) — mark them not needed instead. Only SKU.io support can delete steps; other callers get **403**. Response: the full launch plan, as returned by Get Launch Plan (`{data, exists: true}`), with dates and health recomputed. **404** for an unknown step.
Sign Off Launch Step
Signs off a checkpoint step (`completion: signoff`) with a note, as the calling person. Signing off the `go_live` checkpoint marks the plan launched.
Reopen Launch Step
Reopens a signed-off or manually ticked step, clearing the sign-off. Reopening `fulfillment_cutover_decision` also resets the profile's `fulfillment_cutover` to `undecided` (with a `profile_changed` activity entry).
Mark Launch Step Not Needed
Marks a step not needed for this account. It leaves the schedule and health, keeps its history, and can be restored.
Restore Launch Step
Restores a step that was marked not needed; it rejoins the schedule with its earlier state and history. Response: the full launch plan, as returned by Get Launch Plan (`{data, exists: true}`), with dates and health recomputed. **404** for an unknown step.
List Launch Step Activity
The step's comments and activity, newest first. Each entry: `id`, `step_id`, `kind`, `user` (`{id, name}`, or null for changes the system made), `data` (kind-specific details, e.g. `{from, to}` for an owner change or the evidence for a data-driven completion), `body` (comment text) and `created_at`.
Add Launch Step Comment
Adds a comment to a step's activity.
Block Launch Step
Marks an open step blocked: what it is waiting for and who it is waiting on.
Unblock Launch Step
Clears a step's blocked mark (recorded in the step's activity as `unblocked`). A step that is not blocked is left as it is.
Export Launch Plan
Downloads the launch plan as a file.
Import Launch Plan
Imports a cutover bundle exported from another account (normally staging → production). Send `multipart/form-data`.
Suggest Launch Plan Changes From Notes
SKU.io staff only. Sends pasted call notes to the account's configured AI provider, which proposes profile changes and one-off custom steps. The notes are treated as untrusted data, and every proposal is checked against the known profile fields and values, phases, roles and this plan's step keys — anything else is dropped. Valid proposals are stored as pending suggestions and change nothing until someone accepts one. AI never changes dates, health or sign-offs.
Accept Launch Plan Suggestion
Applies a pending suggestion the same way a person would: a `profile_change` updates the profile (list fields gain the value; steps for newly included modules are added), a `custom_step` adds a custom step (owner defaulted from its role). The suggestion becomes `accepted`.
Dismiss Launch Plan Suggestion
Dismisses a pending suggestion; it no longer appears in the plan's `suggestions`. **422** when already decided; **404** for an unknown id.