Verify
asgeirtj/system_prompts_leaks
Verify that a code change actually does what it's supposed to by exercising it end-to-end and observing behavior — drive the affected flow, not just tests or typecheck.
Whole-system checkup: verifies every Dex feature honestly (working/off/broken/couldn't-check), self-heals what's provably safe, guides the rest.
$ npx skills add davekilleen/Dex --skill dex-doctor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install davekilleen/Dex dex-doctor --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/dex-doctor .claude/skills/dex-doctor && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dex-doctor" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-doctor into .claude/skills/dex-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-doctor", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-doctorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add davekilleen/Dex --skill dex-doctor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install davekilleen/Dex dex-doctor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/dex-doctor .agents/skills/dex-doctor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dex-doctor" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-doctor into .agents/skills/dex-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-doctor", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add davekilleen/Dex --skill dex-doctor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install davekilleen/Dex dex-doctor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/dex-doctor .cursor/skills/dex-doctor && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dex-doctor" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-doctor into .cursor/skills/dex-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-doctor", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/davekilleen/Dex.git --path .agents/skills/dex-doctor--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add davekilleen/Dex --skill dex-doctor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install davekilleen/Dex dex-doctor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/dex-doctor .gemini/skills/dex-doctor && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dex-doctor" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-doctor into .gemini/skills/dex-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-doctor", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install davekilleen/Dex dex-doctorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add davekilleen/Dex --skill dex-doctor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/dex-doctor .github/skills/dex-doctor && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dex-doctor" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-doctor into .github/skills/dex-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-doctor", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add davekilleen/Dex --skill dex-doctor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install davekilleen/Dex dex-doctor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/dex-doctor .opencode/skills/dex-doctor && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dex-doctor" agent skill from https://github.com/davekilleen/Dex/tree/main/.agents/skills/dex-doctor into .opencode/skills/dex-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dex-doctor", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dex-doctorWhole-system checkup: verifies every Dex feature honestly (working/off/broken/couldn't-check), self-heals what's provably safe, guides the rest.
Dex Doctor is an agent skill from davekilleen/Dex. Whole-system checkup: verifies every Dex feature honestly (working/off/broken/couldn't-check), self-heals what's provably safe, guides the rest. Use when the user says 'is Dex healthy', 'something's broken', 'check my setup', 'run diagnostics'. Not for discovering unused features; use dex-level-up. Not for applying an update; use dex-update.
Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Your AI Chief of Staff — a personal operating system starter kit that adapts to your role. No coding required. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d0ffc6b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dex Doctor loads about 5.9k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 3,162 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from davekilleen/Dex at commit d0ffc6b, republished under its MIT licence (© davekilleen). 3,162 words, ~5,894 tokens.
.claude/skills/dex-doctor/SKILL.md (or your agent's skills folder).<!-- Generated from `.claude/skills/dex-doctor/SKILL.md` by `scripts/generate-agents-skills.py`. Do not edit. -->
Diagnose everything, heal what's safe, guide the user through the rest.
One honest answer to "is my Dex actually working?" Built against the failure modes found in the July 2026 audit: checks that never ran, checks that probed an easier path than the real feature, "off" reported as "broken", and background jobs that died silently for months.
/dex-doctor directlyCredential scanning is local and read-only. Inspect the worktree, index, approved Git
common directory and primary object database, reachable refs, stashes, tags, and only
archives the user explicitly selects. Report opaque redacted finding IDs plus explicit
inspected and uninspected scope categories; never print paths or matched values. Existing
.mcp.json is scan/report-only and remains byte-identical.
Render migration, security, active .mcp.json residual, and optional history hygiene as
separate deterministic states using render_credential_status; do not paraphrase it.
Provider revoke/rotate is always user-driven. Replacement health is read-only and runs
only after the user explicitly chooses a remediation check. History cleanup is optional
privacy hygiene, never a current-danger warning or prerequisite. Use only a preinstalled
git-filter-repo, after verified restrictive bundle backup and typed consent; never
install it, push, or force-push. If migration capability fails, scanning and guidance
remain available and Doctor names the failed capability with manual move/validation/rewind steps.
For an optional cleanup request, use the in-process contracts in
core.utils.history_hygiene; never interpolate revoked values into a shell command. Run
prepare_history_cleanup only when security is remediated, after the user explicitly chooses
the exact refs/heads/*, refs/tags/*, or refs/stash/* refs and confirms either verified
external-backup evidence or no-external-backup acknowledgement. Show the returned opaque
transaction ID, selected refs, recovery-bundle evidence, and this exact consent string:
CLEAN OPTIONAL HISTORY <transaction-id>
If prepare_history_cleanup returns optional-tool-unavailable or
optional-platform-unsupported, surface its guidance verbatim and stop; both are calm honest
states, never a current-danger warning. optional-platform-unsupported means this operating
system lacks the directory file-descriptor substrate the guided path needs (it runs on Linux,
including WSL2 or a Linux container; macOS is not supported). No recovery state was created; offer
the manual advanced path and note that history cleanup is optional privacy hygiene.
Call apply_history_cleanup only after the user types that string exactly. Preparation must have
already produced and verified the mode-0700 transaction directory and mode-0600
history.bundle, objects.json, and manifest.json under
System/.dex/adoption/history-backups/<transaction-id>/, while passing the 10 GiB shared-cap and
1 MiB free-space margin checks. Apply must preserve Git remote configuration and never fetch,
push, force-push, install software, or call a provider.
The verified bundle and manifest cover every restorable ref, not only selected refs, and include
restrictive config/index recovery artifacts plus opaque HEAD/index/tracked-worktree/remote state
authority. Apply still passes only the explicitly selected refs to git-filter-repo. Any changed
unselected branch, tag, stash, remote-tracking, replace, notes, backup, or other ref—or any HEAD,
index, tracked-worktree, or remote-config collateral—must return recovery-required, never a
clean result. Credential equality is memory-only; no value-derived digest or replacement file may
be persisted.
Render the post-cleanup rescan result exactly as history-clean,
history-cleanup-pending, or history-scope-unknown. If apply is interrupted or reports
recovery-required, lead with “Do not push.” Preserve the bundle and call
rewind_history_cleanup only through its exact-ref guard. If that guard refuses, give the
returned manual verified-bundle recovery guidance; do not improvise ref updates. Always state
that history rewind does not reverse provider rotation.
Retention is a separate explicit operation. preview_retention protects the newest history
bundle and selects only verified bundles older than 90 days with two later successful release
activations and valid backup posture. Call delete_retention_candidates only with the unchanged
candidate tuple and exact-set SHA-256 that the user acknowledged. Never auto-delete or upload a
recovery bundle.
if [ -x "$VAULT_PATH/.venv/Scripts/python.exe" ]; then
DEX_DOCTOR_PYTHON="$VAULT_PATH/.venv/Scripts/python.exe"
elif [ -x "$VAULT_PATH/.venv/bin/python" ]; then
DEX_DOCTOR_PYTHON="$VAULT_PATH/.venv/bin/python"
else
DEX_DOCTOR_PYTHON="python3"
fi
cd "$VAULT_PATH" && "$DEX_DOCTOR_PYTHON" core/utils/doctor.py --heal \
|| python3 core/utils/doctor.py --healThis returns JSON on stdout: every check with a verdict (OK / OFF / BROKEN / UNKNOWN), any
Tier-1 heals already applied, and an instruments block saying whether the doctor itself
ran completely. While it runs, stderr prints Apply safe Tier-1 repairs before checking.
then Checking this Dex install (read-only)..., then names each check as it starts
(for example Checking core.drift...). JSON stays on stdout until the end. If a run
sits still, the last named check is the one that is stuck. --verbose is not a flag.
If the collector itself fails to run: that IS the finding. Report it first, with the error, and continue with whatever manual checks you can do — do not present a partial picture as a full one.
Read System/usage_log.md. Make this offer only when **Health telemetry:** pending or the line is missing:
"Want to help catch bad releases early? Dex can send anonymous nightly health counts — no names, notes, or file contents, ever. Share them? (y/N)"
If the user explicitly says yes, replace the line with **Health telemetry:** opted-in (or add it under a
## Health Telemetry Consent heading when missing). If the user says no, skips, or accepts the default,
record **Health telemetry:** opted-out. Once either decision is recorded, do not offer again.
Never read or change the separate analytics consent while handling this choice.
Quick mode checks configuration, wiring, and background-job freshness. Deep mode additionally contacts live services (Granola API, Calendar via the configured source, enabled integrations). Ask:
"Quick check done. Want the deep scan too? It contacts your connected services (Granola, Calendar) to prove the real query paths work — takes ~30 seconds."
If yes: run with --deep and merge results.
Order: instruments first if anything failed, then BROKEN, then UNKNOWN, then OFF
(one compact line each, labelled "off — that's fine"), then healthy collapsed to a single
line ("✓ N checks healthy"). Fill every displayed count from the collector JSON — use
the current report's summary values and checks array rather than a hardcoded quick or
deep total, because the check registry can change.
For each BROKEN item: what it means for the user in one plain sentence (what stopped working, since when if known), then the fix path.
For Agent harness capabilities, use the saved receipt as the authority. Name every
selected harness and keep the collector's four delivery labels exact: automatic,
on_demand, guided, and unavailable. Explain on_demand as "available when asked".
Never describe a guided MCP safety check as an automatic block; only a verified pre-tool
interceptor earns that claim. If the check is OFF, calmly offer /setup to detect or choose
harnesses. If it is BROKEN, do not guess from installed commands—use the returned repair.
For the Entity engine check, keep the rendering short and plain: say whether entity creation is working, off, or needs attention, include the contact/observation counts, and call out unresolved verification results or quarantined pages. Mention stale verification or a stale/missing People index as a follow-up signal.
Read the collector's top-level adoption object and render its groups in the exact
order returned. It always contains these five groups: new-and-safe,
needs-your-review, preserved-for-now, continue-or-recover, and
receipts-and-rewind.
Authority fields are not prose. Render every item id, item version, action, status,
verdict, count, transaction id, reason, path, and rewindable boolean verbatim. Never
change an action or verdict, combine authority records, infer a missing record, or hide
a zero count. The collector's surface line is the only field that may be rephrased.
Keep that rephrasing to one plain-English line per group in this register:
"Here's exactly what this changes for you" and, for recovery, "I found an interrupted
update — resume or undo?"
needs-your-review normally contains conflict actions. If the deterministic planner
returns action: unknown, keep that item and its reasons in this group verbatim, render
the group's UNKNOWN verdict, and say the evidence needs rechecking; never silently
drop it or translate it into a conflict.
If adoption.verdict is OFF, say calmly that adoption reporting is off because no
release catalog is installed. If it is UNKNOWN, say what could not be verified and
do not turn empty authority arrays into proposed actions. For ledger recovery, reproduce
continue-or-recover.ledger.repair_command exactly; this is the existing
python3 -m core.lifecycle.cli --vault-root <vault> rebuild-state command, not a prompt
to improvise ledger repair.
Never offer an action the engine does not expose. An interrupted transaction may be
described only from its returned transaction authority; do not call Transaction.resume
while rendering Doctor. A receipt is rewindable only when the collector says
rewindable: true and rewind_verdict: OK. Rewind only through the existing
receipt-backed lifecycle flow:
load that exact receipt, derive its exact acknowledgement with the
rewind-acknowledgement helper in the Python lifecycle engine
(core/lifecycle/engine.py), then perform the rewind through that same engine
module's receipt-backed rewind function. There is no lifecycle rewind
shell command, so do not invent one. If rewindable: false with rewind_verdict: OK,
say the retained snapshot was pruned. If rewind_verdict: UNKNOWN, say the receipt,
current bytes, committed journal, or snapshot could not be verified. In both cases, do
not offer rewind.
Deep reports include a top-level customization_assessment object. Render its four groups
in the exact order returned: update-replaceable-location,
update-untouched-location, needs-interpretation, and blocked.
This section follows the same authority/surface split as adoption. Reproduce every
customization id, count, kind, group, verdict, path, release state, edge count, edge kind,
confidence, completeness value, and exclusion verbatim. Do not merge records, hide zero
counts, or promote an inferred edge to proved. Only each group's surface line may be
rephrased, in plain English: "lives in a location Dex updates can replace" or "lives in a
location updates leave alone."
CLAUDE.md differences are file-level evidence, never an orphan-line list. Do not tell the
user to move any differing line into CLAUDE-custom.md. Show the modified file as needing
review and route any comparison or resolution through /dex-update.
If completeness is UNKNOWN with partial: true, the installed baseline was still
verified. Render the observed count and record list explicitly as partial, followed
by every exclusion path, reason, and guidance line. Never present the observed count
as the complete total, and do not offer a Capsule write until completeness is OK.
If completeness is UNKNOWN without partial: true, render only the verdict and
each incomplete_reasons code; do not state or infer a customization count.
When blocked_count is greater than zero, the first summary sentence must state that blocked count.
Example register:
I found 3 customizations. One lives in a location Dex updates can replace, one lives in a location updates leave alone, and one is blocked by a missing folder reference.
cust-a1b2c3d4e5f6·custom-script·.scripts/custom-plan.py·update-untouched-location·canonical-customizationNothing has changed — this is an inventory only.
Always close this section with the exact line:
Nothing has changed — this is an inventory only.
<!-- FOUNDER COPY - DRAFT PENDING APPROVAL (re-anchoring design ruling 5):
everything in this subsection is tester-visible guidance; the founder
approves the verbatim wording before release. -->
The assessment's release_baseline object carries anchor_state:
verified — say the release anchor proves the vault's release-owned files;
nothing to offer.rejected — surface the probe's warning verbatim (it names the exact
error) and offer the re-anchor flow below to regenerate the anchor.absent with release-identity-unproved exclusions present — offer the
re-anchor flow below. This is the guided repair those exclusions' guidance
points at.VERIFIED (Doctor says it couldn't verify which version is installed) — this is the older-fork case, not the unproved-files case.
Do not stop at "I can't tell you what you've changed." Offer the
starting-version repair below. Never run it yourself.The re-anchor flow is deliberately interactive: it asks for an explicit yes before it runs and again before it writes, and it refuses anything that is not a real terminal — so you cannot run it from here, and no flag or token substitutes for the person's yes. Never attempt to run it through Bash, never suggest piping answers into it, and never present its refusal as an error. Instead, give the user the exact command to run themselves in their own terminal window, from their vault folder:
Dex can't prove some of its own files came with your installed version. There's a guided repair that checks them against the official release record — it asks for your yes before it does anything. Open the Terminal app in your Dex vault folder and run:
python3 -m core.update.reanchor_cliIt shows you everything before saving anything, and if it can't prove your version from what's on this computer it stops without changing a thing.
When Doctor could not verify which version is installed at all, offer this starting-version repair instead of the dead-end above. Same rules: the person runs it in their own terminal; you never run it, never pipe answers into it, and never treat its refusal as an error:
Dex can't tell which version is installed in this vault, so the protected update stays closed. There's a guided repair that sets a starting version from the official record — it only writes the version paperwork, never your notes or the files you have changed. Open the Terminal app in your Dex vault folder and run:
python3 -m core.update.reanchor_cli --dry-runThat only looks, and lists every file it compared. If the list looks right, run the same command without
--dry-run(add--baseline VERSIONif you know the official version). It asks for your yes before it saves anything.
After the user reports back (or on the next Doctor run), re-read the deep
assessment rather than assuming the outcome. If the flow said it couldn't
prove the release from local sources, say plainly that the vault stays
honestly unproved for now — do not route the user through /dex-update to
fix it, and do not suggest editing the anchor file by hand.
Deep reports include a top-level customization_migration_status object. Render every
capsule_id, state, validation.status, validation.mismatches, pending, and
truncated value verbatim. For each canonical Capsule, also render
staging.proposals, every proposal's verification_verdict, the
verification_verdicts summary, pending_rebuild, activation.state,
activation.reason, activation_receipt_present, and rewindable verbatim. These are
authority fields; only a short consequence or surface line may be rephrased.
When present, also render every recovery_actions record's phase, capsule_id,
proposal_id, and exact action verbatim. The action is already bound to
recovery_token; never shorten, rebuild, or improvise it.
When pending is true, render this guidance exactly:
Continue via the registered Customization Migration MCP status tool /
/dex-update; never edit capsule files directly.
When any validation.status is not OK, say plainly: "The preserved evidence cannot be
verified." Route the user to /dex-update guidance and reproduce the returned mismatch
authority. Do not invent a repair, search for capsule files, or edit them directly.
When pending_rebuild is true, say the protected rebuild is waiting to continue through
/dex-update. A BLOCKED verification verdict stays blocked and an UNKNOWN verdict stays
unknown. Say activation is receipt-backed only when activation_receipt_present is true, and
say rewind is available only when rewindable is true. A recovery-required staging or
activation state is a stop condition, not permission to repair Capsule files directly.
For interrupted staging, activation, or rewind, offer only the exact phase-specific
recovery_actions.action returned by Doctor after a fresh explicit acknowledgement.
/granola-setup" / "macOS is blocking calendar
access: System Settings → Privacy & Security → Calendars → enable your terminal app."🩺 Doctor's summary
Fixed automatically: 2
Needs your OK: 1 (waiting above)
Needs your hands: 1 (steps above)
Healthy: N · Off (fine): M · Couldn't check: UHere N, M, and U come directly from summary.ok, summary.off, and
summary.unknown in the collector JSON. If everything is healthy: one line — "Everything
checks out. N checks healthy, M features off by choice." No ceremony.
Update System/usage_log.md per the usage-tracking convention. If learnings surfaced
(e.g. a check that should exist but doesn't), suggest capturing via capture_idea.
If the run surfaced something that is a defect in Dex itself — not the user's setup —
offer once, lightly: "I've patched this for you, but it looks like a bug in Dex itself.
Want me to report it so it gets fixed properly for everyone?" If yes, invoke the
/feedback skill; the Doctor findings you just gathered become the report's
machine-state and investigation ingredients, so the user does nothing but approve.
/feedback skill with the repeat-BROKEN evidence.Claude Code's /skill-doctor reports unused skills and says where to turn them off. Match that path — do not invent another.
.claude/skills/, ~/.claude/skills/, .claude/commands/): open /skills, highlight the skill, press Space until it is off, then save. That writes skillOverrides in .claude/settings.local.json. You can write the same map by hand: {"skillOverrides": {"the-skill": "off"}}.disabledSkills. Claude Code does not honor that key. A silent no-op is not a disable.disable-model-invocation: true only stops Claude from auto-invoking the skill. It stays in the / menu unless skillOverrides is off./plugin. skillOverrides does not apply..claude/skills-custom/: Claude Code does not load that folder, so they do not appear in /skills or /skill-doctor. Turning one off means stop asking for it, or remove that folder. Do not offer /{name} for it./granola-setup, /calendar-setup, /google-workspace-setup, /enable-semantic-search — Tier-3 fix paths/dex-update — often the fix for package/version drift/feedback — when a finding is a genuine Dex bug (not the user's setup), report it to the Dex team; the Doctor evidence becomes the report and the user only approves/xray — understand what the doctor checked and why/skills and /skill-doctor — Claude Code's own skill list and unused-skill report; disable guidance above must match them© davekilleen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/dex-doctor of davekilleen/Dex.
Open the folder on GitHubat commit d0ffc6b
Dex Doctor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dex Doctor this skilldavekilleen/Dex | 494 | — | ~5.9k | Automated safety check: Pass | MIT | |
| Verifyasgeirtj/system_prompts_leaks | 69k | — | ~3k | Automated safety check: Pass | CC0-1.0 | |
| Verify Thiscursor/plugins | 11k | 2 repos | ~693 | Automated safety check: Pass | None | |
| Verify Releaseopenclaw/openclaw | 392k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Verifycodewhale-hq/Codewhale | 41k | — | ~156 | Automated safety check: Pass | MIT | |
| Doctorsuperset-sh/superset | 15k | — | ~434 | Automated safety check: Pass | Custom licence |
asgeirtj/system_prompts_leaks
Verify that a code change actually does what it's supposed to by exercising it end-to-end and observing behavior — drive the affected flow, not just tests or typecheck.
cursor/plugins
Verify a claim with fresh local evidence: restate it falsifiably, capture baseline and treatment, compare artifacts, and return VERIFIED, NOT VERIFIED, or INCONCLUSIVE.
openclaw/openclaw
Verify regular or extended-stable OpenClaw releases against the exact publication surfaces, workflow identities, package provenance, smoke tests, and live Gateway behavior expected for that release…
codewhale-hq/Codewhale
Exercise the real app/API/CLI and collect observable evidence; tests alone do not count as end-to-end verification.
superset-sh/superset
Diagnose and fix Superset problems such as connection failures, offline hosts, terminals not attaching, auth or update issues.
Yeachan-Heo/oh-my-claudecode
Has the agent prove that a feature, fix or refactor works, using existing tests first, then narrow commands and manual checks, and report only what was actually verified.
davekilleen/Dex
This skill should be used when working with DSPy.rb, a Ruby framework for building type-safe, composable LLM applications.
davekilleen/Dex
Adopt a full published Heydex profile by handle ('set me up like @davekilleen').
davekilleen/Dex
Package one workflow — how you use Dex for a specific job — into a shareable DexDiff methodology doc.
davekilleen/Dex
Expert guidance for creating, writing, and refining Claude Code Skills.
davekilleen/Dex
Report a Dex bug to the Dex team with zero homework — Dex investigates locally, builds a privacy-safe report, shows it to you (or auto-sends if you've chosen that), and tracks the ticket until it's…
davekilleen/Dex
This skill should be used when writing Ruby and Rails code in DHH's distinctive 37signals style.
Whole-system checkup: verifies every Dex feature honestly (working/off/broken/couldn't-check), self-heals what's provably safe, guides the rest. Dex Doctor is an agent skill from davekilleen/Dex. Whole-system checkup: verifies every Dex feature honestly (working/off/broken/couldn't-check), self-heals what's provably safe, guides the rest.
Dex Doctor fits situations like: the user says is Dex healthy; somethings broken; run diagnostics.
Run `npx skills add davekilleen/Dex --skill dex-doctor -a claude-code`. Or copy the skill folder (.agents/skills/dex-doctor in davekilleen/Dex) into .claude/skills/dex-doctor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add davekilleen/Dex --skill dex-doctor -a codex`. Or copy the skill folder (.agents/skills/dex-doctor in davekilleen/Dex) into .agents/skills/dex-doctor in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add davekilleen/Dex --skill dex-doctor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dex-doctor, .gemini/skills/dex-doctor, .github/skills/dex-doctor and .opencode/skills/dex-doctor in your project.
Going by SKILL.md and its folder, Dex Doctor needs the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Dex Doctor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.9k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dex Doctor: Verify (asgeirtj/system_prompts_leaks, 69k stars), Verify This (cursor/plugins, 11k stars), Verify Release (openclaw/openclaw, 392k stars) and Verify (codewhale-hq/Codewhale, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
davekilleen (a GitHub user) maintains it in davekilleen/Dex, which has 494 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on October 9, 2026.
Source: davekilleen/Dex on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.