CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/multi-tool-finding-triage

Use when several security scanners (SAST, DAST, secrets, SCA, container, IaC) produce separate reports and the team needs one BLOCK or PASS. Normalizes and dedupes findings, records which scanners agree, rejects waivers without expiry or approver, adds EPSS and KEV, and writes one PR comment.

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

Overview
Quality
Evals
Security
Files

Quality

Content

85%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 well-engineered method skill: fully sequenced workflow with halt conditions and explicit waiver-rejection reporting, executable core functions, and a clean one-level-deep reference split. The two weaknesses are the duplicated report template between Step 7 and the worked example, and the CI section's dependency on a triage.py driver that the bundle does not provide.

Suggestions

Trim the duplication between the Step 7 report template and the worked example's filled-in report — keep one canonical template and let the worked example show only the deltas (e.g., the KEV-rejected waiver line).

Ship the triage driver the CI section invokes (`ci/triage.py`) in a scripts/ directory, or state explicitly that the inline functions plus references/cve-enrichment.md's verdict function are the components from which it is assembled.

Tighten the "Differentiation axis" and "Report hygiene" paragraphs, which restate constraints already demonstrated by the worked example and the report template.

DimensionReasoningScore

Conciseness

The body is largely efficient — compact functions, a dense anti-patterns table, no explanations of concepts Claude already knows — but the full report template in Step 7 (~45 lines) substantially duplicates the worked example's filled-in report, and the "Differentiation axis" and "Report hygiene" paragraphs restate what the examples already show. This fits anchor 4 (minor instances that could be trimmed) rather than anchor 3, since there is no padded or unnecessary conceptual explanation.

4 / 5

Actionability

The `dedupe`, `priority`, and `validate_waiver` functions are complete, executable Python, and the CI commands are real (the EPSS feed curl was verified to serve the expected gzip CSV). However, the CI snippet runs `python ci/triage.py --fail-on critical` while no such script exists anywhere in the bundle, so the pipeline is not runnable end-to-end as written — a concrete minor gap that places this at anchor 4 rather than the fully copy-paste-ready anchor 5.

4 / 5

Workflow Clarity

Seven clearly sequenced steps with explicit validation checkpoints: Step 1 halts on `NO_SCANNER_OUTPUT` and on a configured scanner with no artifact, Step 5 reports every rejected waiver instead of silently no-op'ing, Step 6 gates the post-waiver list, and the exit-code semantics plus the "re-run the scanners and this triage" loop close the feedback cycle. This matches the anchor-5 pattern of explicit validation with error-recovery feedback.

5 / 5

Progressive Disclosure

The body keeps only the core logic inline and splits detail tables and schemas into three real, well-signaled reference files (finding-normalization.md, cve-enrichment.md, waiver-schema.md), each linked at the exact step where it is needed with a descriptive lead-in (e.g., "The per-domain `key_fn` table ... : references/finding-normalization.md"). References are one level deep and all referenced paths exist, matching anchor 5.

5 / 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 strong description: third-person, concrete, and explicit about both what the skill does and when to use it, with a clear multi-scanner niche and minimal conflict risk. The only weakness is slightly incomplete natural-keyword coverage (e.g., no "vulnerability" or "code scanning" phrasing).

DimensionReasoningScore

Specificity

The description lists five concrete actions covering the full pipeline — "Normalizes and dedupes findings, records which scanners agree, rejects waivers without expiry or approver, adds EPSS and KEV, and writes one PR comment" — which matches the comprehensive-coverage anchor; no step of the described pipeline is missing, so it is not the 4 anchor.

5 / 5

Completeness

It explicitly answers "when" with "Use when several security scanners ... produce separate reports and the team needs one BLOCK or PASS" and "what" with the five-action list, both with concrete trigger phrases — the anchor-5 pattern; anchor 4 would require the when-clause to be less explicit, which it is not.

5 / 5

Trigger Term Quality

"security scanners (SAST, DAST, secrets, SCA, container, IaC)", "BLOCK or PASS", and "PR comment" are natural terms users would say, but common variations such as "vulnerability reports" or "code scanning" are absent. This is good coverage with a few natural terms missing (anchor 4), short of the synonym-level completeness of anchor 5.

4 / 5

Distinctiveness Conflict Risk

The trigger requires multiple scanners producing separate reports needing one verdict, a niche clearly distinct from single-scanner tooling or general security review; conflict risk with other skills is minimal, matching anchor 5 rather than the minor-overlap anchor 4.

5 / 5

Total

19

/

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

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

On this page