MoveSpec
MoveSpec is a YAML-first movement definition format. You author a MoveSpec to describe the movements you want to detect, then version and release it for use in detection sessions.Lifecycle
1
Create a MoveSpec
Create the top-level MoveSpec resource in a project. This also creates a mutable draft.
2
Update the draft YAML
Replace the full draft YAML when you make authoring changes. See the YAML reference for the schema.
3
Validate the draft
Run validation before versioning so you can inspect blocking errors and non-blocking warnings.
4
Create an immutable version
Snapshot the draft into an immutable version when it is ready for runtime use.
5
Release the version
Release the immutable version you want future sessions to resolve by default.
Runtime resolution
Detection sessions can resolve a MoveSpec in two ways:movespec_version_id— Use a specific immutable version for deterministic replay or staged rollout control.movespec_id— Resolve the current released version automatically. Your sessions follow the latest release.
Example
Visibility and catalogue
Visibility applies to the top-level MoveSpec resource:privatekeeps the MoveSpec inside the owning project boundary.publicmakes the MoveSpec visible through the public catalogue.
Forking
Treat a public catalogue MoveSpec as a starting point, not as a shared mutable dependency:- Fork when you want to adapt a public MoveSpec to your own project.
- Release your own immutable version after changing the YAML.
- Keep production integrations pinned to your released version.
Public surface
The public developer API covers:- MoveSpec creation and metadata updates (name, description, visibility)
- Draft reads and full draft replacement
- Draft validation results
- Immutable version listing and creation
- Explicit release of an immutable version
- Forking a MoveSpec into your own project
Validation output
Validation results include:errors— Block version creation and release readiness. Must be resolved.warnings— Flag risky but non-blocking YAML patterns.