vulnerability-triage
Skill0 starsChanged 40 days agoMITView on GitHub
Prioritizes vulnerability findings from scanners, pentest reports, and bug bounty submissions by real-world exploitability rather than raw CVSS, assigning internal severity tiers with fix SLAs. Use when someone asks "which of these CVEs do we fix first", "triage this scanner report", "is this CVSS 9.8 actually critical for us", or is facing a wall of security findings and needs an actionable queue. Do NOT use for enumerating threats in a design that has not shipped - use threat-model-stride instead; for an active exploitation incident in production, use sev-triage; for reviewing the code itself, use secure-code-review.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- jaskirat1616/grok-skillstheir own version, first seen Nov 1, 2026
- abevz/devops-skillstheir own version, first seen Oct 15, 2026
- JayRHa/agent-skillstheir own version, first seen Oct 15, 2026
- nobodyohm-web/Thottheir own version, first seen Oct 13, 2026
- ftrout/secops-claude-skillstheir own version, first seen Sep 18, 2026
- JayRHa/AgentSkillstheir own version, first seen Jun 9, 2026
Used with
Projects with it also use 0-template, github-actions-builder 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.
JayRHaSkill0-template
Template for creating a new Agent Skill. Copy this folder, rename it to your skill's kebab-case name, and fill in every section. Use this as the starting point whenever you author a new skill for the AgentSkills library.
Also in 3 projects that use this
JayRHaSkillgithub-actions-builder
Builds reliable, fast, and secure GitHub Actions CI/CD workflows with dependency caching, build matrices, scoped secrets, concurrency control, and reusable/composite workflows. Use this skill when the user asks to "create a GitHub Actions workflow", "set up CI", "add CI/CD", "fix a flaky/slow GitHub Actions pipeline", "add a build matrix", "cache dependencies in CI", "write a reusable workflow", "configure deployment with environments and secrets", or mentions files under .github/workflows.
Also in 3 projects that use this
xmqywxSkillmeeting-summarizer
Transform meeting transcripts into structured summaries with action items, decisions, follow-ups, and efficiency analysis. Works with any meeting format.
Also in 3 projects that use this
MehdibargachSkillokr-writer
Turn business goals into structured OKRs with measurable Key Results, linked initiatives, alignment check, and anti-goals. Takes a strategic priority and outputs ready-to-use OKRs.
Also in 3 projects that use this
pbc-osSkillsecrets-manager
Set up and configure cloud secrets management for your AI agent. Guides users through platform selection (GCP, AWS, Azure, 1Password, Doppler, HashiCorp Vault), account setup, CLI configuration, and secure credential storage.
Also in 3 projects that use this
- +7 more from JayRHa
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- superagent-ai/skills★ 77same name
- jaskirat1616/grok-skills★ 22same name
- JayRHa/agent-skills★ 12same name
- JayRHa/AgentSkills★ 12same name
- abevz/devops-skills★ 0same name
- ftrout/secops-claude-skills★ 0same name
- nobodyohm-web/Thot★ 0same name
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 repository6 other files it gives its agents.
- dependency-risk-auditSkill
- pii-scrubberSkill
- secrets-hygieneSkill
- secure-code-reviewSkill
- soc2-evidence-helperSkill
- threat-model-strideSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 10 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 48
Never mark a false positive on intuition.
- Distinctive: line 78
Do not sort the queue by CVSS descending - that is the failure mode this skill exists to prevent.
- Distinctive: line 79
Do not triage finding-by-finding before grouping by root cause.
- Distinctive: line 80
Do not dismiss a finding as a false positive without a documented, specific reason - intuition dismissals are how real vulnerabilities get …
- Distinctive: line 81
Do not treat "not in KEV, no public PoC" as safe.
- Distinctive: line 82
Do not silently extend SLA deadlines.
- Distinctive: line 83
Do not let a compensating control both downgrade a finding and go unnamed - an unnamed control cannot be verified and will eventually be …
- Distinctive: line 87
Every finding group carries an internal severity that cites reachability, auth requirement, exploit availability, and config match - not a …
- Distinctive: line 89
Every Critical maps to a 24-hour SLA, High to 7 days, Medium to 30 days, with a named owner each.
- Distinctive: line 90
Every false positive has a documented reason from the accepted list, and Critical/High dismissals show a second reviewer.
“Common” is measured: kept by at least 6 in 10 of the 7 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
Vulnerability Triage
Vulnerability scanners produce volume, not priority. Effective triage cuts the list to an actionable queue engineers can work without burning out or quietly ignoring legitimate risk. The costly mistake this skill prevents is sorting by CVSS descending - which puts an unreachable library bug ahead of a trivially exploitable flaw on the public edge, and spends the team's scarce patching capacity in exactly the wrong order.
Operating procedure
Grouping comes before scoring because one root-cause fix can close ten findings; scoring before grouping wastes ten triage passes on one bug.
Step 1: Gather inputs
- The finding list with source (scanner, pentest, bounty) and reported CVSS per item.
- An exposure map: which services are internet-facing, which are internal-only, and what sits behind VPN, WAF, or MFA. If none exists, build a rough one from the load balancer and DNS config and label it a guess.
- Deployed versions and configuration for the affected components - the vulnerable config often is not the deployed config.
- Access to the CISA KEV catalog and exploit-availability data for the findings in question.
- The team's remediation capacity, so SLAs are commitments rather than fiction.
Step 2: Deduplicate and group by root cause
Scanners report the same root cause through multiple symptoms. Group findings by shared cause (example: every XSS finding traced to the same template-engine misconfiguration) before scoring anything. One fix may close ten findings - identify these first for maximum leverage.
Step 3: Score exploitability, not just CVSS
CVSS base scores measure theoretical severity in an ideal attacker environment, not this environment. Use the standard bands only as the scanner's starting label - 9.0-10.0 Critical, 7.0-8.9 High, 4.0-6.9 Medium, 0.1-3.9 Low - then answer four questions per finding group before assigning internal priority:
- Is the vulnerable component reachable from an untrusted input source (public internet, anonymous API, user-controlled data)?
- Does exploitation require authentication? At what privilege level?
- Is there a public proof-of-concept, or active in-the-wild exploitation (check the CISA KEV catalog)? KEV-listed findings on reachable components jump to the top of their tier regardless of score.
- Does the deployed configuration match the vulnerable configuration (a path traversal in a feature the app does not use is a different conversation)?
The governing rule: a CVSS 9.8 in an internal-only admin service behind VPN with MFA is lower priority than a CVSS 6.5 on a public unauthenticated endpoint.
Step 4: Assign internal severity with SLAs
- Critical: remotely exploitable, no auth required, leading to RCE, data exfiltration, or full account takeover. Fix within 24 hours.
- High: exploitable with low privilege or one chaining step, significant data exposure or service disruption possible. Fix within 7 days.
- Medium: requires significant user interaction or specific non-default config, limited impact scope. Fix within 30 days.
- Low: defense-in-depth improvement, informational, or requires physical access. Schedule in the next sprint cycle.
Step 5: Document false positives systematically
Never mark a false positive on intuition. Record the specific reason:
- Component not deployed in this environment.
- Vulnerable code path is dead code - reference the specific unreachable call path.
- A compensating control prevents exploitation - name the control and where it is enforced.
False-positive decisions on Critical and High findings require a second reviewer.
Step 6: Ticket, track, escalate
Every finding above Low gets a ticket with internal severity, finding source, assigned owner, and SLA due date. Track SLA breach rate as an engineering health metric. When a Critical or High misses its SLA, escalate to engineering leadership - never silently extend the deadline, because a slipped deadline nobody sees is a risk acceptance nobody approved.
Worked example: two findings, inverted priority
| Finding A | Finding B | |
| Report | RCE in an admin service library, CVSS 9.8 | IDOR on a customer API endpoint, CVSS 6.5 |
| Reachability | Internal-only, behind VPN + MFA | Public internet, unauthenticated |
| Exploit status | No public PoC, not in KEV | Trivial to reproduce from the bounty report |
| Config match | Vulnerable module loaded but feature unused | Deployed exactly as reported |
| Internal severity | High - RCE still warrants urgency, but exploitation requires a VPN-compromise chain first. Fix within 7 days. | Critical - anonymous access to other customers' data, live today. Fix within 24 hours. |
Verdict: fix B first. Sorting by CVSS would have inverted this - the 9.8 would consume the emergency window while customer data sat exposed behind the 6.5.
Deliverable
Produce a triage queue containing: findings grouped by root cause with the leverage fixes flagged, each group's internal severity with the exploitability rationale (reachability, auth requirement, exploit availability, config match), the SLA due date and owner per group, and a false-positive log with documented reasons and second-reviewer sign-off for Critical/High dismissals.
Do NOT
- Do not sort the queue by CVSS descending - that is the failure mode this skill exists to prevent.
- Do not triage finding-by-finding before grouping by root cause; it burns effort and hides leverage fixes.
- Do not dismiss a finding as a false positive without a documented, specific reason - intuition dismissals are how real vulnerabilities get archived.
- Do not treat "not in KEV, no public PoC" as safe; it lowers urgency, it does not remove the finding.
- Do not silently extend SLA deadlines; escalate misses so risk acceptance is explicit and owned.
- Do not let a compensating control both downgrade a finding and go unnamed - an unnamed control cannot be verified and will eventually be removed by someone who never knew it mattered.
Quality bar
- Every finding group carries an internal severity that cites reachability, auth requirement, exploit availability, and config match - not a copied CVSS number.
- Root-cause groups exist, and at least the top leverage fix is identified.
- Every Critical maps to a 24-hour SLA, High to 7 days, Medium to 30 days, with a named owner each.
- Every false positive has a documented reason from the accepted list, and Critical/High dismissals show a second reviewer.
- SLA breach rate is reported, not just individual ticket states.
Escalation
Evidence of active exploitation - KEV listing plus matching anomalous logs, or a bounty reporter demonstrating live access - turns triage into incident response: route to sev-triage immediately. Design-stage threat enumeration for unshipped features belongs with threat-model-stride; hands-on review of suspect code with secure-code-review; leaked credentials discovered inside findings with secrets-hygiene.
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.

