CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

azure-ai-contentsafety-py

Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.

Quality

67%

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-py/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The content is strong on actionability — nearly every operation has executable Python with SDK-specific details Claude would not know — but it is a monolithic reference dump rather than an overview with references, and it lacks validation guidance for risky operations like blocklist mutation. Boilerplate sections and a dense policy paragraph dilute otherwise efficient content.

Suggestions

Move blocklist management details and the category/severity tables into a references/ file (e.g. references/blocklists.md), keeping SKILL.md as a lean overview with clearly signaled one-level-deep links.

Add an explicit validation step before/after blocklist mutations (e.g. verify the blocklist exists and test analysis against a known term before relying on it in production moderation).

Delete the boilerplate "When to Use" and "Limitations" sections and restructure the dense line-53 policy run-on into short, scannable bullets.

DimensionReasoningScore

Conciseness

The body is dominated by lean, useful code, but the policy paragraph ("Use only an approved endpoint/account, content and cost/retention policy; uploads disclose text/images to a hosted classifier...") is an unreadable run-on needing restructuring, and the "When to Use" ("This skill is applicable to execute the workflow or actions described in the overview") and generic "Limitations" sections are boilerplate padding that could be cut.

3 / 5

Actionability

Concrete runnable code covers auth (API key and Entra ID), text analysis, image analysis (file and blob URL), blocklist CRUD, and 8-level severity mode, plus SDK-specific tables. Minor gaps keep it from 5: several snippets (e.g. Analyze Text) reference undefined `endpoint`/`key` variables instead of being self-contained copy-paste.

4 / 5

Workflow Clarity

An implicit install → configure → authenticate → analyze sequence exists, but there are no validation checkpoints, and blocklist management is a live mutation operation ("Blocklist mutations can affect real moderation") with no verify/review step, so the destructive-operation cap at 3 applies.

3 / 5

Progressive Disclosure

No bundle files exist; ~225 lines of API-detail content (blocklist management sections, category/severity tables, all code examples) are inlined in one file. Section headers are well-organized, but clearly separable material like blocklist management should live in a one-level-deep reference file, matching 'content that should be separate is inline'.

3 / 5

Total

13

/

20

Passed

Description

62%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 identifies a clear niche and includes an explicit 'Use for' clause, so it answers both what and when. However, it undersells the skill's capabilities (blocklists, thresholds) and misses the natural synonyms users would actually say when needing content moderation. Trigger phrasing should enumerate concrete situations rather than restating the capability list.

Suggestions

Expand the 'what' to mention blocklist management and threshold configuration, e.g. "Analyze text and images for harmful content with multi-severity classification, and manage custom blocklists".

Add concrete trigger phrases with synonyms: "Use when the user asks to moderate, filter, or flag user-generated or AI-generated content, check content safety, or block specific terms".

Mention natural keywords like 'content moderation', 'content filtering', and 'unsafe content' so the skill triggers on the phrasings users actually say.

DimensionReasoningScore

Specificity

"detecting harmful content in text and images with multi-severity classification" names the domain and two concrete actions (text analysis, image analysis), but capabilities shown in the body such as blocklist management are absent, so coverage gaps exceed the 'minor gaps' of level 4.

3 / 5

Completeness

Both 'what' ("detecting harmful content in text and images with multi-severity classification") and an explicit 'when' ("Use for detecting harmful content...") are present, but the 'when' merely restates the 'what' rather than offering concrete trigger phrases, matching the 'when could be more explicit' anchor.

4 / 5

Trigger Term Quality

Relevant keywords like "harmful content", "text", "images", and "Content Safety" are present, but common natural variations users would say — "content moderation", "content filtering", "flagging", "unsafe content" — are missing.

3 / 5

Distinctiveness Conflict Risk

Naming the specific "Azure AI Content Safety SDK for Python" gives a clear niche with minimal conflict risk, but the broad trigger "detecting harmful content in text and images" overlaps closely related moderation/filtering skills, so it is 'mostly distinct' rather than minimal-risk.

4 / 5

Total

14

/

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