install-dependencies

Enforce versionless dependency declarations across Python, Rust, and JavaScript projects.

Updated Nov 17, 2025
One-click install
npx skills add https://github.com/craigtkhill/stdd-agents --skill install-dependencies
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: install-dependencies
Source: https://github.com/craigtkhill/stdd-agents/tree/main/skills/install-dependencies
Command: npx skills add https://github.com/craigtkhill/stdd-agents --skill install-dependencies

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill solves "dependency hell" caused by manual version pinning, which leads to conflicts, outdated libraries, and complex maintenance. It enforces a "no version pinning" philosophy, allowing package managers to handle version resolution automatically, saving you time and frustration.

Core Features & Use Cases

  • Automated Version Resolution: Guides you in letting package managers (like uv, npm, cargo) automatically resolve compatible dependency versions, ensuring you always use the latest stable releases.
  • Cross-Language Guidance: Provides specific instructions and examples for Python, Rust, and TypeScript/JavaScript, covering common development environments.
  • Lock File Management: Emphasizes committing lock files (uv.lock, Cargo.lock, package-lock.json) for reproducible builds across all development environments.
  • Use Case: When adding a new library to your project, use this Skill to ensure you add it correctly without specifying versions, letting your package manager handle the resolution, and then committing the updated lock file for project stability and seamless collaboration.

Quick Start

Guide me on how to add a new Python dependency named 'fastapi' to my project using uv, ensuring I follow the 'no version pinning' rule.

Frequently Asked Questions about install-dependencies

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I avoid dependency version conflicts in my Python, JavaScript, or Rust project?

Avoid dependency version conflicts by declaring dependencies without version pinning and letting package managers (uv, npm, cargo) resolve versions automatically. Commit lock files (uv.lock, package-lock.json, Cargo.lock) to ensure reproducible builds across environments.

What's the best way to add a new dependency without specifying a version?

Add dependencies by name only—use `uv add fastapi`, `npm install express`, or `cargo add serde`—and let the package manager resolve the latest compatible version. Then commit the updated lock file to preserve that resolution.

Why should I commit lock files for npm, cargo, and uv projects?

Lock files guarantee reproducible builds by recording exact resolved versions. Committing them ensures all team members and CI/CD pipelines install identical dependency versions, preventing "works on my machine" issues.

Can I use this approach across Python, Rust, and TypeScript projects?

Yes. This Skill provides cross-language guidance for uv (Python), cargo (Rust), and npm (JavaScript/TypeScript), applying the same no-version-pinning philosophy with language-specific commands and lock file names.

What happens if I need to temporarily pin a specific dependency version?

Document the temporary pin with clear justification in your project notes or comments. This approach enforces intentionality: pinning is permitted but must be justified and tracked for future resolution.

Does maintaining alphabetical ordering of dependencies matter?

Yes. Alphabetical ordering keeps dependency declarations organized and readable, reducing merge conflicts and making it easier to spot duplicates or missing entries across team collaboration.