CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dependency-triage

Scan package manifests and lockfiles for outdated packages and known CVEs. Groups updates by risk (patch, minor, major). Use in dependency sweeper loops.

Quality

77%

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

Fix and improve this skill with Tessl

tessl review fix ./starters/dependency-sweeper/.codex/skills/dependency-triage/SKILL.md

The canonical home for this skill is dependency-triage in cobusgreyling/loop-engineering

SKILL.md
Quality
Evals
Security

Quality

Content

72%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 tight, well-structured instruction skill: a copy-paste-ready output template, unambiguous classification rules, and clear escalation policy, with no wasted tokens on background concepts. Its weaknesses are the absence of a sequenced workflow with an explicit validation checkpoint for a batch operation, and no concrete tooling for the scan step itself.

Suggestions

Add a short numbered workflow (scan manifests/lockfiles → classify each package → apply the loop action → record overrides) with an explicit validation checkpoint before any update is applied, since batch operations are capped at 3 without one.

Name the concrete commands or tools for the scan step (e.g., `npm outdated`, `pip list --outdated`, `osv-scanner`) so the primary action is executable rather than implied.

Trim or externalize the generic prompt-injection explanation inside the "Untrusted input" block, keeping only the loop-specific rules (state-file handling, flagging by number/path, not copying suspicious text forward).

DimensionReasoningScore

Conciseness

The core sections ("Output per package", "Classification Rules", "Rules") are lean and assume Claude's competence — no semver or CVE tutorials, terse rule statements. It falls to anchor 4 rather than 5 because the 12-line "Untrusted input" block (~25% of the body) partially restates generic prompt-injection concepts Claude already knows alongside the loop-specific rules.

4 / 5

Actionability

The output template ("### package-name (ecosystem: npm|pip|go|etc.)" with Current/Suggested/Risk/CVE/Actionable fields and "Suggested loop action: patch-in-worktree | escalate-human | skip") and the classification rules are concrete, decision-ready guidance for an instruction-only skill. It misses anchor 5 because the primary scan step is never grounded in concrete commands or tools (e.g., npm outdated, pip-audit, osv-scanner).

4 / 5

Workflow Clarity

A rough flow is implied (scan → produce per-package output → classify → apply loop action → record overrides from `dependency-sweeper-state.md`), but steps are never sequenced and the only checkpoint is implicit ("minor: … verifier required"). Per the rubric guideline, a batch operation without an explicit validation step is capped at anchor 3.

3 / 5

Progressive Disclosure

The body is under 50 lines with no bundle files (references/, scripts/, assets/ do not exist), well-organized sections, and no nested references — the `scripts/sync-untrusted-input.mjs` mention is a generation-source comment and `dependency-sweeper-state.md` is runtime state, not a skill reference. Per the simple-skill guideline, well-organized sections alone earn anchor 5.

5 / 5

Total

16

/

20

Passed

Description

75%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.

The description is concise, specific, and correctly structured with both a 'what' and a 'Use in…' trigger clause in third person. Its main limitation is that the trigger clause ("Use in dependency sweeper loops") uses internal loop jargon rather than natural user phrases, and a few common synonyms (vulnerable, audit, manifest filenames) are absent.

Suggestions

Replace or extend the trigger clause with natural user phrasing, e.g. "Use when the user asks about outdated or vulnerable dependencies, CVEs, or dependency audits."

Add a few concrete manifest/lockfile names (package.json, requirements.txt, go.mod) to broaden natural keyword coverage.

Mention the core outcome action (recommending safe updates and escalating risky ones) so the 'what' covers the full capability, not just scanning and grouping.

DimensionReasoningScore

Specificity

"Scan package manifests and lockfiles for outdated packages and known CVEs" plus "Groups updates by risk (patch, minor, major)" lists several concrete actions in third-person voice. It sits at anchor 4 rather than 5 because coverage has gaps (no ecosystems, no mention of what happens to flagged packages beyond grouping), and above anchor 3 because it names more than 1-2 specific actions.

4 / 5

Completeness

Both parts are explicit: the what ("Scan package manifests and lockfiles for outdated packages and known CVEs. Groups updates by risk") and the when ("Use in dependency sweeper loops"). The 'when' clause is present but jargon-heavy and not tied to concrete user trigger phrases, matching anchor 4 rather than 5.

4 / 5

Trigger Term Quality

Natural terms like "outdated packages", "CVEs", "lockfiles", and "dependency" are present and would be said by users needing this skill. A few natural terms are missing (e.g., "vulnerable dependencies", "audit", concrete manifest names like package.json), which matches anchor 4 rather than 5.

4 / 5

Distinctiveness Conflict Risk

The combination of "package manifests and lockfiles", "known CVEs", and "dependency sweeper loops" carves a fairly distinct niche with minor overlap risk against a generic dependency-update skill. This fits anchor 4 (mostly distinct, minor overlap) better than anchor 5, since the triggers do not fully disambiguate from general package-maintenance skills.

4 / 5

Total

16

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

14

/

16

Passed

Repository

cobusgreyling/loop-engineering

Path

starters/dependency-sweeper/.codex/skills/dependency-triage/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.