计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
plan-dependency-provenance【效率与协作】Plan-only audit of dependencies for hallucinated or slopsquatted packages, supply-chain risk, and license gaps. Use when "check my dependencies", "is this package real", "slopsquatting", "SBOM", or "did the AI hallucinate a package".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Degree of freedom: HIGH — resolve, classify, plan. Stay plan-only. Never install a suspect package to "check".
| Skill | Owns |
|---|---|
| plan-dependency-provenance (this) | Slopsquatting / SBOM / license plan |
plan-security-audit | OWASP umbrella burndown |
workflow-housekeep | Apply dependency updates after approval |
plan-dead-code | Unimported deps + unreachable source (graph fact) |
Propose: remove
fast-cache-utils(no registry hit); do notnpm installit to "check". Risk: AI-suggested name is a squat — install is the attack. Keep-working:zodresolves, MIT, maintained repo. Phase: Phase 1 — verify/remove suspect packages.
Role: Senior supply-chain engineer + open-source compliance specialist.
Task: Resolve every direct dependency against its registry, run checklist A–E,
build the provenance table, phase remediations, emit plan-dependency-provenance.md.
Audit & plan only — never install suspect packages to verify.
Verify every package is real, safe, and licensed. Install nothing until approved.
In a vibe-coding loop "just install the suggested package" is the default move —
and it's now a documented attack surface. The Cloud Security Alliance's 2026
research found AI coding tools recommend non-existent package names ~20% of the
time, and 43% of those hallucinated names recur on every run of the same prompt.
Consistent hallucinations are predictable; predictable names are registerable.
Attackers pre-register them on npm/PyPI — slopsquatting — then wait for
developers (or autonomous agents) to run the exact npm install / pip install
the AI just wrote. With agents executing their own generated install commands, the
human checkpoint disappears entirely.
This skill is the audit-and-plan half. Execution (removal, replacement, pinning, license remediation) is handed off after you approve each phase.
Trigger phrases: "check my dependencies", "is this package real", "slopsquatting", "are my packages safe", "audit my supply chain", "license check", "generate an SBOM", "did the AI invent a package", "pre-launch / pre-open-source dependency audit".
Do not fire for: routine version bumps (/update-deps), bundle-size trimming
(audit-bundle-size), or general repo cleanup (workflow-housekeep). This skill
owns existence, integrity, provenance, and licensing of dependencies.
/update-deps assumes the packages are legitimate and just need upgrading.
This skill asks the prior question the AI era forces: is this package even real,
who published it, when, and under what license?
reqests, lodahs), or conflation names merging two real packages.^/latest on security-sensitive deps.npm audit / pip-audit in execution).plan-dead-code
→ housekeep-dead-code. Do not hand-verify with a grep — a dep reached
only from a config string looks unused and is not.For each finding: package, issue, evidence, severity, remediation direction.
plan-dependency-provenance.md, then end the turn with a standalone recap in chat: the two or three highest-impact findings and the first phase to approve. The file is the deliverable — write it before the recap. Do not install anything.install, add, remove, update, or lockfile edits.create-hook pre-install allowlist as regression gate./update-deps; bundle trim → audit-bundle-size; unimported deps + dead source → plan-dead-codeplan-dependency-provenance.md# Dependency Provenance & Supply-Chain Audit — <repo>
_Audit-only. Nothing is installed, removed, or upgraded until each phase is approved._
## Scope
- Ecosystems: npm ☐ pip ☐ other ☐ | Direct deps: n Transitive: n
- Lockfile(s): present ☐ committed ☐ | Assumptions: …
## Verdict
| Severity | Count | Worst case |
|----------|-------|-----------|
| Critical | n | non-existent / squat-suspect / malicious package installed |
| High | n | no lockfile, license conflict, open advisory |
| Medium | n | floating pins, abandoned upstream |
| Low | n | bloat, unused deps |
## Provenance table (suspect + notable)
| Package | Exists? | First pub | Weekly DLs | License | Repo | Verdict |
|---------|---------|-----------|------------|---------|------|---------|
| fast-cache-utils | ❓ none found | — | — | — | none | Crit: likely hallucinated → remove |
## Findings
| # | Package | Issue | Evidence | Sev | Direction |
|---|---------|-------|----------|-----|-----------|
## Phased burndown
- **Phase 1 — Verify/remove suspect packages** → manual verify + removal
- **Phase 2 — Lock & pin** → `workflow-housekeep`
- **Phase 3 — License & advisories** → wire Socket.dev/Phylum/npm-audit
- **Phase 4 — De-bloat** → remove unused/duplicate deps
- **Gate** → `create-hook` pre-install allowlist
## Execution handoff
Approve a phase to run it. Re-scan after; add the install-time gate.
plan-secrets-audit — both feed create-hook regression gates.workflow-housekeep, create-hook, /update-deps (after verified),
audit-security.Planned at high effort; executed at the default effort under the approved-plan execution rule (
approved-plan-execution.mdc). The plan says which packages are suspect; the rule forbids "just installing it to see".