skills/version-doctor/SKILL.md
Diagnose and fix library version mismatches, dependency conflicts, and build file inheritance issues. Use when the user says "fix versions", "version mismatch", "dependency conflict", "why won't this build", or "update dependencies", and proactively when a build fails on version constraints — the fix is almost always a version bump, not restructuring the build. Use this before rewriting a build config or bypassing workspace inheritance.
npx skillsauth add paulnsorensen/dotfiles version-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.
Fix version mismatches by updating versions, not restructuring builds.
The #1 failure mode when AI encounters a build error: it treats a version mismatch as "wrong approach" and restructures the entire build config. The correct response is almost always: change one version number.
Version mismatch = fix the version. Not restructure the build.
Build configs have inheritance chains (workspace → member). When a version conflict appears, the inheritance is correct — the version is wrong. Respect the architecture.
Read the full inheritance chain before touching anything:
workspace root config → intermediate configs → the file with the error
For each build system:
Cargo.toml (workspace root) → member Cargo.toml filespyproject.toml (workspace root with uv) → member packagespackage.json → workspace package.json filesgo.work → member go.mod filessettings.gradle + root build.gradle → subproject build.gradleRead the relevant reference file from references/ for the specific build system.
Classify the error:
| Error Type | Symptom | Fix | |------------|---------|-----| | Version mismatch | "expected X, found Y" | Update version constraint | | Missing dependency | "not found" / "no matching" | Add to correct config level | | Inheritance broken | Child duplicates parent config | Remove child override, use inheritance | | Yanked/removed version | "version X not available" | Find latest compatible version | | Conflicting constraints | "impossible to satisfy" | Unify constraints at workspace level |
If the correct version isn't obvious:
Context7 first — spawn a research agent to fetch current docs for the library:
Use Context7 to check: what is the latest version of <library>?
What changed between version X and Y?
Changelog/migration guide — for major version bumps, check if there are breaking changes that require code changes alongside the version bump
Compatibility matrix — some libraries pin to specific ranges of their dependencies. Check the library's own build config for constraints.
Apply the minimum change:
cargo update, uv lock, npm install, go mod tidy)Run the build to confirm the fix works (rtk filters output automatically):
| Build System | Verify Command |
|-------------|----------------|
| Rust | cargo check |
| Python (uv) | uv lock && uv run python -c "import <pkg>" |
| Node | npm install && npm run build |
| Go | go build ./... |
| JVM | gradle build |
These are the panic responses that waste the user's time:
Present findings as:
## Diagnosis
<what's wrong — one sentence>
## Root Cause
<which config file, which version constraint, why it conflicts>
## Fix
<exact change — file path, old value → new value>
## Verification
<command to run to confirm>
tools
Reconstruct what a past coding-agent session was doing so you can resume it — goal, files touched, last verified state, and the next step — by querying the session logs. Use when the user says "what was I working on", "recover that session", "reconstruct where I left off", "resume my last session", "what did that session change", "rebuild context from logs", or invokes /work-recovery. Report-only — it never scores or judges. Do NOT use for usage scoring (that is /skill-improver, /tool-efficiency, /prompt-analytics) or one-off interactive log queries (that is /session-analytics).
development
Curate this repo's hallouminate wiki (.hallouminate/wiki/, the repo:dotfiles:wiki corpus) — add or update architecture pages, per-harness docs, and gotchas. Use when the user says "update the wiki", "document this in the wiki", "refresh the harness docs", "add a wiki page", "curate the wiki", "the wiki is stale", or invokes /wiki-curator. Also use at session end to write back a non-obvious decision or gotcha worth preserving. Grounds the existing wiki first, follows one-topic-per-file conventions, verifies every external doc URL before writing, and reindexes. Do NOT use for general code search (that is cheez-search) or for editing AGENTS.md command reference.
tools
Audit how a tool, command, or MCP server is actually used across coding-agent sessions and produce calibrated recommendations — tool-vs-task fit, error forensics, fix recommendations, permission friction, MCP health, and token economics. Use when the user says "tool efficiency", "am I using X efficiently", "audit tool usage", "why does X keep failing", "how do I fix this error", "what should I change", "permission friction", "is this MCP worth it", "tool error rate", "fix recommendations", or invokes /tool-efficiency. Do NOT use for auditing a skill or agent definition (that is /skill-improver) or for one-off interactive log queries (that is /session-analytics).
tools
Analyze how prompts and skill routing behave across coding-agent sessions and produce calibrated recommendations — prompt-pattern analysis, routing accuracy, and knowledge gaps. Use when the user says "analyze my prompts", "prompt patterns", "is routing working", "which skill should have fired", "knowledge gaps", "what do I keep asking", or invokes /prompt-analytics. Do NOT use for auditing a single skill/agent definition (that is /skill-improver), tool/MCP efficiency (that is /tool-efficiency), or one-off interactive log queries (that is /session-analytics).