Action Inputs
Generated
This page is generated from qa/operations/specs/action-inputs.md — the source of truth. Edit the spec, not this page.
Last run: not yet recorded (run the replay suite to populate status).
Overview
An action’s inputs are the canonical values the customer’s agent sends on POST /decide for that
routing key — its ontology. The operator views an action’s inputs on the Actions tab
(/worlds/:worldId/actions,): each input reads its name, type, whether it’s required, its
choice list (for a choice-list type), and a “renamed by operator” marker when the operator has
already re-shaped it.
Once a version is published, an input’s name and type are part of the caller contract — agents depend on them. So renaming or re-typing a published input is a deliberate act: the operator opens an edit affordance, writes the new name / type / choices plus a required intent note, and previews what changes before committing. The preview is a dry run — it reports the affected rules, whether the change is breaking for callers, and any re-type precondition (re-typing first requires realigning the rules that read the input). Confirming records the edit; the next publish honors it, and until then it shows as a pending change distinct from the live ontology.
Only a published input is editable here. An input with no published version yet is shaped through normal authoring; the deliberate-edit path rejects it (the API returns a 422 the panel surfaces).
Preconditions
- Signed in as the seeded operator.
- A world with at least one enshrined rule, a declared action carrying that rule, and a published version (so the action’s inputs are part of a caller contract — the freeze referent the preview resolves against).
Scenarios
1. View a published action’s inputs
- Publish a version, open the Actions tab, and select the action
- Expected: The inputs panel lists the action’s inputs — each reading its name, type, and required/optional marker (a choice-list input also reads its choices).
2. Preview the impact of renaming a published input
- Open the edit affordance on a published input, enter a new name and an intent note, and preview
- Expected: The impact dry run renders prior → proposed, the count of affected rules, and the breaking-change warning when the rename breaks the caller contract — no change is recorded yet.
3. Record the rename
- Confirm the previewed rename
- Expected: The edit is recorded; the input now shows as a pending change (”→ new name, applies at next publish”). The next publish would honor it.
Test Data
| Label | Value | Notes |
|---|---|---|
| Rule text | A taxpayer with gross income below the filing threshold need not file. | The fixture enshrined rule whose inputs form the action’s ontology |
| Action name | review_income | Routing key declared on the world and assigned the fixture rule |
| Rename suffix | _renamed | Appended to the published input’s name to drive a deliberate rename |