CtrlK
BlogDocsLog inGet started
Tessl Logo

async-python-patterns

Comprehensive guidance for implementing asynchronous Python applications using asyncio, concurrent programming patterns, and async/await for building high-performance, non-blocking systems.

34

Quality

30%

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/async-python-patterns/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

27%Scale 1-3

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This skill is essentially a table of contents with no substantive content. It lacks any concrete code examples, executable patterns, or specific async/await guidance, deferring everything to a referenced file that doesn't exist in the bundle. The body reads more like a project brief than an actionable skill that Claude can use to produce async Python code.

Suggestions

Add at least 2-3 concrete, executable async Python code examples directly in the skill body (e.g., asyncio.gather usage, async context managers, task cancellation patterns).

Include the `resources/implementation-playbook.md` file in the bundle, or inline the essential patterns so the skill is functional standalone.

Replace abstract instructions like 'pick concurrency patterns' with specific decision guidance (e.g., 'Use asyncio.gather for independent I/O tasks; use asyncio.Queue when producers/consumers need backpressure').

Remove the generic 'Limitations' boilerplate and the verbose 'Use/Do not use' lists to improve conciseness.

DimensionReasoningScore

Conciseness

The 'Use this skill when' and 'Do not use this skill when' sections are somewhat verbose and list many scenarios Claude could infer. The 'Limitations' section contains generic boilerplate advice (e.g., 'stop and ask for clarification') that doesn't add skill-specific value. However, the instructions section itself is reasonably lean.

2 / 3

Actionability

There are no concrete code examples, executable commands, or specific patterns anywhere in the skill body. The instructions are entirely abstract directives like 'pick concurrency patterns' and 'add timeouts' without showing how. All actionable content is deferred to a referenced file that doesn't exist in the bundle.

1 / 3

Workflow Clarity

The instructions section provides a rough sequence (clarify → pick patterns → add error handling → test), but steps are vague and lack validation checkpoints. There's no feedback loop or concrete verification step for async code correctness.

2 / 3

Progressive Disclosure

The skill references `resources/implementation-playbook.md` for all detailed patterns and examples, but no bundle files are provided, meaning the reference leads nowhere. The skill body itself is essentially an empty shell with no substantive content to stand on its own.

1 / 3

Total

6

/

12

Passed

Description

32%Scale 1-3

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 identifies its domain (async Python with asyncio) but relies on vague, buzzword-heavy language like 'comprehensive guidance' and 'high-performance, non-blocking systems' without listing concrete actions. It critically lacks a 'Use when...' clause, making it difficult for Claude to know when to select this skill over others. The trigger terms are reasonable but incomplete.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about asyncio, writing async/await code, coroutines, event loops, or making Python code non-blocking.'

Replace 'comprehensive guidance' with specific concrete actions, e.g., 'Write coroutines, manage event loops, use asyncio.gather and TaskGroups, implement async generators, and handle async context managers.'

Include more natural trigger terms users would say, such as 'coroutine', 'event loop', 'aiohttp', 'async generator', 'concurrent tasks', or 'make my code async'.

DimensionReasoningScore

Specificity

Names the domain (async Python, asyncio, concurrent programming) and mentions some concepts (async/await, non-blocking systems), but doesn't list specific concrete actions like 'write coroutines', 'manage event loops', 'handle task groups', or 'implement async generators'.

2 / 3

Completeness

Describes what the skill covers (async Python guidance) but completely lacks any 'Use when...' clause or explicit trigger guidance for when Claude should select this skill. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' portion is also vague ('comprehensive guidance' is fluff), warranting a score of 1.

1 / 3

Trigger Term Quality

Includes relevant keywords like 'asyncio', 'async/await', 'asynchronous', and 'concurrent programming', but misses common user variations like 'coroutines', 'event loop', 'aiohttp', 'async for', 'gather', 'TaskGroup', or phrases users might say like 'make my code async' or 'non-blocking I/O'.

2 / 3

Distinctiveness Conflict Risk

The focus on asyncio and async/await in Python provides some specificity, but 'concurrent programming patterns' and 'high-performance systems' are broad enough to overlap with skills about threading, multiprocessing, or general Python performance optimization.

2 / 3

Total

7

/

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

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

10

/

11

Passed

Repository
popey/claude-code-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.