Troubleshooting
Start with doctor:
pnpm exec ruhroh doctor \
--scenario-dir ruhroh/scenarios \
--suite-dir ruhroh/suites \
--suite ruhroh-smoke \
--adapter custom-shellAdd --json for CI or setup scripts.
first-run Is Blocked
first-run is a setup gate, not a benchmark run. Use it to find the next missing piece in the credential-free fixture path:
pnpm exec ruhroh first-run
pnpm exec ruhroh first-run --jsonIf JSON output has dryRunReady: true but ready: false, the local scaffold, fixture agent, and fixture reviewer are ready for command preview, but the full Harbor-backed loop is still blocked. This is a useful setup milestone, not a completed run. Use the dry-run preview while installing Harbor:
pnpm exec ruhroh first-run --allow-dry-run --json
pnpm exec ruhroh run --scenario-dir ruhroh/scenarios --scenario simple-newsletter --adapter custom-shell --dry-runThe first loop is complete only after a real run preserves a ruhroh-loop-result.json evidence file.
workflow Stays On The First Fixture Stage
workflow advances from the first stage only when it can find preserved run results. By default it checks results/, ruhroh/results/, and .generated/ruhroh/; pass a path explicitly when your Harbor outputs live elsewhere:
pnpm exec ruhroh workflow ./path/to/results --html ruhroh-workflow.html
pnpm exec ruhroh validate-artifacts ./path/to/resultsIf no result is found, rerun the fixture without --dry-run. If a result is found but validation fails, fix evidence preservation before using compare or publish-check; a claim cannot be independently inspected without the result, manifest, reviewer output, journey, and workspace evidence.
Harbor Is Missing
doctor reports Harbor availability separately. You can still validate tasks, scaffold agent connectors, and generate task directories without starting a run:
pnpm exec ruhroh validate --scenario-dir ruhroh/scenarios
pnpm exec ruhroh generate --scenario simple-newsletterUse --dry-run to inspect the Harbor command before installing or invoking Harbor. Dry-run output is a preview only: it does not write Harbor task directories, write a run plan, start Harbor, or call an agent. Use ruhroh generate when you want to materialize the generated task files without starting Harbor. --generate-only remains available as a legacy alias.
Agent Completion Is Not Detected
For custom-shell, the agent command must either print the configured final JSON line or write the result file indicated by RUHROH_RESULT_PATH. Confirm the wrapper exits non-zero for run failures and does not claim success before the workspace outcome is complete.
pnpm exec ruhroh new-adapter local-agent
pnpm exec ruhroh doctor --scenario-dir ruhroh/scenarios --adapter ./ruhroh/adapters/local-agent/run.shAgent Metadata Is Too Thin
doctor reports an adapter-metadata warning when a command wrapper cannot be inspected, does not write RUHROH_RESULT_PATH, or omits comparison metadata. Before repeated live-agent runs, update the wrapper result file to include adapterVersion, model, and evidence paths such as a transcript. Add usage when cost or token data is available.
If the wrapper is not a readable file path, move the command into a script and pass that script to --adapter; that gives Ruhroh and reviewers a stable agent command to inspect.
Reviewer JSON Is Malformed
The reviewer command must emit or write ruhroh_eval_result_v1. Validate the preserved run evidence after a failed run:
pnpm exec ruhroh validate-artifacts ./path/to/run-artifacts --jsonLook for the eval result path, schema URL, status, evidence refs, and criteria results.
Claim Is Not Publishable
Run the publication workflow:
pnpm exec ruhroh publish-check ./path/to/results \
--suite-dir ruhroh/suites \
--suite ruhroh-smoke \
--run-plan .generated/ruhroh/ruhroh-run-plan.json \
--verify-sourcesExit code 2 means the result was readable but blocked. The blocker list tells you whether to collect more runs, select the right suite, fix run-plan coverage, repair evidence preservation, or improve reviewer evidence.
Evidence Files Are Missing
Check the individual run directory first:
pnpm exec ruhroh report ./path/to/ruhroh-loop-result.json
pnpm exec ruhroh validate-artifacts ./path/to/run-artifactsMissing journey, manifest, review input, workspace summary, or review result files reduce auditability and can block publication.
Shell Command Quoting Looks Wrong
Command-backed agent and reviewer commands run without a shell by default. If a command string contains pipes, redirects, variable expansion, or other shell operators, either wrap it in a script file or explicitly opt into shell execution only for trusted local commands.

