fix
Skill9 starsChanged 6 days agoApache-2.0View on GitHub
Concrete remediation proposal with Safe Harbour confidence — version bump, inline as first-party code, patch, workaround, or advisory. Use when applying a fix for a triaged CVE, evaluating fix-type trade-offs across registry / source / distro patches, producing rollback-safe manifest edits with dry-run verification, or generating a CycloneDX SBOM after the fix lands.
- Installs packages
82 other projects use a version of this.
Adopted by
Most recently taken up by
- tyrantpiper/travel-pwatheir own version, first seen Nov 8, 2026
- Eclipter/agentstheir own version, first seen Nov 8, 2026
- Bhenderlong/vallorix-mcp-plugintheir own version, first seen Nov 8, 2026
- KadirHarmanc/nazar-skilltheir own version, first seen Nov 8, 2026
- zedarvates/frugal-skillstheir own version, first seen Nov 8, 2026
- ribato22/vibechecktheir own version, first seen Nov 8, 2026
Used with
Projects with it also use feature, frontend-code-review and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
bradtraversySkillfeature
Manage current feature workflow - start, review, explain or complete
Also in 10 projects that use this
chendongqiSkillfrontend-code-review
Trigger when the user requests a review of frontend files (e.g., `.tsx`, `.ts`, `.js`). Support both pending-change reviews and focused file reviews while applying the checklist rules.
Also in 4 projects that use this
GoogleSkillpr-creator
Also in 4 projects that use this
PJuniszewskiSkillcook
Feature development with guardrails. Plan → Review → Code → Ship.
Also in 3 projects that use this
vbrevikSkillwork
Use when the user says 'plan', 'todo', 'copy plan', 'append plan', 'resume plan', 'priorities', or 'what's next'.
Also in 4 projects that use this
Microsoft AzureSkilltest
Also in 12 projects that use this
Other versions82 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 82
- react/react★ 252ksame name
- facebook/react★ 252ksame name
- motiondivision/motion★ 35ksame name
- parcadei/Continuous-Claude★ 3.9ksame name
- parcadei/Continuous-Claude-v2★ 3.9ksame name
- parcadei/Continuous-Claude-v3★ 3.9ksame name
- crbnos/carbon★ 2.8ksame name
- Akylas/OSS-DocumentScanner★ 2.6ksame name
- kdlbs/kandev★ 1.1ksame name
- GoogleCloudPlatform/magic-modules★ 975same name
72 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
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
- iac-scanSkill
- license-checkSkill
- repo-impactSkill
- sast-scanSkill
- sbom-generateSkill
- secret-scanSkill
- secure-code-writeSkill
- typosquat-checkSkill
- verify-fixSkill
- vex-publishSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 11 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 75 edited versions we read keep these.
11
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 68
When Python charts are generated, display them inline and keep the Mermaid version as a text fallback.
- Distinctive: line 92
All reports MUST display:
- Distinctive: line 137
No test suite in project to validate: −0.15
- Very specific: line 161
If the package is not found in the repository, confirm with the user whether it's a transitive dependency.
- Distinctive: line 162
If manifest format is complex (Gradle, multi-module Maven), ask the user which file to edit
- Distinctive: line 163
If breaking changes are expected, warn the user and recommend testing thoroughly
- Distinctive: line 164
If version cannot be determined from any source, report "Unknown" with an explanation and ask the user to provide it
- Distinctive: line 165
If dry-run fails, restore backups and report the conflict
- Very specific: line 166
If .vulnetix/memory.yaml cannot be written (permissions, etc.), warn the user but do not block the fix workflow
- Distinctive: line 171
If a vulnerability has a CISA KEV due date, prioritize it as urgent
- Distinctive: line 173
Never downgrade to an older version as a "fix" — this may introduce other vulnerabilities
- Distinctive: line 174
When inlining code, always preserve license attribution
- Distinctive: line 175
When refactoring imports, verify the reduced import set still covers all usages in the codebase via Grep
- Very specific: line 179
If exploits are known, suggest running vulnetix vdb exploits $ARGUMENTS first to understand impact
- Very specific: line 180
After fixing, suggest re-running vulnetix_package_search (MCP) if adding new dependencies as alternatives
“Common” is measured: kept by at least 6 in 10 of the 75 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Vulnetix Fix Intelligence Skill
Use when
- You have a triaged CVE and want a concrete remediation proposal — not just "upgrade".
- A version bump conflicts with peer-deps and you need to evaluate inline-as-first-party-code (Type A0) or patch (Type B).
- You need to apply the fix, regenerate the lockfile, run a dry-run scan, and produce a CycloneDX SBOM in one workflow.
- Generating rollback-safe manifest edits with
.vulnetix-backupso you can revert. - Cross-checking registry fixes vs. distro patches vs. upstream source PRs.
Don't use for
- Just understanding the CVE — use
vulnetix_vuln(MCP) orvulnetix vdb vuln <id>orvulnetix_exploits(MCP). - Verifying the fix landed — use
verify-fix. - Resolving a peer-dep conflict that blocks the fix — use
dep-resolve. - Building a multi-CVE upgrade plan — use the
@dep-upgrade-orchestratoragent.
Conventions
Follows skills/_lib/contract.md. In short: use the vulnetix_* MCP tools when the agent has them and the CLI otherwise — both shape their own output, so there is no jq step any more. Independent calls go out as concurrent Bash tool calls in one message. One trailing suggestion, not a playbook. See the contract for surface selection, output style and memory writes.
This skill fetches fix intelligence for a vulnerability and proposes concrete, actionable remediation steps for the current repository.
Output & Analysis Guidelines
Primary output format: Markdown. All reports, tables, fix options, version diffs, and verification summaries MUST be presented as formatted markdown text directly — never generate scripts or programs to produce output that can be expressed as markdown.
Visual data — use Mermaid diagrams to display data visually when it aids comprehension. Mermaid renders natively in markdown and requires no external tools. Use it for:
- Dependency upgrade paths →
graph LRshowing current → target version with breaking change annotations - Fix option comparison →
quadrantChartplotting Safe Harbour confidence vs. version change magnitude - Dependency tree showing vulnerable path →
graph TD(root → parent → vulnerable dep) - Post-fix verification status →
flowchart(scan → tests → result)
Example — upgrade path:
```mermaid
graph LR
A[log4j-core 2.14.1] -->|patch| B[2.14.2]
A -->|minor| C[2.17.1 ✓ fix]
A -->|major| D[3.0.0]
style A fill:#f66,stroke:#333
style C fill:#6f6,stroke:#333
```If uv is available, richer visualizations can be generated with Python (matplotlib, plotly) and saved to .vulnetix/:
command -v uv &>/dev/null && uv run --with matplotlib python3 -c '
import matplotlib.pyplot as plt
# ... generate chart ...
plt.savefig(".vulnetix/chart.png", dpi=150, bbox_inches="tight")
'When Python charts are generated, display them inline and keep the Mermaid version as a text fallback.
Data processing — tooling cascade (strict order):
- jq / yq + bash builtins (preferred) —
jqfor JSON (API responses, CycloneDX SBOMs, package manager output),yqfor YAML (memory file). Pipe tohead,tail,cut,sed,grep,sort,uniq,wcfor shaping. - uv (for complex analysis or charts) — If dependency graph analysis, version comparison logic, or visualization beyond Mermaid are needed, check
uvfirst:command -v uv &>/dev/null && uv run --with pandas,matplotlib python3 -c '...' - python3 stdlib (last resort) — Only if
uvis unavailable. Usejson,csv,collections,statisticsmodules — no pip dependencies:command -v python3 &>/dev/null && python3 -c 'import json, sys; ...'
Never assume any runtime is available — always check with command -v before use. If all programmatic tools are unavailable, analyze manually with the Read tool and present results as markdown with Mermaid diagrams.
Package manager commands (npm install --dry-run, pip show, go mod tidy, cargo check, etc.) are exempt — they are executed directly as part of the fix workflow, not for data analysis.
Mandatory Reporting Requirements
Every output and report from this skill MUST include the following version and provenance information for each affected package:
Package Version Reporting
All reports MUST display:
| Field | Description | Required |
| Current Version | The version currently installed/resolved | Always |
| Version Source | How the version was determined (see below) | Always |
| Fix Target Version | The patched version to upgrade to | When available |
| Fix Source | Registry, distro patch, or source commit hash | Always |
| Safe Harbour Confidence | Confidence score 0.00–1.00 (see below) | Always |
Version Source Transparency
You MUST be transparent about how the current version was determined. Report one of:
- User-supplied — the user provided the version directly
- Manifest — read from a package manager manifest file (state which file)
- Lockfile — read from a lockfile (state which file)
- Installed — derived from the installed package on the filesystem:
- npm/node: read
node_modules/<pkg>/package.json(search parent directories too) - Python: run
pip show <pkg>or readsite-packages/<pkg>/METADATA - Go: read
go.sumor rungo list -m <pkg> - Rust: read
Cargo.lockor runcargo metadata - System binaries: run
<binary> --versionor checkPATHresolution - Ruby: run
gem list <pkg>or readGemfile.lock - Maven: read effective POM or local
.m2cache
- npm/node: read
- Context — the version was already present in conversation context
- Unknown — version could not be determined (explain why)
If the user does not supply the version and it is not in conversation context, you MUST attempt to derive it from the filesystem before reporting "Unknown". Search outside the current working directory if needed — check parent directories, global package manager directories, and gitignored directories (e.g., node_modules/, vendor/, .venv/, target/, __pycache__/).
Safe Harbour Confidence Score
Express the Safe Harbour score as a decimal between 0.00 and 1.00 where 1.00 = 100% confidence the fix resolves the vulnerability without introducing regressions or breaking changes.
Confidence tiers:
- High confidence (> 0.90): Patch-level bump in the same minor version, official registry release, well-tested fix, minimal API surface change
- Reasonable confidence (0.35–0.90): Minor version bump, distro-repackaged patch, source fix from upstream with commit hash, some API changes but backward-compatible
- Low confidence (< 0.35): Major version bump, unofficial patch, cherry-picked commit from development branch, significant API changes, no upstream release yet
What factors adjust confidence:
- Registry-published release with changelog: +0.15
- Distro-maintained patch (e.g., Debian, Ubuntu, RHEL): +0.10
- Upstream commit hash verified in release tag: +0.10
- CISA KEV listed (validated exploitation): +0.05 (urgency signal, not fix quality)
- Major version jump: −0.25
- No test suite in project to validate: −0.15
- Transitive dependency (indirect control): −0.10
- Built from source with untagged commit: −0.20
Report format for each affected package:
Package: <name>
Current Version: <version> (source: <version-source>)
Fix Target: <version> (source: <registry|distro <name> <version>|commit <hash>>)
Safe Harbour: <score> (<High|Reasonable|Low> confidence)Vulnerability Memory File (.vulnetix/memory.yaml)
This skill reads .vulnetix/memory.yaml at start and writes after every action. The full schema, field semantics, and write rules live in references/memory-yaml-schema.md — load that file before making any write.
Workflow
The step-by-step workflow (CLI calls, branching logic, output assembly) lives in references/workflow.md. Load it before executing — do not paraphrase from memory.
Error Handling
- If
vulnetix vdb fixesreturns no results, inform the user that no official fix is available yet. Automatically check for Snort rules by runningvulnetix vdb traffic-filters "$ARGUMENTS" -o json— if rules exist, present them as an immediate network-level mitigation. Also suggest workarounds or monitoring. Still record the vuln in.vulnetix/memory.yamlwithstatus: under_investigation. - If the package is not found in the repository, confirm with the user whether it's a transitive dependency. Record as
status: not_affected,justification: component_not_presentif confirmed absent. - If manifest format is complex (Gradle, multi-module Maven), ask the user which file to edit
- If breaking changes are expected, warn the user and recommend testing thoroughly
- If version cannot be determined from any source, report "Unknown" with an explanation and ask the user to provide it
- If dry-run fails, restore backups and report the conflict
- If
.vulnetix/memory.yamlcannot be written (permissions, etc.), warn the user but do not block the fix workflow
Security Notes
- Upgrade to the version Safe Harbour picks for the repository's strategy (
safeHarbourStrategyin.vulnetix/agent.yaml:safest,stable,latestorrolling; the agent policy defaults tosafest). Malware is removed before any pick.safest,stableandlatestare versions with no known vulnerability or exploit.safestis the highest stable release Safe Harbour clears.stableis the stable release closest to the one in use.latestis the highest stable release.rollingis the version closest to the one in use among the non-malware versions published on the release day of the highest version, pre-releases and versions with known vulnerabilities included. Safe Harbour is the realistic path and the version it picks may not be the latest release - If a vulnerability has a CISA KEV due date, prioritize it as urgent
- For critical/high severity vulnerabilities, recommend immediate patching even if it requires major version bumps
- Never downgrade to an older version as a "fix" — this may introduce other vulnerabilities
- When inlining code, always preserve license attribution
- When refactoring imports, verify the reduced import set still covers all usages in the codebase via Grep
Integration with Other Skills
- If exploits are known, suggest running
vulnetix vdb exploits $ARGUMENTSfirst to understand impact - After fixing, suggest re-running
vulnetix_package_search(MCP) if adding new dependencies as alternatives - The
vulnetix_exploits(MCP) andvulnetix_package_search(MCP) skills also read and contribute to.vulnetix/memory.yaml— decisions made in any skill are visible to all others - When no patch is available, Safe Harbour is low (< 0.35), or the user's triage decision is not a patch (e.g.,
risk-accepted,deferred,mitigated), automatically fetch Snort rules viavulnetix vdb traffic-filters "$ARGUMENTS" -o jsonand offer them as an interim network-level defense. Present each rule'srawTextfor direct IDS/IPS deployment.
Edge cases & gotchas
vdb fixes <id>response top-level keys aresummary,timeline,exploitationMaturity,kevRequiredAction,cweRemediations,fixes{registry,distributions,sourceCode,solutions,workarounds,configurations},aiAnalysis,vendorComments. Pipe through_lib/jq/fixes.jqto extract.- The
.fixes.registry[]array is empty for many ecosystems — distros and source patches are often the only options. Check.summary.{registryFixes,distributionPatches,sourceFixes}counts first. kevRequiredActionis the authoritative CISA directive — 300-400 chars typical. Never truncate when presenting to the user.exploitationMaturity.factors.crowdSecSightingsis the count of real-world attacks. Treat > 100 as "weaponised in the wild".- Dry-run scan with
vulnetix scan --evaluate-sca --severity high --exploits weaponizedreturns non-zero exit if a weaponised vuln remains — use that as the gate. - The 5 fix types (A0 inline, A version bump, B patch, C workaround, D advisory) are ranked by user-impact, not by reliability. Inline is highest-control but highest-maintenance.
- For
not-affecteddecisions backed by reachability analysis, setdecision.choice: not-affected(closed enum) — arbitrary strings break the dashboard.
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.

