Skip to main content
The Jira backlog agent reads every open Jira issue labelled agent-ready, implements the dbt™ models each one needs with tests and YAML docs, opens a PR for each, and posts status updates to Slack. The orchestration lives inside the agent’s goal: one self-contained session lists the backlog, works each issue in turn, and posts a summary, so there is no orchestrator script, Python package, or environment-variable plumbing to maintain.
PrerequisitesEstimated time: 15 minutes.

Steps

1

Create the agent

Build the agent in the Agent UI (start from the jira-backlog-agent template), or commit this file at .dinoai/agents/jira-backlog-agent.yml. This is the only file you need: it defines the agent’s role, goal, tools, and Slack output channel, and its goal does the looping over the backlog.
.dinoai/agents/jira-backlog-agent.yml
tools.mode: allowlist means the agent can call only the tools listed, which keeps each session focused and prevents unintended side effects. The get_jira_issue and list_jira_issues tools require the Jira integration, post_slack_message requires Slack, and create_pull_request requires Git. Update slack.channel (and the channel referenced in the goal) before committing if your team uses a different channel.
2

Commit the agent to your repo

Commit the YAML to the git branch your Bolt schedule runs against, alongside your dbt™ project. That single file is the entire footprint:
The agent now appears in the Agent Name dropdown when you configure a Bolt command, populated from .dinoai/agents/*.yml on the configured branch.
3

Run it with Bolt

Trigger the agent from a Bolt schedule using the Run Paradime DinoAI Agent command. See Run an agent with Bolt for the full walkthrough. Because the agent loops over the backlog itself, the schedule is a single command with no wrapper, no poetry install, and no environment variables:
On each run, Bolt invokes the agent, which lists the current agent-ready backlog and opens a PR for each open issue. You can also run this same command on demand from the CLI (or interactively with paradime dinoai --agent jira-backlog-agent) to confirm the backlog is picked up before scheduling it. See the DinoAI CLI reference.
4

Choose a schedule frequency

Pick the cadence that matches how often your team labels new issues as agent-ready:
For most teams, weekdays at 9 AM (0 9 * * 1-5) is a good default. The agent exits cleanly when there is nothing labelled agent-ready, so there is no cost to running it on days with an empty queue.
After a run, each open agent-ready issue has one PR that closes it, and the agent posts a final summary to #agent-demo listing every issue key with its PR link (or a reason it could not be completed). When there are no agent-ready issues, the agent posts a short note and stops. Review the PRs, resolve any Open questions the agent flagged, and merge.

How it works

The Linear version of this pattern needs an external Python orchestrator to fetch issues and fan out one agent session per ticket in parallel. The Jira agent does not: the orchestration lives inside the agent’s goal. A single session lists the agent-ready backlog and works through it sequentially, so the only thing you run is the agent itself. The trade-off is sequential versus parallel. One session processes tickets one at a time. For a typical daily backlog that is the simpler, cheaper choice, with no infrastructure, no secrets to manage, and nothing to keep in sync with your dbt™ project. If you later need true parallelism across a large backlog, fan out with the SDK (see the Linear backlog agent), but most teams will not need to. The agent works each issue in this order within one session:

Next steps

Linear backlog agent

The same pattern, fanned out one session per Linear ticket.

GitHub Issues backlog agent

The same pattern for a GitHub backlog.

Run an agent with Bolt

Trigger agents from a Bolt schedule.

Programmable Agents reference

The agent YAML schema and tools.