doctor — modular diagnostic skill

SkillCommunication

Lets your agent diagnose why flows, bridges, installs, or builds are broken in the pi-agent-dashboard.

Use doctor — modular diagnostic skill in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add doctor — modular diagnostic skill and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the doctor skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

doctor — modular diagnostic skillStart free
About this skill

Diagnose why pi-flows, the Anthropic-messages bridge, model resolution, a pi install, a peer, a plugin/bridge, or a build/reload is broken in the pi-agent-dashboard. Derives every fact live (works with the server down). Use on "flow won''t show", "bridge waiting_peers", "pi version mismatch", "which

What this skill tells your AI

The instructions your AI receives, as published by blackbelttechnology/pi-agent-dashboard in packages/extension/.pi/skills/doctor/SKILL.md and read by ahel’s review.

This SKILL.md is a thin router. It owns NO capability knowledge. Every diagnostic fact lives in a self-contained capability module under modules/, read on demand. The router derives its symptom map and sweep order from each module's front-matter (symptoms:, depends-on:) — so adding a module MD auto-registers it with no edit here.

Modules

Each modules/<id>.md follows a uniform 5-part contract: SCOPE · KNOWLEDGE · CHECKS · FIX ROUTING · DERIVES-FROM (+ a <id>.knowledge.hash sidecar).

idscope
env-nodeNode runtime + OS/platform baseline
pi-resolutionevery pi install location, divergence + floor
peerspi-flows + anthropic peer, tier-1/tier-2, name-skew
plugins-bridgesbridge registration (packages[] vs dashboardPluginBridges) + activation
build-reloadthree-component rebuild/reload gaps
install-topologynpm-global / Electron / Docker / dev + topology fixes
model-resolutionmodel:resolve handler, roles/preset, @role resolvability
apple-toolsiMCP (Apple PIM) provisioning state for the apple-tools plugin
oauth-redirect-basewhich OAuth redirect base won + its tier (reverse-proxy redirect_uri_mismatch)

How to route

The router logic lives in _lib/router.ts (load modules, build the symptom map, topo-sort the sweep DAG, plan short-circuit). Use it — do not hand-keep a catalog.

  1. Symptom phrase (e.g. "flow won't show") → routeSymptom(modules, phrase) returns exactly one module id. Read that module MD and run its CHECKS.
  2. Named capability (e.g. "check peers") → read modules/peers.md directly.
  3. Full sweep (no hint, or "full") → buildSweepOrder(modules) orders modules env → pi → peers → plugins → build → runtime. Run in order; when a module fails, planSweep(modules, failed) marks every dependent module suppressed so a lower-layer failure (missing pi) is reported as the ROOT CAUSE and NOT re-reported as a broken bridge.

Fact provenance (server up or down)

Checks are shell-first: they read files + createRequire and work with the dashboard server DOWN. When the server is reachable, _lib/server-tier.ts (fetchHealth, fetchPiCoreVersions) enriches the report as an ADDITIVE tier. Every reported fact is labelled file-derived or server-enriched (_lib/provenance.ts) so a partial (server-down) run is never mistaken for a clean bill.

Two-tier self-update

  • Tier 1 (derive-on-run) — versions, peer names, resolved paths, the recommended set are read from live sources every run; they can never rot.
  • Tier 2 (knowledge-hash) — each module stores <id>.knowledge.hash over the semantic tokens of its derives-from sources (_lib/knowledge-hash.ts). On run, checkDrift(id, liveTokens, hashPath) compares live vs stored; a mismatch flags that module's authored prose as possibly stale.

--regenerate <module>

When a module's hash drifts:

  1. Re-derive the module's tables from its live derives-from sources.
  2. Propose edits to the module's authored prose for confirmation — never overwrite silently.
  3. After confirmation, writeStoredHash(hashPath, liveHash) to clear the drift.

Regeneration is always confirmed. The AGENTS.md Documentation Update Protocol maps each source-of-truth change to the single module to regenerate (peer rename → peers; pi floor bump → pi-resolution; new install platform → install-topology; new bridge slot → plugins-bridges).

Report format

For each module report: PASS / FAIL, the resolved path(s) + version(s) per tier, the provenance of each fact, and — on FAIL — the matching FIX ROUTING remediation for the detected install topology. Never report a version without the resolved path it came from.

Signals

GitHub stars
307
Forks
46
Last commit
Sep 2026
Advanced
Item type
skill
Key
doctor-blackbelttechnology
Source
github.com/blackbelttechnology/pi-agent-dashboard