repo-impact
Skill9 starsChanged 7 days agoApache-2.0View on GitHub
Answer whether a specific advisory reaches anything in THIS repository — which manifest declares the package, at what version, whether the version is in range, and whether the vulnerable code is reachable. Use when someone asks "does CVE-… affect us", when triaging an advisory against a real codebase, or before spending effort on a fix.
In this repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- container-scanSkill
- dashboardSkill
- dependency-choiceSkill
- dep-resolveSkill
- detection-rulesSkill
- eol-checkSkill
- exploit-testSkill
- fixSkill
- iac-scanSkill
- license-checkSkill
- sast-scanSkill
- sbom-generateSkill
- secret-scanSkill
- secure-code-writeSkill
- typosquat-checkSkill
- verify-fixSkill
- vex-publishSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 63
If a scan was already recorded, .vulnetix/memory.yaml has it, and vulnetix agent hook puts a summary in front of the agent at session start.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Repository impact
Use when
- "Does CVE-2021-44228 affect us?" — the only question that matters when an advisory is in the news.
- Triaging an advisory that names a package this repository might pull in transitively.
- Deciding whether a fix is worth the effort before starting it.
Don't use for
- Looking the advisory up. That is
vulnetix_vulnover MCP, orvulnetix vdb vuln <id>, and it needs no skill. This skill exists for the half that needs the working tree. - Applying the fix —
fix. - Confirming a fix landed —
verify-fix.
Conventions
Follows skills/_lib/contract.md for surface selection, output style and memory
writes.
What "affects us" actually means
Four questions, in order, and each one can end the enquiry:
- Is the package here at all? Directly, or pulled in transitively.
- Is the installed version in the affected range? Being on the package is not being vulnerable.
- Is there a fixed version, and how far away is it? A patch release and a major rewrite are different answers.
- Is the vulnerable code reachable? Present in the tree is not the same as called.
Report which of these you could answer and which you could not. An unreachable finding and an unanswered reachability question look identical in a summary and mean opposite things.
Step 1: Ask the tree, not the internet
vulnetix scan --sca -o jsonThis resolves the actual dependency graph, including transitives, and anchors each package to the manifest line that declares it. Grep is not a substitute: it misses transitives entirely, which is where most advisories land.
If a scan was already recorded, .vulnetix/memory.yaml has it, and
vulnetix agent hook puts a summary in front of the agent at session start.
Reuse that when it is current, and say it is a snapshot.
Step 2: Get the advisory's own facts
vulnetix vdb vuln "$ARGUMENTS" -o jsonOr vulnetix_vuln with detail: summary over MCP, which is about 10 KB rather
than megabytes.
Take the affected ranges, the fixed versions, the affected routines, and whether it is known-exploited.
Step 3: Intersect
Match the advisory's affected ranges against the versions actually resolved in
step 1. Be exact about ranges — >=2.0.0 <2.17.1 does not include 2.17.1, and an
off-by-one here is the difference between an emergency and a non-event.
Step 4: Reachability, when the CLI can answer it
vulnetix scan --reachability -o jsonThe advisory names affected routines; reachability says whether this repository calls them. When it cannot answer — no analyser for the language, a dynamic call graph — say so rather than reporting UNKNOWN as if it were UNREACHABLE.
Step 5: Answer the question that was asked
<CVE-…>: <AFFECTED | NOT AFFECTED | CANNOT DETERMINE>
Package <name>@<installed>
Declared <manifest>:<line> (<direct | transitive via X>)
Affected <range> -> fixed in <version>
Reachable <yes: path | no | not analysed for <language>>
Exploited <known exploited | no evidence>Lead with the verdict. If the answer is NOT AFFECTED, say why in one line — wrong version, wrong platform, not present — because "no" without a reason gets asked again next week.
Record the verdict in .vulnetix/memory.yaml so the next session, and
dashboard, can see the decision rather than repeat the work.
Next: fix <CVE-…> when the answer is AFFECTED.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

