本文へ移動
cccskills
無料GitHub で公開

vex-publish

Generate OpenVEX / CycloneDX VEX attestations from `.vulnetix/memory.yaml` triage decisions, optionally sign with cosign, optionally upload to Vulnetix and post to a GitHub PR. Use when documenting triage decisions for supply-chain consumers, attaching VEX to a CycloneDX SBOM, or satisfying customer attestation requests.

インストール方法を見る

含まれるファイル(3)

  • SKILL.md4.1 KB
  • evals/evals.json3.1 KB
  • evals/trigger-eval.json1.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Vulnetix VEX Publication Skill

Use when

  • Triage cycle is complete and you need to publish VEX statements for supply-chain consumers.
  • A customer requested OpenVEX attestations for a specific delivery.
  • Attaching VEX to a CycloneDX SBOM in a compliance bundle.
  • Posting VEX status as a PR comment so reviewers see the security disposition.
  • Auditing the decision history — VEX is the durable record of what was decided when.

Don't use for

  • Making the triage decisions — use vulnetix_vuln (MCP) or vulnetix vdb vuln <id>, vulnetix_exploits (MCP), fix first; this skill publishes existing decisions.
  • Generating the SBOM itself — use sbom-generate.

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.

Turns the decisions captured in .vulnetix/memory.yaml into a signed/uploadable VEX document.

Step 1: Load memory

Read .vulnetix/memory.yaml. Collect every entry with a non-default decision.choice (i.e. anything that isn't investigating).

Step 2: Map decisions → VEX status

Mapping (Vulnetix CLI uses the same):

  • not-affected / risk-avoided → not_affected
  • fix-applied → fixed
  • risk-accepted / deferred / mitigated → affected (with mitigations)
  • investigating → under_investigation

Step 3: Generate VEX

vulnetix triage --provider vulnetix --vex-format ${FORMAT:-openvex} -o json > .vulnetix/vex/${TIMESTAMP}.vex.json

Default format openvex. If user passes --format cyclonedx, the CLI emits CycloneDX VEX.

Step 4: Upload (conditional)

If user passed --upload:

vulnetix upload --file .vulnetix/vex/${TIMESTAMP}.vex.json

Otherwise, skip and report the local file path.

Step 5: GitHub PR comment (conditional)

If binaries.gh: true and we're inside a PR (env GITHUB_REF or gh pr view --json number):

gh pr comment "$PR_NUMBER" --body-file .vulnetix/vex/${TIMESTAMP}.vex.summary.md

Where the summary file is a short Markdown rendering of the VEX (auto-generated from the JSON).

Step 6: Render report

VEX statements: N
- not_affected: N
- fixed: N
- affected (with mitigations): N
- under_investigation: N
File: .vulnetix/vex/<timestamp>.vex.json
Uploaded: <yes|no>
PR comment: <yes|no>

Edge cases & gotchas

  • VEX status maps from decision.choice via a closed dict — not-affected/risk-avoided → not_affected, fix-applied → fixed, risk-accepted/deferred/mitigated → affected (with mitigation), investigating → under_investigation. Custom decision strings break the mapping.
  • --format openvex (default) and --format cyclonedx produce different schemas; consumers downstream typically prefer one or the other.
  • --upload sends to the Vulnetix triage endpoint — requires authenticated CLI; community-tier may rate-limit.
  • PR comment posting needs binaries.gh: true AND the current directory inside a PR-context git repo (CI envs typically have GITHUB_REF set).
  • Signing with cosign uses keyless OIDC by default; the user must have a valid OIDC identity (CI runners typically do, dev laptops may not).
  • Memory schema requires decision.choice populated for every entry to be published — entries with status: under_investigation are filtered out unless --include-investigating is passed.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Dockerfile / Containerfile / compose analysis plus optional Trivy / Grype / Syft composition when those binaries are present. Use when reviewing a Dockerfile PR, gating `docker build`, building an image SBOM, evaluating base-image risk, or auditing a registry image for CVEs.

日本語の概要は準備中です。原文の説明を表示しています。

Vulnetix/pix-ai-coding-assistant92026年9月28日 更新

dashboard

無料

Show what this repository has already decided about its vulnerabilities, read from the durable record rather than by scanning again — open versus resolved, the decision taken on each, and what is still waiting. Use when picking up triage after a break, auditing past decisions, onboarding to a repository with security history, or checking nothing high-severity is open before a release.

日本語の概要は準備中です。原文の説明を表示しています。

Vulnetix/pix-ai-coding-assistant92026年9月28日 更新

Dependency-conflict resolution when a `fix` version bump fails — diagnose the peer-dep tree, find a compatible safe version set, propose package-manager overrides (`overrides`/`resolutions`/`replace`/`[patch]`), fall back to safe-harbour inline patching. Use when an upgrade is blocked by transitive constraints, a peer-dep conflict surfaces, or you need to override a vulnerable transitive without bumping the parent.

日本語の概要は準備中です。原文の説明を表示しています。

Vulnetix/pix-ai-coding-assistant92026年9月28日 更新

Work through which package to add for a capability, and what each option costs — maintenance, licence, bundle weight, transitive risk, and whether the platform already does it. Use when someone needs a library for a job and has not picked one yet, when weighing two candidates, or when a package looks convenient but unmaintained.

日本語の概要は準備中です。原文の説明を表示しています。

Vulnetix/pix-ai-coding-assistant92026年9月28日 更新

IDS/IPS detection content for a CVE — Snort/Suricata-compatible rules, YARA signatures, ProjectDiscovery Nuclei templates, traffic-filter rules. Capability-aware: skips families when the binary is not installed (no Snort = no Snort output). Use when deploying defences for a CVE without a patch, augmenting SAST with active detection, or feeding the SOC engineering pipeline.

日本語の概要は準備中です。原文の説明を表示しています。

Vulnetix/pix-ai-coding-assistant92026年9月28日 更新

eol-check

無料

End-of-life detection for runtimes (Node, Python, Java, Go, .NET) and key packages — surfaces past-EOL items, items reaching EOL within 90 days, and EOL base images for containers. Use when planning a runtime upgrade, auditing for unsupported versions, gating a deploy against EOL deps, or producing a remediation roadmap.

日本語の概要は準備中です。原文の説明を表示しています。

Vulnetix/pix-ai-coding-assistant92026年9月28日 更新

Vulnetix のスキルをすべて見る

このスキルの問題を報告する