CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

async-ordering-tests

Test async ordering - event-loop / queue / channel ordering assertions, JS Promise microtask vs macrotask ordering, Python `asyncio.gather` vs `asyncio.wait_for` semantics, Go goroutine + channel happens-before relationships, async/await re-entrancy. Use deterministic schedulers (sinon fake timers, asyncio test mode) to remove run-to-run variance. Use when a callback fires twice, a later response overwrites an earlier one, or a cancelled parent task leaves a child still running - bugs where completion order, not shared memory, is the defect.

0.98x
Quality

87%

Does it follow best practices?

Impact

98%

0.98x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is testland/async-ordering-tests

SKILL.md
Quality
Evals
Security

Quality

Content

75%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, well-structured pattern catalog with executable multi-language examples, per-pattern validation, and a useful anti-patterns table. The main improvements are making code snippets self-contained, trimming explanations of runtime semantics Claude already knows, and splitting per-runtime detail into reference files.

Suggestions

Make each code snippet self-contained: define trackedFetch inside the sequential-await example, note that createSerializingQueue is a stand-in for the user's serializer, and add the pytest import to Step 8.

Trim or shorten explanations of known runtime semantics (microtask draining, the Go happens-before chain) to one-line pointers, keeping only the assertion-relevant takeaway.

Split the per-runtime deep dives (e.g., Go channel semantics, asyncio cancellation) into one-level-deep reference files and add a symptom-to-step map in the "When to use" section so users can navigate directly from bug symptom to test pattern.

DimensionReasoningScore

Conciseness

Largely code-driven with tight one-to-three line commentary per step ("Real timers + sleep = flake. Fake timers = deterministic."). Minor over-explanation of concepts Claude already knows - the microtask-drain walkthrough, the Go happens-before chain, and "Misunderstanding this causes 'why did this fire twice' bugs" - which could be trimmed. Fits 4 (efficient with minor instances of over-explanation) rather than 3, since the padding is brief and each aside is tied to the assertion being tested.

4 / 5

Actionability

Concrete, near-executable TypeScript/Python/Go examples cover the common cases with real assertions. Minor gaps keep it below 5: the Step 3 sequential-await snippet reuses trackedFetch defined only inside the prior test's scope, Step 5 invokes an undefined createSerializingQueue, and Step 8 uses pytest.raises without importing pytest. Well above 3 since nothing is pseudocode and the guidance is copy-paste ready once those snippets are made self-contained.

4 / 5

Workflow Clarity

A clearly sequenced pattern catalog (JS timers, then Python asyncio, then Go channels, then cross-cutting backpressure/cancellation) where every pattern carries its own validation (expect/assert), plus an anti-patterns table cross-referencing fixes to specific steps and a Limitations section. Not 5 because there is no guidance on what to do when a test flakes or fails (feedback loop), and the "When to use" section does not map specific bug symptoms to specific steps.

4 / 5

Progressive Disclosure

Self-contained skill (no bundle files) with clear section headers per runtime and bug class, and a flat References section of external spec URLs with no nested internal references. Fits 4 (good structure, minor organization gaps): the ~265-line body inlines per-runtime deep dives that could be split into one-level-deep reference files, which is what keeps it from 5.

4 / 5

Total

16

/

20

Passed

Description

92%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.

An excellent description: specific, multi-runtime capability listing with an explicit and concrete "Use when" trigger clause and deliberate disambiguation from related concurrency skills. The only gap is a few common symptom phrasings (flaky test, race condition) that users might naturally say.

DimensionReasoningScore

Specificity

Lists multiple concrete actions with comprehensive per-runtime coverage: "event-loop / queue / channel ordering assertions", "JS Promise microtask vs macrotask ordering", "Python asyncio.gather vs asyncio.wait_for semantics", "Go goroutine + channel happens-before relationships", "async/await re-entrancy", plus "Use deterministic schedulers (sinon fake timers, asyncio test mode)". No coverage gaps within its niche, so it exceeds the 4 anchor (which allows minor gaps).

5 / 5

Completeness

Explicitly answers both: "what" (test async ordering across JS/Python/Go with deterministic schedulers) and "when" via a concrete "Use when a callback fires twice, a later response overwrites an earlier one, or a cancelled parent task leaves a child still running" clause with concrete trigger scenarios. Matches the 5 anchor exactly.

5 / 5

Trigger Term Quality

Strong natural phrases ("a callback fires twice", "a later response overwrites an earlier one", "cancelled parent task leaves a child still running") and framework names (Promise, asyncio, goroutine, event-loop). Not 5 because common user phrasings for these symptoms - "flaky test", "intermittent failure", "race condition" - are absent; far above 3 since keyword coverage goes well beyond "some relevant keywords".

4 / 5

Distinctiveness Conflict Risk

Clear niche (completion-order bugs, not shared-memory races) with distinct trigger scenarios. The closing phrase "bugs where completion order, not shared memory, is the defect" explicitly disambiguates from generic race-condition/data-race skills, minimizing conflict risk. Matches the 5 anchor.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

testland/qa

Path

plugins/qa-concurrency/skills/async-ordering-tests/SKILL.md

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.