Skip to content
dobbyBeta

For agents: an index of these docs is at /docs/llms.txt, and this page as markdown is at /docs/safety-categories.md.

Safety categories

The nine safety categories, the action each preset gives them, and what always waits for you.

The preset is safety.preset in your config. safety.rules overrides single categories, and safety.everyMerge sets the floor for every merge. What waits for you explains how they fit together. To see how one ticket would be treated:

Terminal window
dobby safety explain "Add Stripe refunds to the orders page"

Actions

Action What happens
auto Normal review, then merge.
review A strict review on the strongest model, then merge.
owner Dobby opens a draft pull request and reviews it, and you merge it with dobby merge <id> or the Merge button on the dashboard.
never Agents do not take the ticket.

Presets

Category Strict Balanced Autonomous
migrations.schema owner auto auto
migrations.data owner owner review
payments owner review review
auth owner review review
secrets owner review review
deploys owner auto auto
config owner auto auto
client-sites owner owner review
releases owner owner review
Every other merge owner auto auto

The last row is the floor that safety.everyMerge replaces. A change in several categories gets the strictest action among them.

Categories

Category Covers
migrations.schema A migration file that only changes the shape of the database, such as a new table, column or index.
migrations.data A migration file that changes existing data: it updates, inserts or deletes rows, drops or renames a table or column, or changes a column type. A migration whose SQL Dobby cannot read counts here too.
payments Code that handles real money: charging, billing, refunds, payouts, subscriptions or a payment provider.
auth How people sign in: sessions, passwords, tokens, permissions or access control.
secrets Secrets, tokens, API keys, passwords or credentials, or a change to a .env or secrets file.
deploys Deploys and CI: a ticket about a deploy, production or a pipeline, or a change to wrangler.toml, .github/workflows/ or a Dockerfile.
config Config files such as wrangler.toml, eas.json, app.json or *.config.*, or a ticket about config.
client-sites A paying client's own site or data, in a project you list under clientProjects.
releases A release to users: an app store or Play Console release, a version publish, or a change to eas.json or fastlane/.

Migrations are sorted by the SQL in the changed files. Payments, auth, client sites and releases go through a word and path check first, then the classifier set in safety.classifier decides.

What always waits

These wait for you whatever the preset and the rules say:

  • Running a migration that changes existing data. The deploy that would run it waits for its own tap.
  • A ticket an agent filed from outside input, such as an email or a Claude MCP call.
  • The first merge on a fresh install. dobby init pauses merges until you run dobby resume merges.