plugins/leyline/skills/supply-chain-advisory/SKILL.md
Audits dependency supply chains for bad versions, lockfile drift, and artifact integrity. Use when adding deps, handling incidents, or releasing a plugin.
npx skillsauth add athola/claude-night-market supply-chain-advisoryInstall 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.
Supply chain attacks bypass traditional code review by compromising upstream dependencies. This skill provides patterns for detecting, preventing, and responding to compromised packages in Python ecosystems.
The blocklist is at ${CLAUDE_SKILL_DIR}/known-bad-versions.json.
It is consumed by:
make supply-chain-scan: CI/local scanning target{
"package_name": [{
"versions": ["x.y.z"],
"date": "YYYY-MM-DD",
"description": "What the attack did",
"indicators": ["files or patterns to search for"],
"source": "advisory URL",
"severity": "critical|high|medium"
}]
}
${CLAUDE_SKILL_DIR}/known-bad-versions.json!=x.y.z) to affected pyproject.toml filesdocs/dependency-audit.md under Supply Chain Incidentsmake supply-chain-scan to verify detection works# Scan uv.lock files for a specific compromised version
grep -r "package_name.*version" --include="uv.lock" /path/to/projects
# Search for malicious artifacts
find /path/to/projects -name "suspicious_file.pth" 2>/dev/null
# Check installed versions in virtualenvs
find /path/to/projects -path "*/.venv/lib/*/PACKAGE*/METADATA" \
-exec grep "^Version:" {} +
uv.lock includes SHA256 hashes for every package. If a package is
re-published with different content under the same version, uv sync
will fail with a hash mismatch. This is your strongest automatic defense.
| Layer | Tool | Catches |
|-------|------|---------|
| Lockfile hashes | uv.lock SHA256 | Tampered re-published versions |
| Version exclusions | pyproject.toml != | Known-bad versions on fresh resolve |
| SessionStart hook | sanctum hook | Per-session warning for compromised deps |
| CI scanning | OSV, Safety | CVE database, and advisory matching |
| Artifact scanning | make supply-chain-scan | Malicious files (.pth, scripts) |
${CLAUDE_SKILL_DIR}/known-bad-versions.json checked against
all lockfiles in scope; any match reported with package name,
bad version, severity, and advisory URL!=x.y.z) added to the affected pyproject.toml, entry
documented in docs/dependency-audit.md, and
make supply-chain-scan run to confirm detection worksuv.lock SHA256 hash integrity verified; uv sync failure
on hash mismatch surfaces as an explicit supply-chain warning
rather than a generic install error.pth
files, unexpected scripts) in virtualenv paths before the
session proceedsdata-ai
Models a business in its own language. Use when the domain has real business rules to capture.
research
Generate diverse solution candidates with category-spanning ideation methods and rotation. Use when stuck on a design or fighting repetitive LLM output.
development
Generates and self-executes a diff-derived test plan for a PR. Use when validating PR changes before merge. Do not use for code review; use sanctum:pr-review.
development
Ramps implementation ambition a notch only after the prior increment is understood. Use when building a feature you must understand, not just ship.