CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

azure-ai-contentsafety-java

Build content moderation applications using the Azure AI Content Safety SDK for Java.

Quality

63%

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

A well-organized, code-dense API cookbook whose examples are largely copy-paste ready and free of conceptual padding. Its main weaknesses are routing boilerplate mixed into the body, the absence of validation/feedback loops around destructive blocklist operations, and no use of bundle files to keep the full API reference out of context.

Suggestions

Remove the 'Trigger Phrases' and boilerplate 'When to Use'/'Limitations' filler from the body and fold the trigger guidance into the frontmatter description, where it actually affects routing.

Add a validation loop around blocklist mutations: confirm added items via listTextBlocklistItems before relying on them, and verify the target list before deleteTextBlocklist, reusing the existing HttpResponseException handling as the retry path.

Move the full blocklist CRUD reference into a references/ file (e.g., BLOCKLISTS.md) and keep only create-and-add plus a pointer in SKILL.md, reducing token cost when only analysis is needed.

DimensionReasoningScore

Conciseness

The bulk is lean, executable Java without over-explaining known concepts, but ~25 lines of non-instructional padding are trimmable: a 'Trigger Phrases' section (routing metadata, not guidance), a boilerplate 'When to Use' ('This skill is applicable to execute the workflow or actions described in the overview'), generic Limitations filler, and a pinned time-sensitive version ('1.1.0-beta.1'). This fits 'Mostly efficient but includes some unnecessary explanation or could be tightened' rather than 4, whose over-explanation is only minor.

3 / 5

Actionability

Nearly all guidance is concrete, compilable Java covering the common cases: client creation two ways, analyze text/image (file and URL), full blocklist CRUD, error handling, and env vars. It falls short of 5 due to minor gaps: several snippets omit imports or assume undeclared variables (e.g., 'endpoint' in the DefaultAzureCredential example, 'List'/'Arrays' in block-item code), and the low-level createOrUpdateTextBlocklistWithResponse BinaryData pattern is shown without explanation.

4 / 5

Workflow Clarity

The skill is organized as topical API sections rather than a sequenced workflow, and blocklist management involves live, potentially destructive operations (delete, ~5-minute propagation to live moderation). There is a status-code checkpoint (201/200) and an error-handling example, but no validate-fix-retry loop or pre-delete verification, so per the scoring notes workflow_clarity is capped at 3 ('Steps listed but validation gaps; checkpoints missing or implicit').

3 / 5

Progressive Disclosure

Section headers are clear and navigation is easy, but the skill is ~285 lines with no bundle files at all: the full blocklist CRUD reference and every analysis variant are inlined in SKILL.md where a reference file would be appropriate. This matches 'Some structure but could be better organized; content that should be separate is inline' rather than 4, which requires most bulk content placed in separate files.

3 / 5

Total

13

/

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 accurate and appropriately concise, naming a distinct vendor+language niche, but it states only a single generic capability and entirely lacks a 'Use when...' trigger clause. Adding explicit triggers and one or two concrete capability mentions would substantially improve routing reliability.

Suggestions

Add a 'Use when...' clause, e.g., 'Use when analyzing text or images for harmful content, managing custom blocklists, or setting up Azure Content Safety in a Java project.'

Name the concrete capabilities (analyze text/image severity across harm categories, manage blocklists) instead of the generic 'build content moderation applications'.

Include natural trigger variations users would actually type, such as 'hate speech detection', 'content filter', or 'Azure Content Safety Java', in the description itself rather than only in a body section.

DimensionReasoningScore

Specificity

The description names the domain ('Azure AI Content Safety SDK for Java') and a single generic action ('Build content moderation applications'), but never mentions concrete capabilities like text/image analysis, blocklist management, or severity scoring. This matches the anchor 'Names domain and 1-2 concrete actions, but not comprehensive' rather than 4, which requires several specific actions.

3 / 5

Completeness

It clearly answers 'what' (build content moderation applications with this SDK) but contains no 'when' trigger guidance at all, which per the judging guidelines caps completeness at 3 ('Has a clear what but when is missing or only weakly implied'). It cannot score 4 because a 'when' clause is entirely absent, not merely imprecise.

3 / 5

Trigger Term Quality

Terms like 'content moderation', 'Azure', and 'Java' are natural phrases a user might say, but there is no 'Use when...' phrasing and no synonyms or variations (e.g., 'harmful content filter', 'text moderation', 'analyze image safety'). This matches 'Some relevant keywords but missing common variations or synonyms' rather than 4, whose keyword coverage is described as good with only a few natural terms missing.

3 / 5

Distinctiveness Conflict Risk

The combination of a named vendor service ('Azure AI Content Safety') plus a language ('Java') carves a clear niche with distinct triggers, at most overlapping with closely related skills (e.g., other Azure SDKs or other languages' content-safety skills). This fits 'Mostly distinct; minor overlap risk with closely related skills'; it is not a 5 because the generic 'content moderation' phrasing could collide with non-Azure moderation 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-java/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.