CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

chain

Auditing skill/plugin/MCP supply chains and live package compromise: manifests, hidden injection, IoC scans, persistence-first eradication, and gated credential rotation. Not for app SAST (Sentinel).

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./chain/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

73%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-structured operational contract with excellent gated workflows and concrete decision rules. The main costs are token redundancy (routing stated four times plus a duplicative hidden comment block) and a reference architecture whose target files are not present in the bundle.

Suggestions

Consolidate Trigger Guidance, Subcommand Dispatch, and Output Routing into a single routing table; each currently restates the same signal-to-recipe mapping with different columns.

Remove or drastically shrink the hidden CAPABILITIES_SUMMARY / COLLABORATION_PATTERNS / BIDIRECTIONAL_PARTNERS comment block — it restates the visible Core Contract, Collaboration, and Recipes sections and consumes ~35 lines of context on every load.

Ship the referenced files (reference/intake-checklist.md, reference/supply-chain-malware-*.md, _common/SECURITY.md, etc.) with the skill or inline the few that are load-bearing, since the body's read-triggers currently point at paths absent from the bundle.

DimensionReasoningScore

Conciseness

The body avoids concept-teaching, but routing/trigger information is repeated four ways (Trigger Guidance, Recipes, Subcommand Dispatch, Output Routing) and the hidden CAPABILITIES_SUMMARY/COLLABORATION HTML comment (~35 lines) duplicates body sections, so it is mostly efficient but clearly could be tightened — not merely minor trimmings.

3 / 5

Actionability

Concrete, executable decision guidance throughout: exact codepoint ranges (U+E0000–U+E007F), exact credential paths (~/.ssh, ~/.aws, ~/.netrc), quantified rejection gates (< 50 downloads, < 30 days, Levenshtein-2), and named registry endpoints; however the actual scan/verification procedures live entirely in reference files not present in the bundle, leaving minor gaps in executable detail.

4 / 5

Workflow Clarity

Both workflows are explicit phase tables with per-phase gates and feedback loops ("eradicate refuses SUSPECTED", "rotate refuses until the verify-clean gate passes", "verify clean with a second scan", binary checklist per item), which matches the anchor for clear sequencing with explicit validation and error-recovery checkpoints.

5 / 5

Progressive Disclosure

The design is strong — one-level-deep references, read-trigger columns, and full-index pointers (reference/recipes-index.md, reference/reference-index.md) — but no reference/, _common/, or other bundle files ship alongside SKILL.md, so every referenced path is unverifiable from the bundle and cannot earn full marks.

4 / 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.

A dense, highly specific description with strong distinctiveness and an explicit negative boundary. Its main weakness is the absence of positive trigger guidance: it never says when to invoke the skill, only what it does and what it is not for.

Suggestions

Add a positive trigger clause, e.g. "Use when a third-party skill, plugin, or MCP server is being added, when a pinned hash no longer matches, or when a package-ecosystem compromise (npm/PyPI campaign) is suspected."

Include the natural user vocabulary for the live-compromise half of the skill — "malware", "compromised package", "npm", "PyPI", "supply-chain attack" — so those triggers match without relying on jargon like "IoC".

DimensionReasoningScore

Specificity

"manifests, hidden injection, IoC scans, persistence-first eradication, and gated credential rotation" lists six concrete capability areas covering the full intake-to-rotation lifecycle, matching the comprehensive-coverage anchor rather than the minor-gaps anchor at 4.

5 / 5

Completeness

The "what" is explicit and concrete, but there is no positive "Use when..." clause — only the negative scope note "Not for app SAST (Sentinel)" — which caps completeness at 3 per the missing-trigger-guideline rule; a negative boundary is not equivalent to explicit trigger guidance.

3 / 5

Trigger Term Quality

Natural terms like "supply chain", "skill", "plugin", "MCP", and "credential rotation" are present, but common user phrasings such as "malware", "compromised package", "npm/PyPI", or "security audit" are missing, so coverage is good rather than comprehensive.

4 / 5

Distinctiveness Conflict Risk

The niche (supply-chain trust auditing of skills/plugins/MCP servers) is highly distinct, and the explicit disambiguation "Not for app SAST (Sentinel)" minimizes conflict risk with neighboring security skills.

5 / 5

Total

17

/

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

relative_links

Relative link issues: 3 missing

Warning

Total

15

/

16

Passed

Repository

simota/agent-skills

Path

chain/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.