CtrlK
BlogDocsLog inGet started
Tessl Logo

azure-ai-contentsafety-ts

Analyze text and images for harmful content with customizable blocklists.

56

Quality

64%

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

78%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 body is a strong, dense API reference: fully executable TypeScript examples with consistent error handling cover every documented operation, and the tables are token-efficient. Its weaknesses are structural rather than substantive — everything is inlined in one file with no progressive disclosure, and minor repeated boilerplate and filler sections keep it from the top conciseness anchor.

Suggestions

Move the API Endpoints table and Key Types import listing into a references/ file (e.g. references/api.md) and keep SKILL.md as an overview with clearly signaled links, enabling progressive disclosure for the long tail of operations.

Trim the repeated isUnexpected/categoriesAnalysis boilerplate by showing the error-handling pattern once and referencing it, and delete the generic "When to Use" filler sentence.

Add a brief error-recovery note (what to do when isUnexpected fires, e.g. check endpoint/key, retry on 429) to turn the current throw-only guard into a feedback loop.

DimensionReasoningScore

Conciseness

The body is almost entirely executable code and compact tables with no explanation of concepts Claude already knows, but the isUnexpected/loop boilerplate is repeated across three examples and sections like "When to Use" contain generic filler ("This skill is applicable to execute the workflow or actions described in the overview"). This matches the anchor for efficient content with minor trimmable instances rather than the lean anchor.

4 / 5

Actionability

Fully executable, copy-paste-ready TypeScript covers the common cases: two auth methods, text analysis, image analysis via base64 and blob URL, complete blocklist CRUD, and a full moderation helper with typed results. It matches the top anchor for copy-paste-ready coverage of common cases.

5 / 5

Workflow Clarity

Sections are logically sequenced (install → env → auth → analyze → blocklists → helper → reference tables) and every example includes an isUnexpected error guard, but there is no feedback loop beyond throwing and no concrete guidance for handling the edge cases the Best Practices section only names. It fits the anchor for a clear sequence with most checkpoints present and minor validation gaps, not the 5 anchor with explicit recovery loops.

4 / 5

Progressive Disclosure

The single self-contained file is well-sectioned with clear headers (so above anchor 2), but the full API endpoint table and Key Types listing that would fit a separate reference file are inlined, and at ~300 lines the under-50-line simple-skill exception does not apply. This matches the anchor for content that should be separate being inline.

3 / 5

Total

16

/

20

Passed

Description

50%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 states a clear, concrete capability but reads only as a "what" with no "when": it lacks any trigger guidance, omits natural terms like content moderation and content safety, and does not name the platform or language, creating overlap risk with sibling moderation skills. All dimensions land at the middle anchor.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user asks to moderate, screen, or flag text or images for harmful/toxic content, or mentions Azure Content Safety."

Include natural synonyms users would say — "content moderation", "content safety", "toxicity", "flag inappropriate content" — to broaden trigger coverage.

Name the platform and language ("Azure AI Content Safety ... in TypeScript") to distinguish this skill from other moderation skills and reduce conflict risk.

DimensionReasoningScore

Specificity

Names the domain plus 1-2 concrete actions ("Analyze text and images", "customizable blocklists") but does not enumerate the range of actions the skill supports (blocklist CRUD, severity thresholds, image analysis variants). It does not reach 4 because it lacks several specific actions, and exceeds 2 because the actions named are concrete rather than generic.

3 / 5

Completeness

The "what" is clear (analyze text and images for harmful content with blocklists), but there is no "Use when..." clause or equivalent trigger guidance, which per the rubric guidelines caps completeness at 3.

3 / 5

Trigger Term Quality

Relevant keywords like "text", "images", "harmful content", and "blocklists" are present, but the natural phrases users would say — "content moderation", "content safety", "toxic", "flag inappropriate" — are missing, matching the anchor for some relevant keywords without common variations.

3 / 5

Distinctiveness Conflict Risk

The niche (harmful-content analysis with blocklists) is somewhat specific, but the description omits the platform (Azure) and language (TypeScript), so it would overlap with closely related content-moderation skills rather than being clearly distinct.

3 / 5

Total

12

/

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