feat(jira): pick the project, issue type and priority from the site (1.3.0)

create_issue and edit_issue declare options_from on project_key,
issue_type_name and priority, and link_issues on link_type, so the
playbook editor lists the Jira site's own values. Three read commands
feed them: list_projects, list_issue_types (per project) and
list_priorities. The README documents enum and options_from.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WhDQSYZd1mFtRsXK4ixtyB
This commit is contained in:
2026-10-02 10:16:41 +00:00
parent 41aa6723c5
commit 820bab8e5c
5 changed files with 586 additions and 7 deletions
+26
View File
@@ -113,6 +113,32 @@ A command is **request-based** when it has a `request:` block, or
**script-based** when a matching `scripts/<command-id>.py` exists. Prefer
request-based commands: they need no sandbox and are easier to audit.
### Inputs with a list of values
An input can offer its values in the playbook editor instead of a free-text box.
- **A fixed list** — `enum:`, when the values are the vendor's own and the same
everywhere (a verdict, a status). The editor shows a drop-down, and the
command bar refuses a value outside it.
- **A list read from the tenant** — `options_from:`, when the values belong to
each customer's tool (projects, issue types, priorities). The editor runs the
named command on the instance and lists what it returns; a typed value or an
expression is still accepted.
```yaml
issue_type_name:
type: string
options_from:
command: list_issue_types # a command of this integration, risk: read only
path: issue_types # where the rows are in its output (empty: the output itself)
value: name # row field written into the input
label: name # row field shown in the list (defaults to value)
depends_on: [project_key] # sibling inputs passed to the command, when filled with a literal
```
Riposte refuses an `options_from` command that is not `risk: read`: opening a
field must never change anything in the customer's tool.
### `risk:` — the agent approval gate
Every command declares a tier. It is what Riposte's agent approval gate reads: