Skip to main content
The end-to-end PR reviewer is a DinoAI agent that acts like a thorough senior reviewer: it reads the PR diff itself with read_pull_request, checks the linked Linear issue, verifies test and documentation coverage, traces downstream impact through get_lineage and get_exposures, and posts a single structured verdict (APPROVE / REQUEST_CHANGES / REJECT) to Slack.
PrerequisitesEstimated time: 15 minutes.

Steps

1

Create the agent

In the Agent app, open Agents, select New agent, and start from the dbt-model-reviewer template (or Start from scratch). Fill in the builder fields with the content below. See Build an agent in the UI for a tour of the builder.Name: pr-reviewer-e2eRole:
Goal:
Backstory:
Model: leave Auto selected.Allowed tools (everything else is refused, see the Tools Reference):
  • list_pull_requests, read_pull_request
  • read_file, search_files_and_directories, ripgrep_search
  • get_linear_issue
  • get_lineage, get_exposures
  • run_sql_query
  • post_slack_message
Output: set the Slack channel to #pr-reviews (or your team’s channel).
read_pull_request means you do not have to collect and paste the changed-file list into the task: the agent resolves the PR and reads the diff itself. get_lineage and get_exposures (dbt Discovery tools) ground the IMPACT section in the real dependency graph, including dashboards, instead of a text search.
2

Deploy the agent

Select Deploy and choose where the agent lives: Just here saves it to the workspace and makes it live immediately, Open a pull request commits it to your repo as .dinoai/agents/pr-reviewer-e2e.yml so it is governed as code. Both appear in the Bolt agent picker. See Creating Agents in the App.
3

Run it on every PR with Bolt

Add a Run Paradime DinoAI Agent command to a Bolt schedule and trigger it on pull request merge, so the reviewer runs on every PR. The command runs natively with no API keys to configure. See Run an agent with Bolt for the full walkthrough.Pick pr-reviewer-e2e and set the Task:
4

Read the verdict

After the agent runs, open #pr-reviews. The agent posts a single structured message with a clear verdict. It always cites the file and line number for every issue it raises, and it never returns APPROVE if either TESTS or DOCS is FAIL.
DinoAI PR reviewer posting a structured SCOPE / CODE / TESTS / DOCS / IMPACT / VERDICT review in the Slack channel
On a PR with full coverage that matches its Linear ticket, the review posts to #pr-reviews with an APPROVE verdict. On a PR missing tests or docs, TESTS or DOCS reads FAIL and the verdict is REQUEST_CHANGES or REJECT, with each issue cited by file and line. If the PR has no Linear link, SCOPE notes it and the rest of the review still runs.

How it works

The agent resolves the target PR (from the trigger message, or the most recently updated open PR), reads its full diff with read_pull_request, then works through the six review dimensions. For IMPACT it walks the dependency graph with get_lineage from each changed model and checks get_exposures for dashboards and apps that consume them, so “this change breaks the revenue dashboard” is a graph fact, not a guess.

Delegate test-writing (optional)

Instead of just flagging missing tests in the verdict, let the reviewer fix them: add test-maintainer to this agent’s Squad in the builder and invoke_agent to its allowed tools. The reviewer then delegates to the dbt™ test maintainer, which writes and validates the tests and reports back via notify_parent_session before the final verdict is composed.

Block CI on a REJECT verdict (optional)

Bolt’s on-merge trigger reviews PRs after they merge. If you want the review to gate the merge instead, trigger the agent from your CI with the API and fail the job on a REJECT:
This needs API credentials with DinoAI agent API capabilities stored as CI secrets. See the API and SDK reference.

Next steps

Run an agent with Bolt

Trigger this agent on a schedule, on merge, or in Turbo CI.

dbt™ test maintainer

Delegate test-writing to this sub-agent from the reviewer.

dbt™ documentation backfiller

Backfill missing descriptions on the same PR.

Programmable Agents reference

The agent schema, tools, and API.