.agents/skills/oat-doctor/SKILL.md
Use when you need to diagnose your OAT setup, check for outdated skills, identify misconfigurations, or get a summary of installed tools and config. Runs health checks and recommends corrective actions.
npx skillsauth add tkstang/open-agent-toolkit oat-doctorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Diagnose your OAT setup at both project and user levels. Checks for skill updates, identifies misconfigurations, summarizes what's installed, and recommends corrective actions.
oat in PATH.oat init has been run (project or user level).OAT MODE: Doctor (Diagnostic)
Purpose: Inspect OAT setup and report findings with actionable fix commands. Never modify files or configuration.
BLOCKED Activities:
oat init, oat sync, oat tools update, or any mutating commands.ALLOWED Activities:
oat CLI commands with --json flag for read-only data gathering.~/.oat/docs/ for config key explanations.Self-Correction Protocol: If you catch yourself:
Recovery:
Print a phase banner once at start:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ OAT ▸ DOCTOR ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[1/4] Gathering installed tools…[2/4] Checking for outdated skills…[3/4] Inspecting configuration…[4/4] Reporting findings…--summary)[1/6] Gathering installed tools…[2/6] Checking for outdated skills…[3/6] Inspecting configuration…[4/6] Discovering available packs…[5/6] Checking sync status…[6/6] Building dashboard…Read $ARGUMENTS:
$ARGUMENTS contains --summary → summary modeTOOLS_JSON=$(oat tools list --json --scope all 2>/dev/null || echo '{"tools":[]}')
Parse the JSON output. Each tool has: name, type (skill/agent), scope (project/user), version, bundledVersion, pack (core/docs/ideas/workflows/utility/project-management/research/custom), status (current/outdated/newer/not-bundled).
OUTDATED_JSON=$(oat tools outdated --json --scope all 2>/dev/null || echo '{"tools":[]}')
Parse the JSON output. Each entry has name, version (installed), bundledVersion (available), pack, scope.
CONFIG_JSON=$(oat config list --json 2>/dev/null || echo '{"configs":[]}')
Check for issues:
activeProject pointer: If activeProject is set, verify the directory exists. If not, warn.activeIdea pointer: If activeIdea is set, verify the directory exists. If not, warn.projects.root: If not configured and no default exists, warn.For config key explanations, read from the bundled docs at ~/.oat/docs/. Check reference/file-locations.md and guide/cli-reference.md for authoritative descriptions.
If in check mode, output a terse, brew doctor-style checklist.
Format:
Your OAT setup has {N} warning(s).
⚠ {N} outdated skill(s)
Run: oat tools update --scope {scope}
⚠ Stale activeProject pointer: {path} does not exist
Run: oat config set activeProject ""
⚠ Stale activeIdea pointer: {path} does not exist
Run: oat config set activeIdea ""
⚠ {pack} pack not installed at {scope} scope
Run: oat init tools
If no warnings:
Your OAT setup looks good. No issues found.
Stop here for check mode.
For summary mode, compare installed skills against the full manifest to identify available-but-uninstalled packs and skills.
Bundled skill manifest (source of truth):
Core pack skills:
Workflow pack skills:
Ideas pack skills:
Docs pack skills:
Utility pack skills:
Project management pack skills:
Research pack skills:
For each pack, determine:
If in a project directory (.oat/ exists):
SYNC_STATUS=$(oat sync --dry-run --json --scope project 2>/dev/null || echo '{}')
Report whether provider views are in sync or have pending changes.
Output a full dashboard:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OAT ▸ DOCTOR SUMMARY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## Installed Packs
| Pack | Scope | Skills | Status |
| --------- | ------- | ------ | -------- |
| core | user | 2/2 | current |
| docs | project | 4/4 | current |
| workflows | project | 26/26 | current |
| ideas | user | 4/4 | current |
| project-management | project | 3/3 | current |
| research | project | 5/5 | current |
| utility | project | 5/5 | outdated |
## Outdated Skills
| Skill | Installed | Available | Scope |
| ----------------------- | --------- | --------- | ------- |
| oat-project-implement | 1.1.0 | 1.2.0 | project |
## Available But Not Installed
- **docs** pack: oat-docs-analyze, oat-docs-apply, oat-agent-instructions-analyze, oat-agent-instructions-apply (4 skills available)
→ Run: oat tools install docs --scope {scope}
- **project-management** pack: oat-pjm-add-backlog-item, oat-pjm-update-repo-reference, oat-pjm-review-backlog (3 skills available)
→ Run: oat tools install project-management --scope {scope}
- **research** pack: analyze, compare, deep-research, skeptic, synthesize (5 skills available)
→ Run: oat tools install research --scope {scope}
## Configuration
| Key | Value | Source |
| -------------------- | ------------------------- | ------- |
| activeProject | .oat/projects/shared/foo | local |
| activeIdea | (not set) | - |
| projects.root | .oat/projects/shared | default |
| documentation.root | (not set) | - |
| worktrees.root | (not set) | - |
### Config Key Explanations
Read config key descriptions from `~/.oat/docs/reference/file-locations.md` and `~/.oat/docs/guide/cli-reference.md`. If docs are not available, use these fallback descriptions:
- **activeProject:** Path to the currently active OAT project. Set automatically by project skills.
- **activeIdea:** Path to the currently active idea. Set by oat-idea-new.
- **lastPausedProject:** Path to the last paused project for quick resume.
- **projects.root:** Base directory for all OAT projects. Default: `.oat/projects/shared`.
- **documentation.root:** Root directory for documentation. Used by docs skills.
- **documentation.config:** Path to docs config file (e.g., mkdocs.yml).
- **documentation.tooling:** Docs tooling in use (e.g., mkdocs, fumadocs).
- **documentation.requireForProjectCompletion:** Whether docs update is required before project completion.
- **autoReviewAtCheckpoints:** When true, completing a plan phase checkpoint auto-triggers a subagent code review. Default false. Can be overridden per-project via `oat_auto_review_at_checkpoints` in plan.md frontmatter.
- **worktrees.root:** Base directory for git worktrees. Used by worktree-bootstrap skills.
## Sync Status
{In sync / N pending changes across M providers}
## Warnings
{Same warnings as check mode, if any}
## Recommendations
- Run `oat tools update` to update outdated skills.
- Run `oat init tools` to install newly available packs.
- Run `oat sync --scope project` to sync provider views.
Adapt the dashboard to show only sections with relevant data. Omit empty sections.
documentation
Use when OAT implementation changes and repository reference docs must be synchronized. Updates .oat/repo/reference to match current behavior.
business
Merge multiple analysis artifacts into a single coherent report with provenance tracking. Reads existing artifacts from /deep-research, /analyze, and /compare.
testing
Use when the user questions or suspects an agent claim is wrong. Adversarially gathers evidence to verify or refute the claim using the best sources available in the current environment.
tools
Use when prioritizing backlog work or evaluating a roadmap. Produces value-effort ratings, dependency mapping, and execution recommendations.