Action Authoring
Generated
This page is generated from qa/operations/specs/action-authoring.md — the source of truth. Edit the spec, not this page.
Last run: not yet recorded (run the replay suite to populate status).
Overview
A world’s action set is the list of routing keys the customer’s agent names on POST /decide
and discovers via GET /actions (ADR-089/104). The operator declares actions and assigns rules to
them on the Actions tab (/worlds/:worldId/actions, D3). Rules associate to actions
many-to-many; a rule assigned to no action does not deploy, and a world that declares no action has
nothing to route to — so declaring an action and assigning at least one rule is the real-flow
precondition for a successful publish→deploy.
The tab mirrors the Rules tab shape: an “Author an action” create form, the declared-action table (each row reading its four-state lifecycle — Live / Under review / Inactive), and a per-action rule-assignment editor that lists the world’s enshrined rules with an Assign / Unassign control.
Preconditions
- Signed in as the seeded operator.
- A world with at least one enshrined rule (authored via the chat-propose → approve path).
Scenarios
1. Declare an action from the empty action set
- Open the Actions tab for a world that has no actions yet
- Expected: The action set reads its empty state; opening “Author an action”, entering a name, and submitting declares the action — a success confirmation names it and the new action appears in the action table.
2. Assign a rule to an action
- Select the declared action and assign the world’s enshrined rule from the assignment editor
- Expected: The rule’s row reflects the assigned state (the association is created via the M:N action-rules route).
3. Unassign a rule from an action
- From the same assignment editor, unassign the rule
- Expected: The rule’s row returns to the unassigned state (the association is removed; both directions are idempotent).
Test Data
| Label | Value | Notes |
|---|---|---|
| Action name | review_income | Routing key declared on the world; mirrors the customer decide fixture |
| Rule text | A taxpayer with gross income below the filing threshold need not file. | The fixture enshrined rule assigned to the action |