Expert patterns for Azure Functions development including isolated worker model, Durable Functions orchestration, cold start optimization, and production patterns. Covers .NET, Python, and Node.js programming models.
44
47%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/azure-functions/SKILL.mdQuality
Discovery
67%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 strong in specificity and distinctiveness, clearly identifying the Azure Functions domain with concrete technical topics and multiple runtime languages. Its main weakness is the absence of an explicit 'Use when...' clause, which would help Claude know exactly when to select this skill. Trigger term coverage could also be broadened to include common user phrasings like 'serverless' or 'function app'.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about Azure Functions, serverless functions on Azure, function apps, or Durable Functions.'
Include additional natural trigger terms users might say, such as 'serverless', 'function app', 'Azure serverless', 'triggers and bindings', or 'FaaS'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions/topics: isolated worker model, Durable Functions orchestration, cold start optimization, production patterns, and specifies three language runtimes (.NET, Python, Node.js). | 3 / 3 |
Completeness | Clearly answers 'what does this do' with specific capabilities, but lacks an explicit 'Use when...' clause or equivalent trigger guidance, which caps this dimension at 2 per the rubric. | 2 / 3 |
Trigger Term Quality | Includes good domain-specific terms like 'Azure Functions', 'Durable Functions', 'isolated worker model', 'cold start', but misses common user variations like 'serverless', 'function app', 'triggers and bindings', 'Azure serverless', or 'FaaS'. | 2 / 3 |
Distinctiveness Conflict Risk | Highly specific to Azure Functions with distinct terms like 'isolated worker model', 'Durable Functions orchestration', and 'cold start optimization' that are unlikely to conflict with general coding or other cloud platform skills. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
27%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill is comprehensive in coverage but severely undermines its utility through extreme verbosity and lack of progressive disclosure. It contains significant redundancy (HTTP long-running patterns appear in both Patterns and Sharp Edges sections with overlapping code), explains concepts Claude already knows (socket exhaustion mechanics, async/await basics), and dumps everything into a single monolithic file. The code examples, while mostly concrete, lack proper markdown formatting in the Patterns section.
Suggestions
Split content into multiple files: keep SKILL.md as a concise overview (~50-80 lines) with links to DOTNET_PATTERNS.md, NODEJS_PATTERNS.md, PYTHON_PATTERNS.md, DURABLE_FUNCTIONS.md, SHARP_EDGES.md, and VALIDATION.md
Remove explanations of concepts Claude already knows (what socket exhaustion is, why blocking async is bad, what TIME_WAIT is) and replace with terse rules like 'Use IHttpClientFactory — never instantiate HttpClient per request'
Eliminate redundant code: the HTTP long-running pattern, Durable Functions orchestration, and queue-based async pattern each appear 2-3 times across Patterns and Sharp Edges sections
Add proper fenced code block markers (```csharp, ```typescript, ```python) to all code examples in the Patterns section — currently they appear as plain text
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~700+ lines. Massive amounts of code that Claude already knows how to write (basic HTTP triggers, queue triggers, error handling patterns). The sharp edges section repeats patterns already shown in the templates section (e.g., the HTTP long-running pattern and Durable Functions code appear multiple times). Explanations like 'Creating a new HttpClient for each request creates a new socket connection' and 'Sockets linger in TIME_WAIT state for 240 seconds' are concepts Claude already knows. | 1 / 3 |
Actionability | Code examples are mostly concrete and near-executable, but none are properly formatted in fenced code blocks within the Patterns section (missing ```csharp markers), making them ambiguous. The validation checks section lists rules but provides no executable tooling or scripts. Some examples use placeholder comments like '// Validation logic...' and '// Image processing logic...' rather than complete implementations. | 2 / 3 |
Workflow Clarity | Individual patterns are presented clearly with 'When to use' guidance, but there's no overarching workflow for setting up a new Azure Functions project from scratch. The migration from in-process to isolated worker lists key changes but lacks a sequenced workflow with validation checkpoints. The cold start optimization section lists numbered steps but they're independent configurations, not a sequential workflow with verification. | 2 / 3 |
Progressive Disclosure | Monolithic wall of text with no references to external files despite the content being massive and covering multiple distinct topics (3 language models, Durable Functions patterns, sharp edges, validation checks). All content is inline when it would greatly benefit from splitting into separate files (e.g., SHARP_EDGES.md, DURABLE_FUNCTIONS.md, VALIDATION.md). The delegation section and validation checks could easily be separate files. | 1 / 3 |
Total | 6 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (1351 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
d89c349
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.