CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/multi-tool-finding-triage

Merges two or more security scanner reports into one gate. Use when you need a single BLOCK or PASS decision from multiple scanners instead of reading N separate reports. Normalizes each report into one common finding format (a canonical `Finding`), deduplicates on a per-domain key while recording which scanners agree (`caught_by` consensus), validates a waiver (finding-suppression) file, rejecting any missing `expires:` / `approved_by:` / `reason:` or expired, enriches CVE findings with EPSS (exploit-probability) and CISA KEV (known-exploited catalog), then applies a `fail_on` severity threshold to emit BLOCK or PASS plus a bucketed pull-request comment. Works across static (SAST), dynamic (DAST), secret, dependency (SCA), container, and IaC scanners. To run a single scanner instead use semgrep-rules, codeql-queries, bandit-python, or gosec-go; this runs after them to merge output - the cross-scanner gate, not a single-scanner wrapper.

74

Quality

93%

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

85%

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

The skill body is highly actionable with executable code and a clear, checkpointed workflow, and it uses progressive disclosure well with real reference files. The only weak dimension is conciseness — the worked example, anti-patterns, and verbatim comment add length that could be trimmed.

Suggestions

Trim or collapse the full 'Worked example' section (lines 200-253) into a shorter pointer, since the Step 7 report template already demonstrates output format.

Consider moving the 'Limitations' list into a reference file so the main body stays a lean overview.

Shorten the duplicated sample PR comment in the Worked example — it repeats the Step 7 template verbatim.

DimensionReasoningScore

Conciseness

The body is information-dense and avoids explaining concepts Claude already knows, but at ~320 lines with a full worked example, an anti-pattern table, a limitations section, and a verbatim sample PR comment, several passages could be tightened without losing substance — the 'mostly efficient but could be tightened' anchor rather than the lean level 3. It does not rise to the verbose, concept-explaining level 1 because nearly every token concerns non-obvious domain specifics.

2 / 3

Actionability

Provides executable, complete code (`dedupe`, `priority`, `validate_waiver`), a concrete CI-integration YAML with real `gh pr comment` flags and EPSS/KEV download commands, and a copy-paste report template — matching 'fully executable code/commands; specific examples; copy-paste ready' and clearly above the pseudocode level 2.

3 / 3

Workflow Clarity

A clear 7-step sequence anchored by the `collect -> normalize -> dedupe -> enrich -> waive -> verdict -> report` diagram, with explicit validation checkpoints for a batch/gate operation — halt on `NO_SCANNER_OUTPUT`, halt when a configured scanner produced no artifact, and surfacing rejected waivers rather than silent no-ops — meeting the 'clear sequence with explicit validation steps' anchor and not the level 2 case with implicit checkpoints.

3 / 3

Progressive Disclosure

The body is a well-organized overview that links out one level deep to three real, verified bundle files — `references/finding-normalization.md`, `references/cve-enrichment.md`, and `references/waiver-schema.md` (all present) — each clearly signaled at the relevant step, matching 'clear overview with well-signaled one-level-deep references' and not the inline-heavy or poorly-signaled level 2.

3 / 3

Total

11

/

12

Passed

Description

100%

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

The description is specific, trigger-rich, and explicit about both what it does and when to use it, while actively distinguishing itself from single-scanner sibling skills. It is one of the strongest possible descriptions for this rubric.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — "Merges two or more security scanner reports", "Normalizes each report into one common finding format", "deduplicates on a per-domain key", "validates a waiver ... file, rejecting any missing `expires:` / `approved_by:` / `reason:`", "enriches CVE findings with EPSS ... and CISA KEV", "applies a `fail_on` severity threshold to emit BLOCK or PASS plus a bucketed pull-request comment" — matching the 'lists multiple specific concrete actions' anchor rather than the partial level 2.

3 / 3

Completeness

Explicitly answers both what (the full collect-through-report pipeline) and when via an explicit "Use when ..." clause, satisfying the 'clearly answers both what AND when with explicit triggers' anchor; not the level 2 case where the trigger is only implied.

3 / 3

Trigger Term Quality

Opens with a natural third-person "Use when you need a single BLOCK or PASS decision from multiple scanners instead of reading N separate reports", covering real phrasings a user would say; not merely jargon, and clearly above the 'some relevant keywords but missing common variations' level 2.

3 / 3

Distinctiveness Conflict Risk

Carves a clear niche and actively de-conflicts by naming sibling skills — "To run a single scanner instead use semgrep-rules, codeql-queries, bandit-python, or gosec-go; this runs after them to merge output - the cross-scanner gate, not a single-scanner wrapper" — making overlap with those skills unlikely, matching the 'clear niche with distinct triggers' anchor.

3 / 3

Total

12

/

12

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

Table of Contents