About basecamp-doctor
A diagnostic skill for the Basecamp CLI and its agent integrations. It runs structured checks, interprets statuses and remediation hints, and directs setup actions while accounting for authentication type.
Key features
- 01Structured diagnostic interpretation
- 02Failure and warning reporting
- 03Breadcrumb next-step handling
- 04Authentication-aware remediation
- 05Agent integration setup guidance
Use cases
- 01Diagnosing a Basecamp CLI setup
- 02Reviewing failed or warned checks
- 03Choosing remediation for an agent profile
- 04Checking agent plugin installation
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ basecamp/ skills --skill basecamp-doctorAfter installing, type/basecamp-doctorin Claude Code to confirm it loaded.
Details
From the project READMEBasecamp Doctor
Run the structured diagnostic:
basecamp doctor --json
Interpret every check by status:
pass: working correctly.warn: usable, but follow-up is recommended.skip: not run because it is unauthenticated or not applicable.fail: broken and needs attention.
Report failures and warnings with their hint fields. Also inspect the top-level breadcrumbs array and preserve its structured cmd next steps, because a breadcrumb can provide a more specific action than a check hint. Use these common remediations when relevant:
-
Basecamp authentication:
basecamp auth login. Guard a replacement login with--expect-identity <id>so a browser signed in as someone else cannot become the profile. A bot or CI profile that must never sign in interactively imports a personal access token instead:op read "op://<vault>/<item>/credential" | basecamp auth login --with-token -P <profile> --account <id> --expect-identity <id>Check
oauth_typebefore suggesting either.basecamp auth status --jsonreports it, andagentmeans the profile is a Basecamp agent: a principal with no person behind it, which authenticates with its OAuth client rather than a sign-in. Both commands above would store a PERSON's credential under that profile and silently replace the agent. Its remediation is its own login, with the client secret piped in:op read "op://<vault>/<item>/credential" | basecamp auth login --with-client-credentials --client-id <id> -P <profile> --account <id>The CLI's ownhinton an agent credential already names this command with the client id filled in — prefer it verbatim over reconstructing one, and follow it rather than choosing for yourself wheneveroauth_typeis absent. -
Agent plugin installation or version:
basecamp setup agents(honorsBASECAMP_SETUP_AGENT) -
Codex plugin specifically:
basecamp setup codex -
Claude Code plugin specifically:
basecamp setup claude -
Grok skill specifically:
basecamp setup grok(skill-only; Grok reads the shared~/.agents/skills/basecampskill)
Every remediation above runs without a terminal. Bare basecamp setup is the
human first-time flow and is not one of them: it opens browser OAuth and
refuses with a usage error in machine-output modes or unless stdin, stdout, and
stderr are all terminals. basecamp setup --customize additionally asks the user to
choose each default. Suggest either to a human at a terminal if useful, but
never run them yourself — use the subcommands above.
Do not read, print, or request credential files. If every check passes, say that Basecamp and its agent integration are ready.