Extract text, tables, and structured data from documents using prebuilt and custom models.
55
62%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/azure-ai-document-intelligence-ts/SKILL.mdQuality
Discovery
60%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 does a good job listing specific extraction capabilities (text, tables, structured data) and hints at the method (prebuilt and custom models). However, it lacks an explicit 'Use when...' clause, misses common user trigger terms like specific file types or use cases (invoices, receipts, OCR), and the broad term 'documents' reduces its distinctiveness from other document-processing skills.
Suggestions
Add a 'Use when...' clause with explicit triggers, e.g., 'Use when the user needs to extract information from documents, invoices, receipts, or forms using AI models.'
Include natural trigger terms users would say, such as specific file types (PDF, images, scanned documents), common use cases (invoice processing, receipt scanning, OCR), or the specific service name if applicable (e.g., Azure Document Intelligence, AWS Textract).
Clarify what distinguishes this from simpler document extraction skills by naming the specific tool or platform, e.g., 'Uses Azure AI Document Intelligence to extract...' to reduce conflict risk.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'Extract text, tables, and structured data' and mentions both 'prebuilt and custom models' as methods. This provides clear, actionable capabilities. | 3 / 3 |
Completeness | Clearly answers 'what does this do' (extract text, tables, structured data from documents using models), but lacks an explicit 'Use when...' clause or trigger guidance for when Claude should select this skill. | 2 / 3 |
Trigger Term Quality | Includes some relevant keywords like 'extract text', 'tables', 'structured data', and 'documents', but misses common user variations like specific file types (PDF, invoices, receipts), OCR, or document parsing. 'Prebuilt and custom models' is more technical jargon than natural user language. | 2 / 3 |
Distinctiveness Conflict Risk | 'Documents' is quite broad and could overlap with many document-related skills. The mention of 'prebuilt and custom models' adds some distinctiveness (suggesting an AI/ML document intelligence service), but without specifying the tool or file types, it could conflict with PDF extraction, OCR, or general document processing skills. | 2 / 3 |
Total | 9 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid API reference skill with excellent actionability—every code example is complete and executable with proper TypeScript types and error handling. However, it suffers from significant repetition of the polling pattern across sections, inflating token cost without adding new information. The skill would benefit from showing the core pattern once and then providing only the differing parts (model ID, field access) for each use case, plus splitting detailed examples into referenced files.
Suggestions
Deduplicate the polling pattern: show it once in full, then in subsequent sections only show the differing parts (model ID, body payload, result field access) with a reference back to the polling pattern section.
Remove the generic 'When to Use' and 'Limitations' boilerplate sections—they add no skill-specific value.
Add error recovery guidance for custom model building (e.g., checking model accuracy metrics, handling training failures) to improve workflow clarity.
Consider splitting prebuilt model examples (invoice, receipt, ID document) into a separate reference file, keeping only the core analyze pattern in the main skill.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient with executable code examples, but there's significant repetition of the polling pattern (start → isUnexpected → getLongRunningPoller → pollUntilDone) across nearly every section. The 'Extract Invoice Fields' and 'Extract Receipt Fields' sections are nearly identical to 'Analyze Document (URL)' with minor field differences. The 'When to Use' and 'Limitations' sections are generic boilerplate that adds no value. | 2 / 3 |
Actionability | Every section provides fully executable, copy-paste ready TypeScript code with proper imports, type annotations, and error handling. The examples cover the full range of operations (analyze URL, analyze local file, build custom model, classify, list models) with concrete field access patterns. | 3 / 3 |
Workflow Clarity | The 'Polling Pattern' section clearly sequences the async workflow with numbered steps, and error checking with isUnexpected() is consistently shown. However, there are no validation checkpoints for destructive/batch operations like building custom models (e.g., verifying training data format, checking model quality metrics after build), and no guidance on error recovery beyond throwing. | 2 / 3 |
Progressive Disclosure | The content is a monolithic file with no references to supporting documents. At ~250 lines with repetitive patterns, the invoice/receipt/classifier examples could be split into separate reference files, with the main SKILL.md providing the core pattern once and linking out. The prebuilt models table and key types could also be separate references. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
76aea27
Table of Contents
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.