CtrlK
BlogDocsLog inGet started
Tessl Logo

azure-ai-contentsafety-java

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

55

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/antigravity-azure-ai-contentsafety-java/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.

A dense, highly executable API reference: real Java code with proper imports, credential handling, error handling, and env vars, with essentially no token waste on concepts Claude already knows. Its weaknesses are structural — a monolithic 280-line inline reference with no external files, destructive blocklist operations lacking validation checkpoints, and three sections of generic boilerplate (Trigger Phrases, When to Use, Limitations) that add no actionable value.

Suggestions

Add validation/verification steps around destructive blocklist operations — e.g., list blocklist items and confirm before deleting, or verify a blocklist's items before removing them — to lift workflow clarity above the destructive-operation cap of 3.

Split the full Blocklist Management and Analyze Image API reference into reference files (e.g., references/blocklists.md) and keep SKILL.md as a concise overview with one-level-deep, clearly signaled pointers.

Delete the boilerplate 'When to Use' and 'Limitations' sections (their generic text adds no skill-specific guidance) and the 'Trigger Phrases' list, whose content belongs in the frontmatter description.

DimensionReasoningScore

Conciseness

The body is dominated by lean, copy-paste Java snippets with imports and env-var credential loading — it assumes Claude's competence and wastes no tokens explaining Azure or Java basics. It falls short of 5 due to minor trimmable content: the filler sections 'Trigger Phrases', 'When to Use' ('This skill is applicable to execute the workflow or actions described in the overview'), and the generic 'Limitations' boilerplate, plus the pinned beta version '1.1.0-beta.1' which is time-sensitive. It is well above level 3 since these are minor instances, not whole padded sections.

4 / 5

Actionability

Nearly every section is executable code: 'AnalyzeTextResult result = contentSafetyClient.analyzeText(new AnalyzeTextOptions(...))', full blocklist CRUD, HttpResponseException handling, and a Maven dependency with version. It misses level 5 on minor gaps: the Add Block Items snippet uses 'List<TextBlocklistItem>' without importing java.util.List, the DefaultAzureCredential snippet depends on 'endpoint' defined in an earlier snippet, and blocklist create/update drops to the raw BinaryData/RequestOptions API without explanation.

4 / 5

Workflow Clarity

Content is organized as reference patterns rather than sequenced workflows, and the destructive blocklist operations ('Remove Block Items', 'Delete Blocklist') and the 'Batch Processing: Process multiple items in parallel' best practice include no validation or verification steps. Per the judging guidelines, missing validation for destructive/batch operations caps workflow clarity at 3 — 'sequence present but checkpoints missing or implicit' — even though the individual snippets are unambiguous.

3 / 5

Progressive Disclosure

The skill is a single ~280-line file with no references/, scripts/, or assets/ directories; the full blocklist management API reference (create, add, list, get, remove, delete) is inlined in SKILL.md when it clearly belongs in a separate reference file. Good section headers keep it navigable, matching 'Some structure but could be better organized; content that should be separate is inline' — above level 2 (which lacks structure) but below level 4 (appropriate placement with clear external references).

3 / 5

Total

14

/

20

Passed

Description

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

A concise, third-person, highly distinctive description that pins down the exact SDK and language, but it is thin: a single generic action verb and no 'Use when...' trigger guidance, leaving both capability coverage and completeness at the midpoint. The 'when' half of a good description is entirely delegated to the body's Trigger Phrases section rather than the frontmatter where it belongs.

Suggestions

Add an explicit 'Use when...' clause to the description, e.g., 'Use when the user asks to moderate or filter harmful text or images in Java, detect hate speech, or manage Azure Content Safety blocklists.'

Enumerate the concrete capabilities in the description instead of the generic 'Build content moderation applications': e.g., 'Analyze text and images for hate, sexual, violence, and self-harm severity; create and manage custom blocklists.'

Fold the natural trigger terms currently buried in the body's Trigger Phrases section (e.g., 'hate speech detection', 'harmful content filter') into the description itself, then remove the redundant body section.

DimensionReasoningScore

Specificity

"Build content moderation applications using the Azure AI Content Safety SDK for Java" names the domain and SDK precisely but offers only one generic action ("Build ... applications"), matching the anchor 'Names domain and 1-2 concrete actions, but not comprehensive'. It never mentions the concrete capabilities (analyze text/image for harmful content, manage blocklists), so it is not the level-4 'several specific actions', while it is well above the minimal/generic level 2.

3 / 5

Completeness

The 'what' is clear (build content moderation apps with a specific SDK), but there is no 'Use when...' clause or equivalent trigger guidance, which per the judging guidelines caps completeness at 3: 'Has a clear what but when is missing or only weakly implied'. Not level 4 because no explicit 'when' exists at all.

3 / 5

Trigger Term Quality

Natural phrases a user would say are present: "content moderation", "Azure", "Content Safety", and "Java". Coverage is good but a few common variations are missing (e.g., "hate speech detection", "toxicity", "harmful content", "text moderation"), fitting 'Good keyword coverage; a few natural terms missing' rather than the comprehensive synonym coverage of level 5 or the thin keyword set of level 3.

4 / 5

Distinctiveness Conflict Risk

Naming the specific product ("Azure AI Content Safety SDK") plus the language ("Java") carves out a clear niche with only minor overlap risk against other Azure SDK or moderation skills. It falls short of level 5 because the description itself carries no distinct trigger phrases and 'content moderation' is a broadly shared domain.

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
boisenoise/skills-collections
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.