skills/npm-scan/SKILL.md
Recursively scan a folder tree for affected npm, pnpm, and yarn dependency versions. Use when the user asks to check whether a compromised package version is installed anywhere, scan all subfolders, or verify a package range from an advisory.
npx skillsauth add asgarth/skills npm-scanInstall 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.
Use the bundled scanner to walk a starting directory recursively and inspect JavaScript/TypeScript projects that use npm, pnpm, or yarn.
The script reports three evidence types separately:
declared: the package is referenced in package.jsonlocked: the affected version is present in a lockfileinstalled: the affected version exists in node_modules/<package>/package.jsonTreat locked or installed as stronger evidence than declared.
Use this skill when you have incident details such as:
Typical trigger requests:
[email protected] is installed anywhere under this monorepo."chalk versions matching <5.6.0."Do not use this skill when:
Positive triggers:
@scope/pkg is installed anywhere under this folder"lodash versions matching >=4.17.0 <4.17.21"Negative triggers:
Collect these before running the scan:
axios or @scope/pkg--version--rangeUse exact versions when an incident report lists them explicitly. Use ranges when the advisory publishes affected windows such as >=1.2.0 <1.2.5.
Default operating choices:
--json for machine consumption--version values when the incident names specific compromised releasesscripts/scan_npm_dependency.py from the chosen starting folder.installed: package exists on disk under node_moduleslocked: package resolves to the affected version in a lockfiledeclared: a manifest references the package, but installation is not provenUse the bundled scanner as the primary path. Do not replace it with ad hoc find, awk, perl, or grep pipelines unless the user explicitly asks for a one-off custom investigation that the script cannot cover.
Exact-version incident:
python scripts/scan_npm_dependency.py /path/to/root \
--package axios \
--version 1.14.1 \
--version 0.30.4
Range-based incident:
python scripts/scan_npm_dependency.py /path/to/root \
--package some-package \
--range ">=2.4.0 <2.4.3"
Machine-readable output:
python scripts/scan_npm_dependency.py . \
--package axios \
--version 1.14.1 \
--json
CI-style failure on detection:
python scripts/scan_npm_dependency.py . \
--package axios \
--version 1.14.1 \
--version 0.30.4 \
--fail-on-match
Run the functional tests:
python scripts/test_scan_npm_dependency.py
The scanner:
.git, node_modules, .yarn/cache, and build output folderspackage.json and/or a supported lockfile as a project root candidatepackage-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, and yarn.locknode_modules/<package>/package.json when presentThe scanner supports common npm semver syntax in --range, including exact versions, comparator sets, ||, ^, ~, and x/* wildcards.
For package.json, a declared match is reported when the declared dependency spec itself is affected, can resolve to one of the affected exact versions you supplied, or overlaps with an affected range you supplied.
Installed-package detection is recursive within each discovered project's node_modules, so nested or transitive installs such as node_modules/foo/node_modules/<package> are checked too.
declared only: the project references the package, but the currently installed or resolved version is not proven from that evidence alonelocked: the affected version is resolved in the dependency graph captured by the lockfileinstalled: the affected version is currently present on disk in node_modulesIf the incident is known to remove or hide evidence after install, still rely on lockfiles even when installed is absent.
When reporting results, include:
declared, locked, and installedIf no matches are found, state that explicitly instead of implying a clean bill of health.
declared finding alone.locked and installed as evidence, not proof of runtime execution.node_modules during detection.declared, locked, and installed into a single undifferentiated resultnode_modules is absentnode_modules/<package> check is sufficient for transitive installsError: provide at least one --version or --range selector
Cause: the scan was started without affected versions or ranges
Solution: rerun with one or more --version and/or --range arguments
Error: start path does not exist or start path is not a directory
Cause: the root path is wrong or not mounted in the current environment
Solution: verify the absolute path and rerun from a readable directory
Problem: scan finishes with warnings Cause: one or more manifests or lockfiles could not be parsed Solution: inspect the warning paths, confirm file format, and rerun after fixing or excluding the broken project
Problem: only declared matches are found
Cause: the dependency may not currently be installed, or lockfiles may be absent
Solution: treat the result as weaker evidence and inspect install state or lockfiles before escalating
references/axios-march-2026.md: example incident extraction based on the March 30-31, 2026 axios compromise disclosed by Aikidoscripts/scan_npm_dependency.py: recursive scanner for npm, pnpm, and yarn projectsscripts/test_scan_npm_dependency.py: functional tests covering positive and negative scan casesdevelopment
Generate and manipulate images and videos using Venice.ai's privacy-first, uncensored AI API. Use when the user needs to create images from text prompts, edit/inpaint existing images, upscale/enhance image quality, remove backgrounds, or generate videos from text or images. Triggers on requests like "generate an image of...", "upscale this photo", "remove background", "create a video from this image", etc.
tools
Hive blockchain CLI skill for hive-tx-cli. Query accounts/content/RC/feed/replies, upload images, and broadcast publish/reply/edit/vote/transfer/community/social/profile/reward/custom-json operations with correct key usage.
development
Build and debug Hive blockchain software with `hive-tx` in JavaScript/TypeScript, including node failover, quorum reads, key-safe signing, and status-aware broadcasting for wallet, content, and custom_json flows.
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".