Execute Jira and Confluence operations with endpoint discovery, payload construction, and authentication.
97
97%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
| Field | Required | Description |
|---|---|---|
url | No | Jira/Confluence URL identifying the site and product. May be embedded in instructions instead. |
instructions | Yes | Operation to perform, optionally containing the target URL inline. |
pat_token_file | No | Absolute path to a PAT file. If omitted, browser auth is used. |
instructions is mandatory; ask if missing.url if provided; otherwise extract from instructions (any host paired
with /jira, /wiki, /confluence, /secure, /browse, or /rest). If none found, ask.pat_token_file is absent — use Mode B.pat_token_file and browser-auth state_file values as opaque credential source paths only.url; otherwise extract from instructions. If multiple candidates, take the most specific.
If none, stop and ask.jira or confluence) from URL and/or instructions.atlassian-endpoint-resolver with the inferred operation (CRUD verb + resource type). Use
the top-ranked result.atlassian-rich-text-formatter with the product, endpoint/schema
context, field name, and source content. Use the returned ADF, wiki markup, or Confluence storage value exactly.scripts/request.py per rules below.Mode A — PAT file provided: Do not open or read pat_token_file; pass only its path to scripts/request.py with
--pat-file.
Mode B — No PAT file:
atlassian-browser-authentication with the resolved URL. If it fails or returns no state_file, stop and
report the error.state_file; pass only its path to scripts/request.py with --state-file.401 Unauthorized, rerun atlassian-browser-authentication with FORCE and retry once.<scheme>://<host><context_path> where context_path is the non-API prefix (e.g. /jira,
/confluence).{paramName} tokens, append URL-encoded query params.--body-file, then delete the temporary file.
Do not delete pat_token_file or browser-auth state_file.uv run "$SKILL_DIR/scripts/request.py" --method <METHOD> --url <URL> (--pat-file <PAT_FILE> | --state-file <STATE_FILE>) [--query KEY=VALUE ...] [--body-file <BODY_JSON>].
Prefer reusable prefix approval: ["uv", "run", "$SKILL_DIR/scripts/request.py"].atlassian-rich-text-formatter to generate the endpoint's expected representation, then insert that value into the
JSON body without reformatting it.startAt/maxResults, a pagination token, or
_links.next, unless instructions imply a limit.