Skip to content
dobbyBeta

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

Doctor checks

Every row dobby doctor prints, when it fails and the fix, plus the repo access rows dobby init reads.

dobby doctor exits with code 1 if any required check fails. dobby doctor --json prints every row as data. Rows marked optional never fail the exit code.

Setup checks

Row Fails when Fix
Node Node is older than 24. The dobby command also says so before it starts. brew install node, or fnm install 24 (no admin rights needed, Linux too).
shell Neither zsh nor bash is installed. Project commands then run without a login shell. Optional. Install zsh or bash.
git git is missing. xcode-select --install on macOS, sudo apt install git or sudo dnf install git on Linux.
git identity git has no user.email, so builders cannot commit. git config --global user.email "<your GitHub email>"
GitHub CLI gh is missing. brew install gh on macOS, the steps at cli.github.com on Linux.
GitHub sign-in gh is not signed in. When GitHub cannot be reached, the row says so instead. gh auth login --web, or check your connection.
GitHub token scopes The token lacks workflow (pushes that touch workflow files) or project (the board). Optional. Not shown for fine-grained tokens. gh auth refresh -s workflow,project
Claude Code claude is missing. npm install -g @anthropic-ai/claude-code
Claude sign-in Claude Code is not signed in (plan mode), or too old to have claude auth status. Run claude, then /login, or claude update.
API key API key mode is set but there is no DOBBY_API_KEY, or the key fails a small real call. With no network the row stays green and says it was not checked. Add the key to ~/.config/dobby/secrets.env. See Cap spend.
config There is no config file yet. dobby init
config warnings A config key is unknown or has a bad value. The row names it and suggests the key you probably meant. dobby config path, then edit that file.
graphify Not installed. Optional: builders and reviews get code maps from it. uv tool install graphifyy, or pipx install graphifyy.
disk Under 15 GB free where Dobby keeps its data. Optional. Free up space.
Dobby Never fails. Shows the installed version. npm i -g dobby-ai@latest && dobby jobs install
time zone timezone in the config is not this machine's zone. Optional. dobby config set timezone <zone>
data folder The data folder is on NFS or SMB. SQLite needs a local disk. Optional. Set DOBBY_DIR to a local folder, then dobby jobs install.
Discord No bot token. Optional. dobby init and choose Discord, or add DISCORD_BOT_TOKEN to the secrets file and run dobby discord setup.
Jev No key. Optional: a cheaper way to pick the review model. Add JEV_API_KEY to the secrets file.
sandbox runner The program that sandboxes builders was not found next to Dobby. Optional: builders then get only the credential scrub. npm i -g dobby-ai
sandbox On Linux, bubblewrap or socat is missing, or AppArmor blocks bubblewrap. On native Windows there is no sandbox. Optional: builders then get only the credential scrub. The row prints the install or sysctl command. See Install on Linux or WSL2.
background jobs A job is not loaded, its last run exited with an error, a job from an older install is still loaded, or the jobs run another copy of Dobby (a temporary npx copy is named in the row). dobby jobs install

Pipeline checks

After the setup checks, dobby doctor prints one row per pipeline check. With no projects yet, the rows say "no projects yet".

Row Fails when Fix
stuck tickets A ticket has been running for over 2 hours. dobby show <id>, then dobby retry <id> or dobby cancel <id>.
origin/base A project's origin/<base> branch does not resolve in its clone. git fetch in the repo, or fix base in its project file.
claude session Claude Code is signed out or did not answer in 60 seconds. Run claude, then /login.
tick lock The tick lock is held by a process that no longer exists, or has had no heartbeat for 90 minutes. A live tick shows as ok with its age. Nothing: the next tick, dobby run or dobby retry clears a stale lock and puts the cut-off ticket back in the queue.
old pauses A pause is over 7 days old. dobby pause status, then dobby resume <target>.
review scan No review scan ran for 2 hours. It runs every 15 minutes inside the listener job, or the tick job when Discord is off. dobby jobs status.
stuck A running or waiting ticket has not moved for over 24 hours. dobby show <id>.
reviews Reviews have been skipped for over 2 hours because of the budget. Wait for the window, or raise reviewCap.
cap Ready tickets have been held by the budget cap for over 3 hours. Wait for the reset, or raise pacing.weekCap.

Repo access, read by dobby init

For each repo you pick, setup reads what Dobby's pull requests need. It only reads, and changes nothing on GitHub.

Row Meaning Fix
GitHub access This account cannot push to the repo (read-only, or the wrong account is active). Setup leaves the repo out. An SSO block shows the page that authorizes the token. gh auth switch, or ask for write access.
Review rules The base branch needs an approving or code-owner review. GitHub does not let you approve your own pull request, so Dobby's pull requests will wait for a second reviewer. Add a reviewer who is not you, or loosen the rule.
Merge method The repo has turned off the merge method Dobby uses. Setup sets github.mergeMethod to one that is on, when you have not set it yourself. Set github.mergeMethod.
Signed commits Signed commits are required and github.mergeMethod is rebase. GitHub does not sign rebase merges. Use squash or merge.
Merge queue Merges go through GitHub's merge queue. Dobby waits up to 30 minutes for the pull request to show as merged. Nothing to fix.

Before each build, Dobby also checks the gh sign-in, the remote and push access, and blocks the ticket with the reason instead of building and failing at the push. Set "shipPreflight": false to turn this off.