CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

exempt-vuln

Create Harness STO security exemptions (waivers) for vulnerabilities found by SAST, SCA, DAST, secret, container, or IaC scanners. Works from both entry points in the Harness UI: the Vulnerabilities tab of a specific pipeline execution (Target, Pipeline, or Project scope) and the All Issues page (Project scope only). Supports single creates with per-row error tolerance and bulk creates of up to 100 issues in one all-or-none transaction. The requester is derived automatically from the authenticated user. Use when a user wants to exempt a vulnerability, waive a CVE, suppress a security finding, mark a finding as a false positive, accept the risk, or exempt several vulnerabilities at once. Trigger phrases: exempt vuln, exempt vulnerability, exempt CVE, waive vulnerability, create exemption, suppress security issue, false positive, accept risk, ignore CVE, bulk exempt.

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

77%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 operational skill with excellent pre-write validation, error-recovery feedback loops, and concrete MCP call shapes — the workflow and actionability dimensions are exemplary. The weaknesses are token efficiency (core rules repeated 3-4x across sections) and structure (a ~500-line monolithic file where Examples, Performance Notes, and Troubleshooting belong in one-level-deep reference files).

Suggestions

State each core rule once in its authoritative section and cross-reference it elsewhere: the 100-item cap, the target_id/pipeline_id mutual-exclusion rule, and the All-Issues-page-is-Project-only limitation each appear in 3-4 sections (Steps 2/5b/Performance Notes/Troubleshooting; Steps 3/5/5b/Example 4/Troubleshooting; Steps 1/3/Example 3/Troubleshooting). Cutting the restatements would materially shrink the file.

Move the Examples section, Performance Notes, and the Troubleshooting table into references/ files (e.g., references/examples.md, references/troubleshooting.md) and link to them from the main workflow, keeping SKILL.md as a lean overview of the six-step process.

Trim conversational framing ('Chat is a narrow surface — a 50-row table is unreadable', 'That's three reads at most, plus one write. Never more.') to compact imperative notes; the guidance itself needs no persuasion.

DimensionReasoningScore

Conciseness

The content is mostly efficient — the backend-specific knowledge (all-or-none rollback, diff pagination, target_id resolution recipe, 100-item preflight) is non-obvious and earns its tokens — but several core rules are restated three to four times: the 100-issue cap (Steps 2, 5b, Performance Notes, Troubleshooting), the target_id/pipeline_id mutual-exclusion rule (Steps 3, 5, 5b, Example 4, Troubleshooting), and the All-Issues-page-is-Project-only limitation (Steps 1, 3, Example 3, Troubleshooting). This repetition goes beyond the 'minor instances that could be trimmed' of anchor 4, so anchor 3 fits best.

3 / 5

Actionability

Fully executable guidance throughout: exact MCP call blocks with parameter names and values (harness_list/harness_get/harness_create shapes), field tables with defaults and constraints, literal error strings ('items must contain at most 100 entries', 'Missing required fields for security_exemption'), a four-way response-status handling table, and worked examples with concrete payloads. Copy-paste ready and covering the common cases including mixed-scope bulk and error recovery.

5 / 5

Workflow Clarity

A clear six-step sequence with explicit validation checkpoints: scope rules enforced before calling the API, an echoed payload confirmation gate ('Proceed? (yes/no)') before every write, count-before-offer for bulk selection, and explicit feedback loops for error recovery (read results[0].error, fix root cause, resubmit the full corrected list; MIXED_UNEXPECTED treated as a server bug with no auto-retry). The batch-operation validation requirements are fully satisfied, including a dedicated Troubleshooting table.

5 / 5

Progressive Disclosure

The single SKILL.md is well-sectioned with clear headers, but at ~500 lines everything is inlined: the Examples section, Performance Notes, and the large Troubleshooting table are natural candidates for one-level-deep reference files (e.g., examples.md, troubleshooting.md), and no bundle files exist to offload them. This matches anchor 3 ('content that should be separate is inline') rather than anchor 4's 'most content appropriately placed with references'.

3 / 5

Total

16

/

20

Passed

Description

100%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 strong description: concrete capabilities, explicit scope semantics for both UI entry points, a dedicated 'Use when' clause, and a rich trigger-phrase list with synonyms. It is on the long side for a description field, but every clause is informative rather than padded, so no verbosity penalty applies. No false-positive risk: all four dimensions sit squarely on their top anchors.

DimensionReasoningScore

Specificity

Lists multiple concrete, comprehensive actions: single creates with per-row error tolerance, bulk creates of up to 100 issues in one all-or-none transaction, two distinct UI entry points with their respective scope sets, and automatic requester derivation. This matches the 'multiple specific concrete actions; comprehensive coverage' anchor exactly, with no coverage gaps that would place it at 4.

5 / 5

Completeness

Explicitly answers both 'what' (create Harness STO security exemptions/waivers, single or 100-item bulk, at Project/Pipeline/Target scope) and 'when' via a dedicated 'Use when a user wants to exempt a vulnerability, waive a CVE, suppress a security finding, mark a finding as a false positive, accept the risk' clause with concrete trigger phrases — the exact anchor-5 pattern.

5 / 5

Trigger Term Quality

The trigger list ('exempt vuln, exempt vulnerability, exempt CVE, waive vulnerability, create exemption, suppress security issue, false positive, accept risk, ignore CVE, bulk exempt') plus the 'Use when' phrasings cover natural synonyms users would actually say, matching the comprehensive-synonyms anchor rather than the 'a few natural terms missing' anchor at 4.

5 / 5

Distinctiveness Conflict Risk

The description occupies a clear niche (Harness STO security exemptions) with domain-specific trigger terms ('waive a CVE', 'suppress security finding', 'bulk exempt'), making it highly distinguishable from generic security or tooling skills with minimal conflict risk.

5 / 5

Total

20

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (519 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository

harness/harness-ai

Path

plugins/claude/skills/exempt-vuln/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.