CtrlK
BlogDocsLog inGet started
Tessl Logo

pytest-conversational

Test chat bots, voice assistants, and IVR menus with pytest using a small Conversation object and a callable bot adapter. Use when the user wants to write rule-based assertions over multi-turn dialogue without bringing in an LLM dependency, when they have a chatbot reachable as a Python callable or HTTP webhook, when they need to keep per-conversation state across turns and assert on slot filling, when they want pytest-native fixtures and a printable transcript on failure, or when they mention voice-assistant testing, IVR menu testing, conversational AI testing, LLM bot testing (used as the target under test, not as the matcher), expect matchers for bot replies, or multi-turn dialogue tests.

85

1.56x
Quality

78%

Does it follow best practices?

Impact

97%

1.56x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./SKILL.md

The canonical home for this skill is golikovichev/pytest-conversational

SKILL.md
Quality
Evals
Security

Quality

Content

57%Weight 40%Scale 1-3

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

Highly actionable body with excellent executable examples and clear sections, but it leans verbose and, critically, defers to a REFERENCE.md that is not present in the bundle, breaking the progressive-disclosure structure.

Suggestions

Tighten repeated prose after code blocks (e.g. the paragraph re-listing state/turns/history/transcript) so examples carry the explanation and conciseness improves.

Add a validation/verification checkpoint to the webhook and slot-filling workflows (e.g. assert convo.transcript() or validate the webhook reply shape before continuing) to raise workflow clarity.

Either ship the referenced REFERENCE.md in references/ or remove the repeated 'see REFERENCE.md' pointers and inline the essential API/matcher signatures so the skill is self-contained.

DimensionReasoningScore

Conciseness

The body is mostly efficient with executable examples, but the description is very long and parts of the Quick start / Multi-turn sections restate what each block already shows (e.g. re-explaining state/turns/history after the slot example).

2 / 3

Actionability

It provides fully executable, copy-paste-ready code for adapters, fixtures, slot-filling, the HTTP webhook, and matchers, plus concrete install commands and a precise request/response contract.

3 / 3

Workflow Clarity

The Quick start is a clear numbered sequence, but there is no validation/verification checkpoint shown (e.g. asserting the transcript or confirming a webhook reply before trusting it), and the webhook/SSRF section describes a guard but no validate-then-retry loop for failing bot calls.

2 / 3

Progressive Disclosure

The body repeatedly points to a 'REFERENCE.md next to this file' and a References section listing it, but no REFERENCE.md bundle file exists in references/scripts/assets, so the signaled one-level-deep reference is a broken pointer rather than real progressive disclosure.

1 / 3

Total

8

/

12

Passed

Description

100%Weight 40%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.

A strong, specific description that clearly states capabilities and explicit use-when triggers with natural terminology. The only minor weakness is length/verbosity, but it does not drift into vague fluff or over-claims.

DimensionReasoningScore

Specificity

It names multiple concrete actions (write rule-based assertions over multi-turn dialogue, keep per-conversation state across turns and assert on slot filling, expect matchers for bot replies) and concrete artifacts (Conversation object, callable bot adapter, pytest fixtures, printable transcript).

3 / 3

Completeness

It states both what the skill does (pytest Conversation object + bot adapter + fixtures/matchers) and when to use it via an explicit 'Use when...' clause enumerating concrete triggering situations.

3 / 3

Trigger Term Quality

It covers natural terms users would actually say ('chatbot', 'voice-assistant testing', 'IVR menu testing', 'conversational AI testing', 'multi-turn dialogue tests') with good breadth of variations rather than only technical jargon.

3 / 3

Distinctiveness Conflict Risk

The niche is clear and unusual (rule-based conversational/IVR testing in pytest with no LLM dependency on the test side), with distinct triggers that are unlikely to collide with general testing or doc skills.

3 / 3

Total

12

/

12

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
golikovichev/pytest-conversational
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.