claude-code-plugin-ref…
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops; use night-market-operations.
Audits dependency supply chains for bad versions, lockfile drift, and artifact integrity. Use when adding deps, handling incidents, or releasing a plugin.
$ npx -y skills add athola/claude-night-market --skill supply-chain-advisory --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/supply-chain-advisoryContext preview
The summary Claude sees to decide when to auto-load this skill.
Audits dependency supply chains for bad versions, lockfile drift, and artifact integrity. Use when adding deps, handling incidents, or releasing a plugin.
name: supply-chain-advisory description: Audits dependency supply chains for bad versions, lockfile drift, and artifact integrity. Use when adding deps, handling incidents, or releasing a plugin. alwaysApply: false category: infrastructure tags: - security - supply-chain - dependencies - vulnerability - pypi dependencies: - error-patterns provides: infrastructure: - supply-chain-scanning - dependency-auditing - incident-response patterns: - known-bad-detection - lockfile-audit - artifact-scanning usage_patterns: - dependency-security-check - incident-response - supply-chain-audit complexity: intermediate model_hint: standard estimated_tokens: 500 progressive_loading: true modules: - modules/scanning-patterns.md - modules/incident-response.md role: hook-target
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:
1. **SessionStart hook**: warns per-session when compromised versions detected 2. **`make supply-chain-scan`**: CI/local scanning target 3. **This skill**: manual audit guidance
{
"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"
}]
}1. Add the entry to `${CLAUDE_SKILL_DIR}/known-bad-versions.json` 2. Add version exclusions (`!=x.y.z`) to affected `pyproject.toml` files 3. Document in `docs/dependency-audit.md` under Supply Chain Incidents 4. Run `make 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) |
are the only automatic defense during the attack window
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 works
on hash mismatch surfaces as an explicit supply-chain warning rather than a generic install error
files, unexpected scripts) in virtualenv paths before the session proceeds
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops; use night-market-operations.
States load-bearing decisions, invariants, and weak points. Use when judging a design change. Do not use for gating; use night-market-change-control.
Rebuild the dev environment: uv, Python tiers, pins, traps. Use when onboarding or toolchain breaks. Do not use for daily commands; use night-market-operations.
Classify, gate, and review changes. Use when landing a PR, releasing, or amending rules. Do not use for failure triage; use night-market-debugging-playbook.
Search and record project memory (Discussions, journal, ADRs). Use before re-investigating anything. Do not use for settled battles; see failure-archaeology.
Bind loop 'done' to unfakeable gates. Use to harden egregore/herald loops or promote completion_integrity. Not for QA gates; use night-market-validation-and-qa.