Boatman Ecosystem documentation is live!
Boatman Desktop
Routines

Routines

The Desktop Routines tab runs saved, parameterized investigations against the active project. Routine runs are recorded in the project runtime store and can also write Markdown reports under .boatman/routines. Each execution also creates a new chat session, so you can continue from the completed routine, ask follow-up questions, or hand the agent the next investigation step with the same project and routine context.

Boatman loads the routine list from the active project every time the project changes. Built-in routines are always available, and project routines can be added in either:

<project>/.boatman/routines.json
<project>/.boatman/routines/*.json

Project routines may define a full routine or extends a built-in routine and set project-specific defaults:

{
  "routines": [
    {
      "id": "daily-employer-gql",
      "extends": "datadog-gql-slow-queries",
      "name": "Daily Employer GraphQL",
      "schedule": "0 8 * * *",
      "defaults": {
        "graph_area": "employer",
        "service": "employer-graphql",
        "top_n": "10"
      },
      "models": {
        "plan": "claude-opus-4-6",
        "implementation": "claude-sonnet-4-5",
        "skills": "claude-sonnet-4-5"
      }
    }
  ]
}

The Routines tab renders inputs from the selected routine's parameters, so a project can add new routines without changing the desktop frontend.

Model Routing

Routines may define a models profile with phase-specific overrides:

  • plan: model for /plan and planning phases
  • implementation: model for code changes and refactor work
  • skills: model for review skills and other skill execution

Any empty field falls back to the model selected in the Routines tab. The Datadog remediation loop passes the resolved profile into each child BoatmanMode run.

Datadog GraphQL Slow Queries

The first built-in routine is datadog-gql-slow-queries.

It connects the model to Datadog MCP, investigates the slowest GraphQL operations for a graph area, and returns a Markdown report with:

  • executive summary
  • Datadog query assumptions
  • top slow operations table
  • clustered likely causes
  • remediation plan and validation checks
  • a machine-readable boatman_remediation_candidates block
  • automatic remediation summary with branch and draft PR links when Boatman finds credible fixes
  • follow-up questions or missing telemetry

When telemetry points to a high-confidence code or schema remediation, Desktop does the routing automatically after discovery. It selects up to max_remediations candidates, starts a BoatmanMode child run for each one, creates a fresh worktree from the configured base branch, runs planning, implementation, targeted validation, peer-review, lydia-code-review, feedback refactors, and leaves the resulting PR as a draft. If the evidence is too weak, it stops after the investigation report and explains what is missing.

Setup

  1. Open a project.
  2. Open the Routines tab.
  3. Click Check. If Datadog is not authenticated, click Authenticate.
  4. Complete the Datadog MCP auth flow in the terminal window opened by Boatman.
  5. Enter graph area, top N, lookback, environment, optional service, and maximum remediations.
  6. Click Run Routine.

Desktop auth keeps Datadog OAuth credentials in Claude Code's MCP auth store. Boatman first reuses an existing healthy Datadog MCP server, including boatman-datadog-mcp, datadog-mcp, or plugin:datadog:datadog-mcp. If the Claude plugin is missing, unauthenticated, or points at Datadog's legacy /api/unstable/mcp-server/mcp endpoint, Authenticate creates boatman-datadog-mcp against the current Datadog MCP endpoint:

https://mcp.datadoghq.com/v1/mcp?toolsets=core,llmobs,alerting,apm,onboarding

If you use a non-US1 Datadog site, set Datadog Site in Settings or DD_SITE before authenticating so Boatman creates the regional MCP URL. Boatman can still fall back to API-key MCP configuration from Datadog API Key, Datadog App Key, and optional Datadog Site.

Output

Routine reports are written to:

<project>/.boatman/routines/datadog-gql-slow-queries/<run-id>.md

The same run is also visible in the Runtime tab because routine executions use the provider-neutral runtime recorder. The run ID and routine session ID match, so the Runtime tab and the chat session point at the same execution.