CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

azure-ai-contentunderstanding-py

Azure AI Content Understanding SDK for Python. Use for multimodal content extraction from documents, images, audio, and video.

62

Quality

78%

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 ./skills/azure-ai-contentunderstanding-py/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.

A strong, highly actionable SDK reference whose code examples are uniformly executable and cover all four modalities plus custom analyzers and async usage. Its main weaknesses are structural — everything lives inline in one long file with no progressive disclosure — plus small redundancies (repeated setup, a filler 'When to Use' section) and no error-handling guidance for the long-running operations it centers on.

Suggestions

Move the per-modality example sections (Analyze Image/Video/Audio) and the Async Client section into files under references/ (e.g., references/examples-video.md), keeping SKILL.md as a compact overview with well-signaled one-level-deep links.

Delete the vacuous '## When to Use' section ('This skill is applicable to execute the workflow or actions described in the overview.') and the duplicate ContentUnderstandingClient row in the Client Types table; state the setup once and note that examples omit it.

Add a short error-handling checkpoint for the long-running operations (e.g., catching poller failures or HTTP error codes and retrying), since the whole skill is built around begin_analyze/poll patterns.

DimensionReasoningScore

Conciseness

The body is lean and code-forward with no conceptual over-explanation, but there are minor trimmable instances: the full auth/setup block appears verbatim twice ('endpoint = os.environ["CONTENTUNDERSTANDING_ENDPOINT"]' in both Authentication and Analyze Document), imports repeat in nearly every snippet, and the trailing '## When to Use' section is pure filler ('This skill is applicable to execute the workflow or actions described in the overview'). It fits anchor 4 ('efficient; minor instances that could be trimmed') rather than 5, and is clearly not anchor 3 since the padding is incidental rather than a broad inefficiency problem.

4 / 5

Actionability

Every section gives fully executable, copy-paste-ready code: 'client.begin_analyze(analyzer_id="prebuilt-documentSearch", inputs=[AnalysisInput(url=...)])' followed by 'poller.result()' and 'result.contents[0]', covering documents, images, audio, video, custom analyzers, analyzer management, and the async client. This matches anchor 5 ('fully executable; copy-paste ready; examples cover the common cases') — no section is pseudocode or high-level hinting, so anchor 4's 'minor gaps' does not apply.

5 / 5

Workflow Clarity

The Core Workflow clearly sequences the long-running-operation pattern (1. Begin Analysis with begin_analyze() returns a poller, 2. Poll until complete via .result(), 3. Process Results from AnalysisResult.contents), and this is reinforced consistently in every example. It falls short of anchor 5 because there are no validation checkpoints or feedback loops (e.g., no guidance on handling failed or timed-out analyses), but no destructive/batch operation here triggers the ≤3 cap.

4 / 5

Progressive Disclosure

The file is well-sectioned with headers, but it is a ~270-line monolith: per-modality example blocks (Analyze Image/Video/Audio), the Async Client section, and the custom-analyzer schema example are inline content that would be better split into reference files, and no bundle files (references/, scripts/, assets/) exist at all. This matches anchor 3 ('some structure but content that should be separate is inline'), and the good section headers rule out anchor 2's no-structure example.

3 / 5

Total

16

/

20

Passed

Description

70%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 solid description with a clear what, an explicit 'Use for' trigger clause, good natural modality keywords, and a distinctive named-service identity. Its main gaps are that it names only one capability (extraction) and its when-clause lacks concrete user-mention trigger phrases, leaving it just short of the top anchors on specificity and completeness.

Suggestions

Add one or two more concrete actions to the description, e.g., 'transcribe audio and video with timestamps, extract invoice fields, and build custom analyzers with field schemas.'

Make the when-clause match the anchor-5 pattern: 'Use when the user mentions Azure Content Understanding, or needs to transcribe audio/video, or extract structured fields or markdown from documents for RAG.'

Include a common synonym or file-extension trigger (PDFs, invoices, .mp3/.mp4) so the skill fires on the natural phrasings users actually type.

DimensionReasoningScore

Specificity

The description names the domain ('Azure AI Content Understanding SDK for Python') and one concrete action ('multimodal content extraction from documents, images, audio, and video'), matching anchor 3 ('names domain and 1-2 concrete actions, but not comprehensive'). It is not anchor 4 because extraction is the only action named — transcribe, custom field extraction, and analyzer management from the body are absent — and it is well above anchor 2, which would have only generic actions.

3 / 5

Completeness

It answers both parts: the what is 'multimodal content extraction' via the named SDK, and the when is the explicit 'Use for multimodal content extraction from documents, images, audio, and video' — structurally equivalent to anchor 4's example ('Extract text from PDFs and fill forms. Use when working with PDF files.'). It falls short of anchor 5, which requires concrete trigger phrases like 'when the user mentions PDFs or document extraction', but scores above the anchor-3 cap because the when-clause is explicit, not merely implied.

4 / 5

Trigger Term Quality

It covers the natural modality nouns users would say — 'documents', 'images', 'audio', 'video' — plus 'content extraction', which matches anchor 4 ('good keyword coverage; a few natural terms missing') much like the example 'PDF files, forms, document extraction'. It misses anchor 5 because common synonyms and extensions (PDFs, transcription, .mp4, invoices) are absent, though it is clearly above anchor 3's 'some relevant keywords' with missing variations.

4 / 5

Distinctiveness Conflict Risk

Naming the specific service ('Azure AI Content Understanding SDK for Python') with its four modalities gives it a clear niche, matching anchor 4 ('mostly distinct; minor overlap risk with closely related skills') — the residual overlap being sibling Azure document/vision offerings such as Azure AI Document Intelligence. Anchor 5 would require essentially zero conflict risk, which a broad multimodal extraction claim doesn't quite earn.

4 / 5

Total

15

/

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

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

skills/azure-ai-contentunderstanding-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.