doctor — modular diagnostic skill
SkillCommunicationLets 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.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
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).
| id | scope |
|---|---|
env-node | Node runtime + OS/platform baseline |
pi-resolution | every pi install location, divergence + floor |
peers | pi-flows + anthropic peer, tier-1/tier-2, name-skew |
plugins-bridges | bridge registration (packages[] vs dashboardPluginBridges) + activation |
build-reload | three-component rebuild/reload gaps |
install-topology | npm-global / Electron / Docker / dev + topology fixes |
model-resolution | model:resolve handler, roles/preset, @role resolvability |
apple-tools | iMCP (Apple PIM) provisioning state for the apple-tools plugin |
oauth-redirect-base | which 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.
- Symptom phrase (e.g. "flow won't show") →
routeSymptom(modules, phrase)returns exactly one module id. Read that module MD and run its CHECKS. - Named capability (e.g. "check peers") → read
modules/peers.mddirectly. - 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 modulesuppressedso 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.hashover the semantic tokens of itsderives-fromsources (_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:
- Re-derive the module's tables from its live
derives-fromsources. - Propose edits to the module's authored prose for confirmation — never overwrite silently.
- 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
github.com/blackbelttechnology/pi-agent-dashboard
More in Communication
Skill · anthropics
More in Communicationerror-handling
Skill · affaan-m
More in Communicationwait-what
Skill · mattpocock
More in Communicationemails
Skill · coreyhaines31
More in Communicationazure-messaging
Skill · microsoft
More in Communicationinvestor-outreach
Skill · affaan-m
More in Communication