CtrlK
BlogDocsLog inGet started
Tessl Logo

azure-ai-formrecognizer-java

Build document analysis applications using the Azure AI Document Intelligence SDK for Java.

51

Quality

56%

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

The body is a strong executable API reference — dense, correct-looking Java covering prebuilt models, custom models, classification, and errors — but it functions as a monolithic SKILL.md. It lacks validation/feedback checkpoints for long-running and destructive operations, and carries filler sections and a pinned beta version. Organization is decent but nothing is offloaded to reference files.

Suggestions

Split the bulk API patterns (custom model administration, document classification, model management) into reference files (e.g. references/custom-models.md, references/classification.md) and keep SKILL.md as a short overview with clearly signaled one-level-deep links.

Add validation and feedback loops for long-running and destructive operations: check poller status/handle failed operations before using results, and confirm before deleteDocumentModel (e.g. list and verify the model ID before deleting).

Remove the filler 'When to Use' sentence and generic 'Limitations' boilerplate, move the 'Trigger Phrases' into the description where they serve discovery, and replace the pinned '4.2.0-beta.1' with guidance on selecting a current stable version.

DimensionReasoningScore

Conciseness

The bulk is lean, copy-paste Java with almost no conceptual padding, but there is unnecessary content that could be trimmed: a pinned beta version ('4.2.0-beta.1') with no deprecation/versioning context, a duplicated overview line under the H1, and boilerplate sections ('When to Use: This skill is applicable to execute the workflow...' and the generic 'Limitations' list) that add no skill-specific information. This fits 'mostly efficient but includes some unnecessary explanation or could be tightened'; not 4 because the version pin and filler sections are explicitly penalized, not 2 because there is no conceptual over-explanation.

3 / 5

Actionability

Nearly every section is complete, executable Java with imports — client construction (key and DefaultAzureCredential), layout/receipt/document analysis with result traversal, custom model build/compose/manage, classifier build and classification, error handling, and env vars. This matches 'Fully executable; copy-paste ready code or commands; specific examples cover the common cases'; it does not exceed the scale and is not 4 because the examples cover the common cases end-to-end rather than having material gaps.

5 / 5

Workflow Clarity

Tasks are organized into a coherent order (install → client → prebuilt → custom → classify → errors), but multi-step flows are shown as isolated snippets with no sequencing narrative and no validation checkpoints: the long-running SyncPoller flows have no guidance on handling failed/incomplete operations, and the destructive deleteDocumentModel is listed with no confirmation or verification step. This fits 'sequence present but checkpoints missing or implicit'; not 4 because validation is absent rather than minor-gapped, not 2 because the section structure does convey a rough order.

3 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are all absent), so everything lives inline in SKILL.md: ~340 lines of SDK API patterns — model administration, classifier building, and full result-traversal code — that clearly belong in separate reference files. Section headers give it structure, matching 'some structure but content that should be separate is inline' (cf. the 200-line inline API reference example); not 2 because headers make it navigable, not 4 because no content is split out.

3 / 5

Total

14

/

20

Passed

Description

48%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 clear about what the skill covers and is well-differentiated by the Azure/Java qualifiers, but it is thin: a single generic action verb, no explicit 'when to use' guidance, and none of the natural trigger phrases (form recognizer, OCR, PDF extraction) that users would actually say. It sits just below the midpoint of the rubric.

Suggestions

Add an explicit 'Use when...' clause, e.g. 'Use when the user mentions Form Recognizer, Document Intelligence, extracting text or tables from PDFs/images in Java, or analyzing invoices, receipts, or ID documents.'

Enumerate the concrete capabilities instead of 'Build document analysis applications' — e.g. 'Analyze documents with prebuilt models (layout, invoices, receipts, IDs), build and manage custom models, and classify documents.'

Include natural synonyms users would say (OCR, form recognizer, PDF text extraction, .pdf) so the skill triggers on real user phrasing, not just the official service name.

DimensionReasoningScore

Specificity

The description names the domain ('Azure AI Document Intelligence SDK for Java') but offers only one generic action — 'Build document analysis applications' — with no concrete operations like extracting text, analyzing invoices, or building custom models. This matches the anchor 'Names the domain but actions are minimal or generic' (cf. 'Processes PDF files'); it does not reach 3 because there is no second concrete action, and it is above 1 because the domain is genuinely named.

2 / 5

Completeness

The 'what' is stated clearly ('Build document analysis applications using the Azure AI Document Intelligence SDK for Java') but there is no 'Use when...' clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. It cannot score 4 without any 'when' guidance, and is above 2 because the 'what' is unambiguous.

3 / 5

Trigger Term Quality

Relevant keywords are present ('document analysis', 'Azure', 'Document Intelligence', 'Java', 'SDK') but common natural phrasings users would say — 'form recognizer', 'OCR', 'extract text from PDF', 'invoice/receipt extraction' — are missing from the description. This fits 'Some relevant keywords but missing common variations or synonyms'; not 4 because several natural trigger terms are absent, not 2 because the terms present are on-domain rather than generic.

3 / 5

Distinctiveness Conflict Risk

The combination of a specific vendor SDK, service, and language ('Azure AI Document Intelligence SDK for Java') carves out a clear niche with minor overlap risk against sibling Azure SDK skills for other languages or general document-processing skills. Not 5 because 'document analysis' alone is a term shared with other document skills; not 3 because the Azure/Java qualifiers make confusion unlikely.

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