> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrip.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Rule sets

> Program-owned groups that define rule execution order

Every rule belongs to a rule set. Each program has an automatically created, immutable-key `default` set, and omitting `rule_set_id` assigns a rule to that set.

Rule sets execute by ascending `order`. Rules within each set execute by their own `order`. Every applicable `ACTIVE` rule across every set participates, while `stop_after_match` on a successfully executed rule skips only the remaining rules in the same set.

Scrip numbers both order levels 1..N with no gaps. The `key` is immutable. You can update the name or position, but rule sets do not have delete or archive operations.

## Endpoints

* **List**: return a program's rule sets in execution order
* **Create**: add a set with a unique program-scoped key and semantic position
* **Get**: retrieve a set by its program and ID
* **Update**: change a set's display name
* **Move**: place one set relative to its siblings with version protection
* **Reorder**: atomically replace the complete set order
* **Rule order**: atomically replace the complete non-archived rule order within one set

<Note>
  For assignment and execution behavior, see the [Rule sets guide](/guides/rule-sets). For versioned changes, snapshots, history, and rollback, see [Managing rule configuration](/guides/managing-rule-configuration).
</Note>
