CtrlK
BlogDocsLog inGet started
Tessl Logo

azure-ai-document-intelligence-ts

Extract text, tables, and structured data from documents using prebuilt and custom models.

52

Quality

59%

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-document-intelligence-ts/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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, code-first reference with executable TypeScript snippets, dual auth patterns, and a clearly numbered polling workflow — genuinely actionable for the Azure Document Intelligence REST SDK. Its main weaknesses are repeated poller boilerplate across sections, generic filler sections, a mangled heading, and no use of external reference files to keep the main file lean.

Suggestions

Remove the duplicated path/isUnexpected/getLongRunningPoller boilerplate from the per-model sections and let the "Polling Pattern" section define it once, showing only the field-access logic per model.

Fix the mangled heading "## Analyze Document https://example.com" and replace the generic "When to Use"/"Limitations" boilerplate with skill-specific guidance (model selection, confidence thresholds, poll intervals) or delete it.

Move the prebuilt-model table and per-model field extraction examples into a references/ file (e.g. references/models.md) linked from SKILL.md to reduce main-file token cost and improve navigation.

DimensionReasoningScore

Conciseness

The body is mostly efficient code with minimal prose, but it could be tightened: the start-poll-wait boilerplate (path().post, isUnexpected, getLongRunningPoller, pollUntilDone) repeats nearly verbatim in at least five sections even though the "Polling Pattern" section already abstracts it, and the "When to Use" ("This skill is applicable to execute the workflow or actions described in the overview") and "Limitations" sections are generic filler that add no information. Matches anchor 3; not 4 because the redundancy and boilerplate sections are more than minor.

3 / 5

Actionability

Code is concrete and executable: real npm install commands, both DefaultAzureCredential and API-key auth, URL and base64 source variants, per-model field access (invoice.fields?.VendorName?.content), and a prebuilt-model table. Not 5 because of minor gaps — the heading "## Analyze Document https://example.com" carries a stray URL fragment, and several snippets reference undefined variables (invoiceUrl, receiptUrl, urlSource) without a complete runnable context.

4 / 5

Workflow Clarity

The "Polling Pattern" section gives a clear numbered 5-step sequence (start → check isUnexpected → create poller → onProgress → pollUntilDone) and every snippet includes the isUnexpected error checkpoint. Not 5 because there is no validation of the final result state (e.g., checking the operation status or analyzeResult for failed/skipped operations) and no error-recovery guidance; not 3 because the sequence and main checkpoints are explicit. The destructive/batch cap does not apply since these are read and async-training operations.

4 / 5

Progressive Disclosure

Sections are well-labeled, but everything lives inline in a single ~330-line SKILL.md with no references/ directory: the prebuilt-model field reference, classifier build, and per-model extraction examples are content that would suit one-level-deep reference files. Matches anchor 3 (some structure but content that should be separate is inline); not 4 because no external organization exists at all for a skill of this size.

3 / 5

Total

14

/

20

Passed

Description

55%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 communicates a clear, concrete capability set but omits any usage trigger guidance and the Azure/Document Intelligence branding that would distinguish it from generic document-processing skills. It is functional but generic-feeling for an Azure-specific SDK skill.

Suggestions

Add an explicit trigger clause, e.g. "Use when extracting text, tables, or fields from documents (PDFs, images, scans) with Azure Document Intelligence, or when the user mentions invoices, receipts, OCR, or prebuilt models."

Include the words "Azure" and "Document Intelligence" in the description so it is distinct from generic document/PDF extraction skills and surfaces on those brand mentions.

Add natural synonyms users would actually say — invoice, receipt, ID document, OCR, form fields — to broaden trigger coverage.

DimensionReasoningScore

Specificity

"Extract text, tables, and structured data from documents using prebuilt and custom models" lists several concrete actions (text extraction, table extraction, structured data extraction) with the prebuilt/custom model distinction. Not 5 because coverage has gaps — classification, invoice/receipt field extraction, and model building are not mentioned; not 3 because it goes beyond 1-2 actions.

4 / 5

Completeness

The "what" is clearly stated (extract text, tables, structured data with prebuilt/custom models), but there is no "Use when..." clause or equivalent trigger guidance, capping completeness at 3 per the judging guidelines. Not 4 because the "when" is entirely absent rather than merely imprecise.

3 / 5

Trigger Term Quality

Relevant keywords like "documents", "tables", "prebuilt", and "custom models" are present, but common natural variations users would say are missing: invoice, receipt, OCR, PDF, and notably "Azure" itself. Matches anchor 3 (some relevant keywords but missing common variations or synonyms); not 4 because the keyword set is thin for a domain this rich.

3 / 5

Distinctiveness Conflict Risk

"Extract text and tables from documents" could plausibly overlap with generic PDF-processing or document-parsing skills, and the omission of "Azure" or "Document Intelligence" removes the clearest distinguishing brand trigger. Not 4 because the overlap risk extends beyond just closely related skills.

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