New to Claude Skills? Learn how to install them →

Dshubhamsaboo on GitHub

Dependency Doctor

Free

Diagnose and fix dependency manifest issues locally.

Get this skill

Free · Opens the source repo

What Dependency Doctor does

Dependency Doctor is a local tool designed for developers who want to inspect their project's dependency manifests for common issues. It checks files like requirements.txt, pyproject.toml, and package.json for direct dependency problems, including standard-library shadowing, unpinned dependencies, and conflicts within the manifest. The tool provides clear explanations of each finding, detailing potential issues and suggesting small, reviewable fixes. This makes it particularly useful for developers who suspect their dependencies may be causing installation problems or who want to ensure their project is free from common dependency pitfalls.

The tool operates offline by default, allowing users to run diagnostics on their local projects without needing an internet connection. When invoked, Dependency Doctor reads the specified manifest file and generates a report that highlights any issues it finds, categorized by severity. This report includes specific details about each finding, such as the affected package, the line number in the manifest, and a suggested fix. By focusing on surface-level issues, it provides a quick way to audit dependencies before deeper debugging is required.

Dependency Doctor is not intended for use as part of a continuous integration (CI) process or for performing full vulnerability audits. It is a user-invoked tool meant for local diagnostics, making it ideal for developers who want to maintain control over their project dependencies without introducing automated checks that could disrupt their workflow. This skill is particularly beneficial for those who regularly manage Python or JavaScript projects and need a straightforward way to ensure their dependencies are correctly configured and up to date.

When to use it

Use this tool when you need to audit a dependency manifest for potential issues or when you suspect problems with your project's dependencies.

When not to use it

Do not use this tool for installing or upgrading dependencies, or for comprehensive vulnerability audits; it is focused on surface-level checks only.

What you can build with it

Auditing a Python Project

A developer runs Dependency Doctor on their requirements.txt to identify any unpinned dependencies before a major release.

Troubleshooting Installation Issues

When a user encounters installation errors, they use Dependency Doctor to inspect their pyproject.toml for potential conflicts.

Cleaning Up a package.json

A JavaScript developer checks their package.json for duplicate entries and unpinned dependencies using Dependency Doctor.

How to install Dependency Doctor

View source

1. Install with the skills CLI

npx skills add shubhamsaboo/awesome-llm-apps/dependency-doctor --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by shubhamsaboo

Dependency Doctor

Inspect one dependency manifest on the user's machine for direct, surface-level footguns. Explain each finding in plain language, then offer a small, reviewable fix. This does not diagnose a failed pip or uv resolution.

This is a local developer tool for a project the user chooses. It is not a repository-wide lint rule, a CI gate, or a proposal to enforce dependency policy across unrelated apps.

When to use

  • The user asks to check, audit, diagnose, or autopsy a dependency manifest
  • The user wants to rule out direct-manifest issues before deeper install debugging
  • The user suspects stale pins, backports, duplicate entries, or dependency rot
  • The user asks whether anything looks wrong with their dependencies

When not to use

  • Installing the current dependencies without diagnosing them
  • Upgrading every package or adding a new package
  • A full vulnerability audit. Use pip-audit, npm audit, or the project's approved security scanner for CVE coverage
  • Creating a repo-wide CI check. This skill is user-invoked and local

Choose the manifest

Use the path the user names. If no path is given and several manifests exist, ask which one to inspect. Do not sweep the repository or edit anything merely because the skill was triggered.

Supported inputs:

  • requirements.txt
  • pyproject.toml using PEP 621 or common Poetry dependency tables
  • package.json dependency sections

Run the offline diagnosis

From this skill directory:

python3 scripts/dep_doctor.py /path/to/requirements.txt --json

The default path is fully offline. It reads only the selected manifest. The report shape is:

{
  "file": "/path/to/requirements.txt",
  "findings": [
    {
      "severity": "high",
      "kind": "stdlib-shadowing",
      "package": "pathlib",
      "line": 4,
      "why": "...",
      "fix": "..."
    }
  ],
  "summary": {
    "total": 1,
    "by_severity": {"high": 1},
    "by_kind": {"stdlib-shadowing": 1},
    "online": false
  }
}

The offline checks cover:

  • Python standard-library names published as packages
  • Known backports that should not be installed on supported Python versions
  • Dependencies without a usable version constraint
  • Repeated package entries
  • Conflicting exact pins for the same package

For package.json, Python-specific standard-library and backport checks do not apply. The doctor still checks unpinned values and repeated dependency entries.

Explain the diagnosis

Read references/dependency-pitfalls.md before presenting findings. Lead with high severity items, then medium and low. For each finding, include:

  1. Package and source line
  2. What can break
  3. The suggested fix

Do not call every range a conflict. The deterministic core reports conflicting constraints only when exact pins disagree. Compatible constraints split across multiple lines are duplicate entries that should be combined.

If there are no findings, say what was checked and note the limits. A clean report is not a CVE audit or a full dependency resolver.

Optional PyPI yank check

The online check sends package names and exact pinned versions to pypi.org. Ask for permission before enabling it, even if the user previously requested an offline diagnosis.

python3 scripts/dep_doctor.py /path/to/requirements.txt --json --online

It reports an exact Python release only when every file for that release is marked yanked. Network failures become low-severity findings instead of hiding the offline diagnosis.

Offer fixes, do not apply them silently

After explaining the report, offer a focused edit. Wait for approval before changing the manifest.

  • Remove standard-library packages from supported Python projects
  • Remove obsolete backports, or add a Python-version marker when an old runtime genuinely needs one
  • For an unpinned dependency, inspect the working environment's installed version, confirm it is intended, and propose an exact reviewed pin
  • Keep one entry for duplicates and combine compatible constraints
  • For conflicting exact pins, inspect dependents before choosing a version
  • Replace a yanked pin with a tested, non-yanked release

After any approved edit, rerun the offline diagnosis and the project's existing install or test command. Do not introduce a new CI gate.

Files

  • scripts/dep_doctor.py: stdlib-only manifest parser and diagnosis engine
  • references/dependency-pitfalls.md: reasoning guide for the reported risks

Frequently asked questions about Dependency Doctor

Similar skills