Missions

Overview

A Mission is a binding that tells Snap CD which kind of AI work should run, on which Agent, and at which scope. When a triggering event occurs on a Module Job that falls within a Mission’s scope, Snap CD dispatches the Mission to the named Agent. Missions are an Enterprise-tier feature and require at least one Agent to be configured.

Mission Types

The set of Mission Types is fixed. Each type is bound to a triggering Snap CD event and a specific kind of AI output.

Mission TypeTriggerWhat it does
AutoDiagnoseModule Job failsPosts a diagnosis of the failure (root cause hypothesis, relevant log excerpts, suggested next steps)
ApprovalRecommendModule Job reaches approval-required statePosts a recommendation on whether to approve the plan, based on the plan output and the Module’s history
SummarizeJobModule Job succeedsPosts a plain-language summary of what the Job changed

Mission Resources

A Mission is declared at one of four scopes. Choose the scope at which you want the trigger to apply: an OrganizationMission fires for every Module Job in the organization, a ModuleMission only for the named Module.

ResourceScopeDescription
Organization MissionOrganization-wideMission fires for any Module Job in the organization
Stack MissionOne StackMission fires for Module Jobs in any Module under the Stack
Namespace MissionOne NamespaceMission fires for Module Jobs in any Module under the Namespace
Module MissionOne ModuleMission fires for Module Jobs on the named Module

Each Mission resource carries the same configuration fields, plus the scope reference appropriate to its level (stack_id, namespace_id, or module_id):

FieldDescription
agent_idThe Agent that runs this Mission
mission_typeOne of AutoDiagnose, ApprovalRecommend, SummarizeJob
sidecar_nameOptional. Selects which Sidecar on the Agent handles this Mission. When unset, the Agent’s default Sidecar is used
is_disabledWhen true, the Mission is registered but will not be dispatched

Dispatch

When a triggering event occurs, Snap CD evaluates the active set of Mission rows that cover the affected Module Job. For each match, Snap CD checks that the named Agent has an Agent Assignment covering the Module (or has is_assigned_to_all_modules set), then dispatches the Mission directly to a connected Agent Instance.

A Mission whose Agent is online but lacks an assignment covering the Module is parked and will dispatch automatically once a covering assignment is added (or once the Agent’s is_assigned_to_all_modules flag is enabled).

A Mission whose Agent has no connected Instances at dispatch time is parked and will dispatch automatically once any Instance of that Agent reconnects.

Each (Module Job, Mission Type) pair runs at most one Mission at a time. Snap CD enforces this lock server-side: if two Instances of the same Agent both pick up the event, exactly one wins and the other defers cleanly.

Sidecars

A Sidecar is the process on the Agent host that actually produces AI output for a Mission. The bundled claude-sidecar runs Anthropic’s Claude with your organization’s API key.

The Sidecar to use for a given Mission is selected by the Mission’s sidecar_name field. Leave it unset to fall back to the Agent’s default Sidecar (the typical configuration when an Agent host runs a single Sidecar).

You can run multiple Sidecars per Agent — for example a Claude-based Sidecar for diagnosis Missions and a different-provider Sidecar for summary Missions — by configuring more than one Sidecar on the Agent host and routing each Mission Type to the appropriate one via sidecar_name.

Edition Availability

Missions are available on the Enterprise tier only and require a configured Agent.

Last updated on