User guide

AI assistance

Explain a change, draft release notes and get fixes for deployment errors with Claude.

Diffbridge can use Claude to help review and ship releases:

  • Explain: on a component's diff in a comparison, a plain-language summary of what the change does when deployed, and its risks (data loss, permissions, broken references, test coverage).
  • Release notes: on a deployment, a draft of release notes for business users and admins, grouped by area, with linked work items and a For admins section.
  • Suggest fixes: on a failed deployment, the likely cause and a concrete fix for each error, using the failing components' source.

Answers open in a panel where you can copy them or try again. They're written by AI: check them before relying on them.

AI chat

AI chat (in the sidebar) is a conversation with an assistant that can build new functionality in your orgs: Apex classes and triggers, Lightning web components, flows, objects and fields, permission sets and more. It works in steps you can watch:

  1. Look: it lists your connected orgs and reads existing components, so its code fits yours.
  2. Draft: it writes the files into a draft kept with the conversation (shown on the right). Nothing is in an org yet.
  3. Check: it runs Diffbridge's code analysis on the draft (and PMD, when your server has it).
  4. Validate: it runs a check-only validation against an org of your choice, with the same test planning as any validation, and reads the errors to fix them. Nothing is saved in the org.
  5. Propose: it proposes a deployment. A card shows the components, the org and the tests, and nothing is deployed until you press Confirm. The assistant cannot confirm for you.

Deployments from chat are ordinary Diffbridge deployments: they appear in History and the queue, follow the org's deploy role, approval requirement and queue rules, can be rolled back, and are in the audit log. The assistant only drafts additions and changes; it never deletes anything from an org.

Production has extra protection: you can only confirm after a successful validation of exactly the same files (ask the assistant to validate against that org), and you must type the org's name.

Members with the viewer role can chat and draft but not validate or deploy. Members limited to some orgs only reach those orgs from chat. The assistant acts with your permissions, not more.

Your own provider key

Each member connects their own AI provider account under AI chat → AI provider: pick the provider and model and paste an API key (Anthropic to start; the chat is built so more providers can be added). Usage is billed by the provider to you. Diffbridge checks the key when you save it, stores it encrypted like org tokens, and never shows it again (only its last four characters). Remove it at any time. The server operator's ANTHROPIC_API_KEY is not used for chat.

What the assistant sees

The assistant is sent what you type and the metadata it reads from your orgs while answering (code, names, flows). It is never given record data, tokens or other members' conversations. Text that comes from an org is treated as data, not instructions, so a comment in an Apex class can't make the assistant deploy anything: only your Confirm click does. Conversations are private to you and are kept in Diffbridge until you delete them in the chat list.

Turning it on

AI assistance is off until an owner turns it on in Settings → Security → AI assistance, because the metadata involved is sent to Anthropic when you use it. Record data from backups, archives or data seeding is never sent. Only what you ask about is sent: the component you're explaining, the deployment's component list and notes, or the errors and the failing components' source.

The one-click Explain, Release notes and Suggest fixes buttons also need the server operator to set ANTHROPIC_API_KEY (and optionally AI_MODEL, which defaults to Claude Opus 5.5); without it those buttons don't appear. AI chat doesn't need it: it uses each member's own key.

Privacy and limits

  • Each use is in the audit log with the number of tokens (and, for chat, the number of tool calls), never the content: not what you typed, not the answer, not the code, not the key. Confirmed deployments are logged as ai.deploy.confirm.
  • Very large components are cut to fit; the answer then says some input was cut.
  • Requests are limited to 30 a minute per user.
  • If the model declines a request, you see a message saying so instead of an answer.
Something unclear or missing on this page?