Skip to main content
The MongoDB schema drift triager is a Jira-driven DinoAI agent: it picks up tickets labelled agent-ready, works out the dbt™ change each ticket is asking for, verifies the change against live data before touching the repo, and ships it as a PR. It was built for planned MongoDB schema evolution (the drift is announced in a ticket before or as it lands), but the pattern is generic: column renames, new models, source or test additions, any repo-local dbt™ edit a ticket can scope. It is read-only on Jira, so the PR description is the link back to the ticket.
Prerequisites
  • Jira connected so the agent can call list_jira_issues and get_jira_issue (read-only: it never comments or transitions tickets).
  • A MongoDB connection so the agent can verify drift against the source collection.
  • A warehouse connection (the agent confirms landed columns and types via run_sql_query).
  • Slack connected (the agent posts a note when the queue is empty or a discrepancy blocks a ticket).
  • Your repository connected so the agent can branch, commit, and open PRs.
  • Tickets to automate must carry the label agent-ready and not be done.
Estimated time: 15 minutes.

Steps

1

Create the agent

In the Agent app, open Agents, select New agent, and choose Start from scratch. Fill in the builder fields below, leave Model on Auto. See Build an agent in the UI for a tour of the builder.Name: mongodb-schema-drift-triagerRole:
Goal:
Backstory:
Allowed tools (everything else is refused, see the Tools Reference):
  • get_jira_issue, list_jira_issues
  • list_mongodb_collections, mongodb_collection_schema, mongodb_count, mongodb_aggregate, mongodb_find
  • run_sql_query
  • read_file, write_file, replace_in_file, search_files_and_directories, ripgrep_search
  • run_terminal_command
  • post_slack_message
Output: set the Slack channel to #dinoai-demo (or your team’s channel, updating the channel in the Goal to match).
The Jira allowlist is deliberately read-only: no add_jira_comment or update_jira_issue. This agent never writes to the ticket, so it can safely run against a Jira project the data team does not own; all its output lands in the PR and Slack. If you want the full ticket lifecycle (status transitions and comments), use the Jira change request agent pattern instead.
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/mongodb-schema-drift-triager.yml so it is governed as code. Both appear in the Bolt agent picker. See Creating Agents in the App.
3

Run it with Bolt

On the Agents page, hover the agent card and select Schedule. This opens a new Bolt schedule with the Run Paradime DinoAI Agent command already added and the agent pre-selected. The command runs natively, so no API keys or environment variables are needed. Set the Task:
Because the agent resolves one ticket per invocation, pick a cadence that matches your ticket volume: 0 9 * * 1-5 (weekdays at 9 AM) drains one ticket per day, or add the same command several times to the schedule to process several tickets per run. To point a run at a specific ticket, put the key in the task: Resolve DATA-123. See Run an agent with Bolt for the full walkthrough.
After a run, the oldest agent-ready ticket has one PR on an agent/<ticket-key>-<slug> branch whose description links the ticket, maps each acceptance criterion to the diff, and embeds the live-data evidence (counts, sample documents, schema diff). When the queue is empty the agent posts a short Slack note and exits cleanly. When the ticket describes a change the live data does not confirm, no PR is opened and the discrepancy lands in Slack instead.

How it works

The agent separates intent from truth: the Jira ticket says what the team agreed to change, but before editing anything it checks that the change actually landed, sampling the MongoDB collection for drift tickets or querying the warehouse for source changes. A ticket that describes drift that has not happened yet produces a Slack discrepancy note, not a broken model. Because Jira access is read-only, the PR description carries everything a reviewer needs: the ticket link, the acceptance-criteria mapping, and the evidence.
Compare the two MongoDB drift agents: the schema drift healer is reactive (a pipeline already failed; self-healing hands it the error log), while this triager is proactive (the drift is announced in a ticket and handled before or as it breaks anything). Teams running both cover planned and unplanned drift with the same additive-patching conventions.

Next steps

MongoDB schema drift healer

The reactive variant, triggered by self-healing on failure.

Jira change request agent

The Jira-writing variant with status transitions and comments.

Run an agent with Bolt

Trigger agents from a Bolt schedule.

MongoDB tools reference

The read-only MongoDB tools this agent uses.