CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/vex-author

Authors and validates OpenVEX documents - produces `not_affected`, `affected`, `fixed`, and `under_investigation` statements with justification codes using `vexctl create`; attaches VEX assertions to container images; outputs `.openvex.json` files consumed on a downstream VEX-filter / vulnerability-prioritization path. Use when a scanner flags a CVE that analysis confirms is not exploitable in your deployment, and a machine-readable `not_affected` assertion is needed to suppress false positives without discarding the finding from the audit trail.

73

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable, well-sequenced skill with executable commands at every step and genuine validation feedback loops, kept lean by table-based presentation. The main improvement room is mild duplication between steps and splitting the CI/Example material into reference files for better progressive disclosure.

DimensionReasoningScore

Conciseness

The body is table-driven and pipeline-specific (justification codes, @context URL, merge/attest semantics) rather than explaining concepts Claude already knows. Minor trimmable duplication remains: the Step 4 create command is repeated in the Example section and the Step 7 jq validation is repeated verbatim in the Step 9 CI snippet.

4 / 5

Actionability

Every step ships copy-paste-ready commands: install (go install/brew), vexctl create with all flags, merge, attest --attach --sign, a jq structural check, vexctl filter for SARIF preview, and a complete CI yaml job. The generated-document JSON example shows the expected output verbatim.

5 / 5

Workflow Clarity

Steps 1-9 are clearly sequenced with an explicit validation checkpoint (Step 7 checklist plus jq gate that "must be empty before handing off") and a preview/feedback loop (Step 8 filter confirms suppression before committing). The Anti-patterns table supplies error-recovery guidance for each failure mode, matching the checklist-plus-feedback-loop anchor.

5 / 5

Progressive Disclosure

A single-file skill with no references/, scripts/, or assets/ bundle; sections are well-organized and external links are clearly defined and re-summarized in a References section. Minor gap: some self-contained blocks (the full CI yaml job, the worked Example scenario) would sit more naturally in one-level-deep reference files to slim the ~290-line main body.

4 / 5

Total

18

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A dense, well-targeted description that answers what and when explicitly with concrete tooling, statuses, and output artifacts, in third-person voice. The only minor gap is a handful of natural synonyms (waive/exception/triage) that would broaden trigger matching.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "produces not_affected, affected, fixed, and under_investigation statements with justification codes using vexctl create", "attaches VEX assertions to container images", "outputs .openvex.json files" — all in third-person voice with no vague filler. Coverage of the skill's capabilities is comprehensive across authoring, validation, attachment, and downstream consumption.

5 / 5

Completeness

Both what and when are explicit: what is "Authors and validates OpenVEX documents... attaches VEX assertions to container images; outputs .openvex.json files", and when is "Use when a scanner flags a CVE that analysis confirms is not exploitable in your deployment, and a machine-readable not_affected assertion is needed to suppress false positives". This matches the clear-what-plus-concrete-trigger-phrase anchor exactly.

5 / 5

Trigger Term Quality

Good natural-phrase coverage: "a scanner flags a CVE", "not exploitable in your deployment", "suppress false positives", plus the concrete file extension ".openvex.json" and tool name vexctl. A few natural synonyms users might say are absent (e.g. "waive", "exception", "triage", "SBOM attestation"), keeping it just short of the comprehensive-synonyms anchor.

4 / 5

Distinctiveness Conflict Risk

The niche is unambiguous — OpenVEX documents, vexctl, .openvex.json output, VEX-filter/vulnerability-prioritization consumption — with triggers tied to scanner-flagged CVEs needing machine-readable suppression. It would not plausibly fire for generic vulnerability-analysis or container-security skills.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

Table of Contents