CtrlK
BlogDocsLog inGet started
Tessl Logo

azure-ai-contentsafety-ts

Analyze text and images for harmful content with customizable blocklists.

46

Quality

48%

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

Quality

Content

64%Scale 1-3

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

This is a solid API reference skill with excellent actionability—every section has executable, complete TypeScript code. However, it's somewhat verbose for a skill file, including boilerplate sections and explanatory content Claude doesn't need. The workflow between operations (especially blocklist management) could benefit from explicit sequencing, and the large amount of inline content would be better served by progressive disclosure into supporting files.

Suggestions

Remove the boilerplate 'When to Use' and 'Limitations' sections, and trim the 'Best Practices' to only non-obvious, SDK-specific guidance (e.g., keep the isUnexpected() tip, drop 'Handle edge cases').

Add explicit workflow sequencing for blocklist management: number the steps (create → add items → analyze) with a note that blocklist must exist before adding items.

Extract the API Endpoints table, Key Types, and Harm Categories/Severity Levels into a separate REFERENCE.md file, keeping SKILL.md focused on quick-start usage patterns.

DimensionReasoningScore

Conciseness

The skill is mostly efficient with executable code examples, but includes some unnecessary content like the 'Best Practices' section with generic advice Claude already knows (e.g., 'Handle edge cases'), the 'When to Use' and 'Limitations' boilerplate sections, and the Harm Categories description table which adds little value. The content could be tightened by ~30%.

2 / 3

Actionability

Every section provides fully executable TypeScript code with proper imports, concrete API paths, and copy-paste ready examples. The authentication, text analysis, image analysis, and blocklist management sections all contain complete, runnable code with error handling patterns.

3 / 3

Workflow Clarity

Individual operations are clear, but the blocklist management workflow (create → add items → analyze with blocklist) lacks explicit sequencing and validation checkpoints. The moderation helper function is well-structured, but there's no guidance on error recovery or retry logic for API failures, and the overall flow between operations is implicit rather than explicitly sequenced.

2 / 3

Progressive Disclosure

The content is organized into logical sections with clear headers, but it's a monolithic file with ~250 lines of inline content. The API reference table, key types, and the content moderation helper could be split into separate reference files. No bundle files exist to offload detailed content.

2 / 3

Total

9

/

12

Passed

Description

32%Scale 1-3

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 conveys the core purpose of content moderation with blocklists but lacks explicit trigger guidance ('Use when...') and misses common user-facing terms like 'content moderation', 'safety', 'NSFW', or 'profanity filter'. It is reasonably distinctive but could be more specific about the concrete actions performed.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about content moderation, safety filtering, detecting harmful or inappropriate content, or managing blocklists.'

Include more natural trigger terms users would say, such as 'content moderation', 'NSFW detection', 'profanity filter', 'toxic content', 'safety check'.

List more specific concrete actions, e.g., 'Flags, categorizes, and filters harmful content including hate speech, profanity, and explicit imagery using customizable blocklists.'

DimensionReasoningScore

Specificity

Names the domain (content moderation) and two key actions (analyze text/images, customizable blocklists), but doesn't list multiple specific concrete actions like flagging, filtering, reporting, or categorizing harmful content.

2 / 3

Completeness

Describes what the skill does but has no explicit 'Use when...' clause or equivalent trigger guidance, which per the rubric should cap completeness at 2, and the 'what' is also only moderately detailed, placing this at 1-2. Given the missing 'when' entirely, scoring at the lower end.

1 / 3

Trigger Term Quality

Includes some relevant keywords like 'harmful content', 'blocklists', 'text', and 'images', but misses common user variations such as 'content moderation', 'NSFW', 'safety', 'filter', 'profanity', or 'toxic content'.

2 / 3

Distinctiveness Conflict Risk

The mention of 'harmful content' and 'customizable blocklists' provides some specificity, but 'analyze text and images' is broad enough to potentially overlap with general text analysis or image analysis skills.

2 / 3

Total

7

/

12

Passed

Validation

90%

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

Validation — 10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

10

/

11

Passed

Repository
popey/claude-code-skills
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.