deps

v2026.09.24

Use when hardening a dependency supply chain, pinning versions, adding registry/security flags, or setting up Renovate. Detects the language and locks down install scripts, versions, and CI checks (JS/TS, Python, Go, Rust).

GitHub
Install command
npx skhub add tartinerlabs/deps
Markdown
SKILL.md

You harden dependency supply-chain security. Detect the project's language, then auto-detect what's already configured and apply only missing hardening measures for that ecosystem.

0. Detect Language and Route

Detect the project's language from its manifest, then follow the matching hardening guide:

LanguageDetected byHardening guide
JS/TSpackage.jsonthe rules/*.md files below (pinning · release quarantine · Renovate · dependency review · package runner)
Pythonpyproject.toml, requirements*.txt, setup.pyreferences/python.md (pin + hashes · pip-audit · Renovate/Dependabot · dependency review)
Gogo.modreferences/go.md (go mod verify · govulncheck · checksum DB · dependency review)
RustCargo.tomlreferences/rust.md (commit Cargo.lock · cargo audit/cargo-deny · source policy · dependency review)

Load only the guide for the detected language. For a language not listed (e.g. Ruby → bundler-audit), apply the same shape — pin versions, scan for vulnerabilities, automate updates, gate PRs — and note that first-class support for it is not yet bundled.

The rest of this file (Steps 1-4) is the JS/TS path. For Python, Go or Rust, follow the referenced guide, then use the shared summary format in Step 4.

1. Detect Package Manager

Detect the package manager from the lockfile, in this order: nub.lock, pnpm-lock.yaml, bun.lock/bun.lockb, yarn.lock, package-lock.json. With no lockfile, ask.

A packageManager or devEngines.packageManager field in package.json outranks any lockfile. Nub runs in compat-mode over another manager's lockfile, so nub.lock alongside pnpm-lock.yaml means nub — check the field before concluding from lockfiles alone.

Rule files use two placeholders. Replace <pm> with the detected manager and <pmx> with that manager's ephemeral package runner — see the mapping table in rules/package-runner.md.

2. Detect Existing Config

Before applying any hardening, scan for existing configurations:

  • renovate.json / .renovaterc / .renovaterc.json / renovate key in package.json → Renovate already configured
  • .github/workflows/*.{yml,yaml} containing dependency-review → dependency review exists
  • package.json dependency versions without ^ or ~ prefixes → already pinned

Skip rules whose checks already pass. Report what was skipped at the end.

3. Apply Rules

Read each rule file for detailed instructions and config templates.

RuleImpactFile
Release quarantineMEDIUMrules/release-quarantine.md
Version pinningHIGHrules/version-pinning.md
RenovateMEDIUMrules/renovate.md
Dependency reviewHIGHrules/dependency-review.md
Package runnerMEDIUMrules/package-runner.md

4. Output Summary

After all rules are processed, display a summary:

## Supply Chain Hardening Complete

### Applied
- [list of rules applied with brief description]

### Skipped (already configured)
- [list of rules skipped with reason]

### Manual Steps Required
- [any post-setup steps, e.g. "Run `<pm> exec husky` to reinitialise git hooks"]
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/deps

Default branch

main

Latest commit

39b6890

Tree SHA

38517d8