CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

azure-mgmt-botservice-py

Azure Bot Service Management SDK for Python. Use for creating, managing, and configuring Azure Bot Service resources.

Quality

70%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/azure-mgmt-botservice-py/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a dense, largely executable API reference: complete code for every operation class, useful SKU/channel/operation tables, and no concept padding. Its weaknesses are the absence of any validation or verification guidance around destructive and configuration operations (capping workflow clarity at 3) and the monolithic single-file layout, where channel and connection detail belongs in one-level-deep reference files. Minor API-accuracy slips (bots.update, key access) slightly reduce copy-paste reliability.

Suggestions

Add verification and safety checkpoints: confirm the bot's provisioning state after create, verify a channel is enabled before listing keys, and gate 'Delete Bot' behind an explicit confirmation step (e.g., get the bot and confirm its name/resource group before deleting).

Move the per-channel configuration (Teams, Direct Line, Web Chat) and the OAuth connection examples into references/ files (e.g., references/channels.md, references/connections.md), keeping SKILL.md as a concise overview with clearly signaled one-level-deep links.

Fix the fragile spots in the code: replace 'client.bots.update' with the SDK's actual update pattern (create/put semantics), show the correct attribute path for Direct Line keys instead of the hasattr chain, and drop the duplicated credential/client block from 'Create a Bot'.

DimensionReasoningScore

Conciseness

The body is code-forward with dense reference tables and no re-explanation of concepts Claude already knows, matching anchor 4 (efficient with minor trimmable instances): the credential/client construction block is duplicated between 'Authentication' and 'Create a Bot', and the closing line 'This skill is applicable to execute the workflow or actions described in the overview.' is pure filler. It is not 5 because of those redundancies, but the padding is too minor for anchor 3's 'some unnecessary explanation'.

4 / 5

Actionability

Concrete, complete code examples cover installation, env vars, client construction, bot CRUD, three channel types, and OAuth connections, matching anchor 4 (mostly executable with minor gaps). It is not 5 because some examples are not copy-paste reliable: 'client.bots.update' does not match the SDK's create-based update pattern, and the 'List Channel Keys' section's hasattr/keys.properties.properties.sites access is fragile rather than definitive.

4 / 5

Workflow Clarity

There is a logical install-then-authenticate-then-operate progression across sections, but no validation or verification anywhere: the destructive 'Delete Bot' operation has no confirmation or safety step, and channel/connection creation has no post-creation verification (e.g., checking provisioning state or confirming a channel is enabled before listing keys). Per the rubric's cap, a destructive operation without validation steps cannot score above 3; it is not 2 because the sequence and per-task structure are clear and complete.

3 / 5

Progressive Disclosure

The skill is a standalone SKILL.md (~317 lines) with no bundle files; it is well-sectioned with clear headers, but roughly 200 lines of per-channel and connection API reference are inlined that would sit better in references/ files (e.g., CHANNELS.md, CONNECTIONS.md), matching anchor 3 ('content that should be separate is inline'). It is not 2 because the section headers keep it navigable, and not 4 because no external reference structure exists at all despite the body being well past simple-skill size.

3 / 5

Total

14

/

20

Passed

Description

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

The description correctly identifies the domain and includes an explicit 'Use for...' clause covering both what and when, but the 'when' half merely restates the 'what' and the vocabulary stays at the generic 'resources' level rather than naming bots, channels, or connections. Trigger-term coverage beyond the product name is thin. It is serviceable but below the quality of the good examples, which enumerate concrete objects and natural user phrasings.

Suggestions

Enumerate the concrete objects the skill operates on, e.g., 'Create, update, and delete Azure Bot Service resources: bots, channels (Teams, Direct Line, Web Chat, Slack, Email), and OAuth connection settings.'

Replace the restating 'Use for...' clause with real trigger guidance, e.g., 'Use when creating or configuring Azure bots, enabling bot channels, or managing Direct Line keys with the azure-mgmt-botservice Python SDK.'

Include natural synonyms users would say ('chatbot', 'bot registration', 'Direct Line', 'Web Chat', package name 'azure-mgmt-botservice') to widen trigger coverage.

DimensionReasoningScore

Specificity

The description names the domain ('Azure Bot Service Management SDK for Python') and lists verbs ('creating, managing, and configuring'), but 'managing'/'configuring' are generic and the concrete resource objects the skill actually covers (bots, channels, OAuth connections) are never named. It matches anchor 3 (domain plus a couple of actions, not comprehensive) better than anchor 4, which expects specific actions with only minor coverage gaps.

3 / 5

Completeness

Both are present: the 'what' ('Azure Bot Service Management SDK for Python... creating, managing, and configuring') and an explicit 'when' clause ('Use for creating, managing, and configuring Azure Bot Service resources'). This matches anchor 4 (both present, 'when' could be more explicit) rather than anchor 3, because the 'when' is explicitly stated, not missing or merely implied; it is not 5 because the 'when' clause only restates the 'what' without any concrete trigger phrases beyond the domain itself.

4 / 5

Trigger Term Quality

'Azure Bot Service', 'Python', and 'SDK' are natural terms a user would say, but common variations and synonyms ('bot', 'chatbot', 'channel', 'Teams', 'Direct Line', 'azure-mgmt-botservice') are absent. This fits anchor 3 (some relevant keywords, missing common variations) rather than anchor 4's good keyword coverage.

3 / 5

Distinctiveness Conflict Risk

The niche is clear (Azure Bot Service management-plane operations in Python) and would rarely trigger the wrong generic skill, matching anchor 4. It is not 5 because it does not disambiguate resource management from Bot Framework bot-logic development, leaving minor overlap risk with closely related Azure/bot skills.

4 / 5

Total

14

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

skills/azure-mgmt-botservice-py/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.