RHDH Jira API
One home for talking to Jira. The command syntax, the field IDs, the query
patterns, and the workflow rules live here so that the create, refine, update,
and sprint skills carry none of their own copies.
This skill reads. It never decides what to file and never approves a write —
though it does define exactly what a write costs, because the payload shapes are
here.
Route by question
| Question | Load |
|---|
| Is Jira reachable? Is authenticated? | references/auth.md, then uv run scripts/setup.py --json
|
| Which flag does this, and what breaks? | references/acli-commands.md |
| What JQL answers this? Which board or sprint? | references/jql-patterns.md |
| Which custom field, label, link type, component, or priority? | references/fields.md |
| What must be true before this status transition? | references/workflows.md |
| I need a relationship-heavy bulk read or a team roster | references/graphql-queries.md |
| cannot read or set this field | references/rest-api-fallback.md |
Load the one branch the question needs.
The two traps that produce wrong answers
Both fail silently, and both have burned this pack before.
Default page size is 30. Rows past the thirtieth are dropped with no
warning, so a query that should return 140 issues quietly returns 30 and every
count built on it is wrong. Pass
or
on every bulk
search, and use
first when the total matters.
Custom fields are absent unless you ask for them. and
return only assignee, issuetype, priority, status, and
summary. Story Points, Team, Size, and Sprint come back empty — which looks
exactly like a field nobody set. Enrich with
scripts/parse_issues.py --enrich
or
view KEY --fields '*all' --json
before claiming any of them is missing.
A field you could not retrieve is reported as unretrieved, never as empty.
Bundled scripts
Run these from this skill's directory.
| Script | Purpose |
|---|
| Capability and auth detection; for structured output |
| Enrich, flatten, select, filter, or CSV-export JSON |
scripts/validate_components.py
| Compare the documented component catalog against live Jira |
scripts/jira-wiki-to-adf.py
| Convert a filled wiki-markup template to ADF JSON |
Stdlib only. Another skill invokes
by name and lets this skill
run them; it never reaches into this directory by path.
Writes
This skill does not perform writes, but the payloads live here because the field
IDs do. It hands the caller a command or a payload, never an effect. Whichever
skill owns the verb invokes
and runs it from there.
Credentials never appear in an argument, a preview, a log, or the answer. A
command built here takes its credential from
's own store or the
authenticated host adapter at run time, so nothing this skill hands back carries
one.
Boundary with the neighbouring skills
- Opening new work is .
- Judging whether existing work is ready is .
- Changing a field, status, assignee, comment, or link on a known key is .
- Sprint carryover, velocity, and capacity are ; the end-of-sprint
summary is .
- Issue templates, the grill matrix, sizing scales, and decomposition rules are
.
- What is still open against a release is .
- Creating or repairing a credential is .
Completion
A read is complete when every field the answer asserts was actually fetched.
Report the exact JQL or command used, the number of issues returned, and whether
the result was truncated — a truncated result is an incomplete answer, not a
finding. Say which adapter produced each fact,
or the host adapter. A
field the API could not supply is named as unretrieved rather than reported as
empty or carried over from an earlier query.