CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

azure-ai-contentsafety-ts

Analyze text and images for harmful content with customizable blocklists.

Quality

66%

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 ./skills/azure-ai-contentsafety-ts/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

This is a strong reference-style skill: fully executable, copy-paste-ready TypeScript covering every core operation, with a robust moderation helper that includes real validation logic. Its weaknesses are structural — a ~320-line monolith with no progressive disclosure to reference files, no validation workflow around destructive blocklist operations, and several boilerplate/vague sections (When to Use, Best Practices, the closing caveat paragraph) that add tokens without adding guidance.

Suggestions

Split the API Endpoints table, Key Types listing, and blocklist CRUD examples into a reference file (e.g. references/api.md) and keep SKILL.md as a lean overview with quick-start examples, enabling progressive disclosure.

Add validation around destructive operations: verify a blocklist exists before deleting, confirm item counts after add/remove, and check the delete response with isUnexpected like the other operations do.

Cut the circular 'When to Use' boilerplate and the vague Best Practices items (replace 'Handle edge cases' with the concrete limits, e.g. text size limits and supported image formats) to tighten conciseness.

DimensionReasoningScore

Conciseness

The bulk is tight, executable code, but there is unnecessary padding: the circular "This skill is applicable to execute the workflow or actions described in the overview", vague Best Practices entries ("Handle edge cases", "Log moderation decisions"), and a run-on closing caveat paragraph. It is mostly efficient but clearly could be tightened, matching anchor 3; it is not anchor 2 because there are no extensive explanations of concepts Claude already knows.

3 / 5

Actionability

Code is fully executable and copy-paste ready: installation, both auth methods, text and image analysis (base64 and blob URL), blocklist CRUD, and a complete moderateContent() helper with isUnexpected error handling. Specific examples cover the common cases, matching the anchor-5 example; the only trivial omission (no isUnexpected on the delete one-liner) does not constitute a gap.

5 / 5

Workflow Clarity

Operations are presented as parallel reference sections with an implied order but no explicit sequence or checkpoints, and the destructive delete-blocklist operation has no verification step — capping workflow clarity at 3 per the destructive-operation rule. The moderateContent helper's validation (isUnexpected plus the incomplete-assessment check) keeps it from dropping to anchor 2, but there is no validate-fix-retry loop around risky blocklist mutations.

3 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are all absent), so everything lives in a single ~320-line SKILL.md with good section headers but no split: the full API endpoint table, key types, and complete blocklist CRUD reference are inlined where a leaner overview pointing to a reference file would fit. This matches anchor 3 ('content that should be separate is inline'); it is above anchor 2 because structure and headers are present and navigation within the file is easy.

3 / 5

Total

14

/

20

Passed

Description

53%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 a concise, third-person statement of what the skill does, sitting squarely at the midpoint across dimensions: it names the domain and two concrete capabilities but lacks any 'when to use' trigger guidance, natural synonyms like "content moderation", and the service name "Azure". Adding an explicit trigger clause and broader keyword coverage would lift it substantially.

Suggestions

Add an explicit 'Use when...' clause, e.g. "Use when the user mentions content moderation, flagging harmful or toxic content, Azure Content Safety, or custom blocklists" — this directly addresses the completeness cap.

Include natural synonyms and the service name ("Azure", "content moderation", "toxic content screening") to improve trigger-term coverage and routing distinctiveness.

Mention one or two more concrete capabilities, such as severity-level assessment or blocklist create/add/delete management, to round out specificity.

DimensionReasoningScore

Specificity

"Analyze text and images for harmful content" plus "customizable blocklists" names the domain and 1-2 concrete actions, but coverage is not comprehensive (no severity assessment, moderation thresholds, or blocklist management actions). It does not reach anchor 4, which requires several specific listed actions with only minor gaps.

3 / 5

Completeness

The description clearly answers 'what' (analyze text/images for harmful content with blocklists) but contains no 'Use when...' clause or equivalent trigger guidance, which caps completeness at 3 per the judging guidelines. It is not anchor 4 because the 'when' is entirely absent rather than merely under-specified.

3 / 5

Trigger Term Quality

"Analyze", "harmful content", and "blocklists" are relevant keywords, but common natural phrasings users would say are missing: "content moderation", "flag", "toxic", or the service name "Azure". Not anchor 2 since the terms present are domain-relevant rather than generic ("Works with files"), and not anchor 4 because several natural variations are absent.

3 / 5

Distinctiveness Conflict Risk

"Analyze text and images for harmful content with customizable blocklists" carves out a clear content-moderation niche unlikely to trigger unrelated skills. Not anchor 5 because omitting "Azure" and terms like "content moderation" leaves minor overlap risk with generic moderation or text-analysis skills.

4 / 5

Total

13

/

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

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

sickn33/agentic-awesome-skills

Path

skills/azure-ai-contentsafety-ts/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.