Draft a GitHub security advisory (GHSA) for nrwl/nx from a vulnerability report. Investigates the affected code, determines affected packages and version ranges, proposes a CVSS score and CWEs, and writes a draft advisory following the layout of previously published nrwl/nx advisories. Output is a local draft only — a human reviews and publishes. Use when a security vulnerability report needs to become an advisory, or when the user says "draft an advisory", "write a GHSA", or "security advisory for <report>".
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Turn a vulnerability report into a ready-to-review GitHub security advisory draft
for nrwl/nx. This skill drafts; it NEVER publishes. The final review and the
publish step are always performed by a human.
Save the finished draft to tmp/security-advisories/<slug>/advisory.md (gitignored),
where <slug> is a short kebab-case name for the vulnerability
(e.g. graph-server-cors).
The argument is the vulnerability report: a file path, pasted text, or a pointer
(e.g. a GitHub private vulnerability report / GHSA draft ID, fetchable via
gh api /repos/nrwl/nx/security-advisories/<GHSA-ID>). If no report is provided,
ask for one — do not invent a vulnerability.
Work through these phases in order. Do not skip the investigation phases — the advisory must be grounded in the actual code, not just the reporter's claims.
> [!IMPORTANT] callout.git log -S '<code fragment>'
or git log --follow on the file, then gh pr list --search <sha> to map
the commit to a PR.git tag --contains <sha> | sort -V | head.npm view <pkg> versions --json that
the patched versions are actually published.Write tmp/security-advisories/<slug>/advisory.md with two parts:
ecosystem | package | vulnerable version range | patched versions.Then print the draft location and a short recap (severity, affected packages, patched versions) so the reviewer can sanity-check at a glance.
Follow the structure of previously published nrwl/nx advisories (e.g. GHSA-vp3h-ghgh-jr7g, GHSA-g2r8-wvmj-jf5w). Sections, in order:
## Summary
One short paragraph: what the flaw is, who is exposed, and the practical
impact. If the realistic impact differs from the theoretical worst case,
state the realistic one here.
## Severity
**<High/Medium/...>** — CVSS vX.Y **<score>** (`<full vector string>`)
One or two sentences on exploitation preconditions (what an attacker needs,
what the victim must be doing).
- **CWE-NNN**: <name>
## Affected & Patched Versions
Per-package version ranges and patched versions. State which version
introduced the flaw. Call out release lines that are NOT patched and where
those users should go.
> [!IMPORTANT]
> Use callouts like this to scope the blast radius when the investigation
> shows that common configurations or related surfaces are unaffected —
> name them explicitly and say why they are unaffected.
## Remediation
Exact upgrade targets ("Upgrade to `X.Y.Z` or later"). Note when the fix is a
drop-in vs. requires configuration changes. For deprecated packages, link the
migration guidance instead of a patched version.
## Details
Technical walkthrough: the vulnerable code (short, real snippets from the
repo), why it is exploitable, and what the fix changes. Be precise about what
is attacker-controlled and what is not — if part of the attack requires
capabilities that already imply code execution, say so.
## References
- Fix: <PR link(s)>
- Introduced: <PR link(s) that introduced the vulnerable code>
- Any related advisories, CVEs, or docs
## Credits
- **<Name>** (<affiliation or GitHub handle>) — Reportergh api, they run that themselves after review.If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.