Agent skill
install-dependencies
Use when adding project dependencies. Defines dependency management rules and language-specific patterns.
Install this agent skill to your Project
npx add-skill https://github.com/craigtkhill/stdd-agents/tree/main/skills/install-dependencies
SKILL.md
Install Dependencies
Philosophy
Core Principle: Let package managers resolve versions, then pin the exact version they resolved to in the dependency file. This gives you fully reproducible builds.
Why This Approach
- Package managers are smarter: Modern package managers (uv, npm, cargo) resolve compatible versions automatically
- Pinning after resolution: Recording the exact resolved version ensures builds are reproducible even without a lock file
- Explicit updates: Dependencies only change when you actively choose to update them
- No surprises: A fresh install always gets exactly what was tested
Universal Rules
✅ DO:
- Add the dependency name without a version to the dependency file
- Run the package manager to resolve and install
- Read the resolved version from the install output or lock file
- Update the dependency file to pin the exact resolved version
- Keep dependencies in alphabetical order
- Commit both the dependency file and the lock file
❌ DON'T:
- Guess version numbers before running the resolver
- Use loose ranges (
>=,~=,^) — pin exactly what was resolved - Skip the resolution step and manually look up versions
Workflow
- Add dependency name (no version) to the dependency file
- Run the package manager to resolve and install
- Read the resolved version from the install output
- Update the dependency file with the exact resolved version
- Verify: Run the package manager again to confirm everything is consistent
- Commit: Both the dependency file and the lock file
Language-Specific Details
For language-specific syntax and examples:
- Python: See PYTHON.md
- TypeScript/JavaScript: See TYPESCRIPT.md
- Rust: See RUST.md
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
test-driven-development
Use when writing tests or implementing code. Defines RED-GREEN-REFACTOR cycle and test execution workflow.
acceptance-test
Use when writing acceptance tests or adding scenarios to spec.yaml. Defines Given/When/Then format and acceptance test patterns.
specifying-requirements
Use when writing or updating spec.yaml files. Defines requirement format and user story structure.
spec-test-driven-development
Use when user requests new features or functionality. Defines complete workflow from specification through testing to implementation.
create-skill
Use when creating or modifying skills. Defines skill file structure, naming conventions, and integration patterns.
pre-commit-hooks
Use when running pre-commit hooks manually (e.g. before committing or after implementing). This project uses prek, not pre-commit. Defines the correct commands for running hooks.
Didn't find tool you were looking for?