Microsoft Teams bots and AI agents - Claude/OpenAI, Adaptive Cards, Graph API
35
32%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/ms-teams-apps/SKILL.mdQuality
Discovery
22%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This description reads more like a tag list or title than a proper skill description. It lacks any concrete actions (verbs), has no 'Use when...' clause, and relies on technology names without explaining what the skill actually helps accomplish. The Microsoft Teams focus provides some distinctiveness, but the description needs significant improvement to be useful for skill selection.
Suggestions
Add concrete action verbs describing what the skill does, e.g., 'Builds and deploys Microsoft Teams bots and AI agents, designs Adaptive Cards for interactive messaging, integrates with Microsoft Graph API for user and channel data.'
Add an explicit 'Use when...' clause with trigger terms, e.g., 'Use when the user wants to create a Teams bot, build a Teams chatbot, design Adaptive Cards, or integrate AI (Claude/OpenAI) into Microsoft Teams.'
Include common user-facing variations like 'Teams app', 'Teams chatbot', 'Teams integration', 'conversational bot', and 'Teams messaging' to improve trigger term coverage.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description lists technologies and frameworks (Adaptive Cards, Graph API, Claude/OpenAI) but does not describe any concrete actions. There are no verbs indicating what the skill actually does — no 'build', 'deploy', 'configure', etc. | 1 / 3 |
Completeness | The description only loosely addresses 'what' (Microsoft Teams bots/AI agents) without any explicit 'when' clause or trigger guidance. There is no 'Use when...' or equivalent, and the 'what' itself is just a list of technologies rather than a clear explanation of capabilities. | 1 / 3 |
Trigger Term Quality | It includes some relevant keywords like 'Microsoft Teams', 'bots', 'AI agents', 'Adaptive Cards', and 'Graph API' that users might mention. However, it misses common variations like 'Teams app', 'chatbot', 'Teams integration', 'messaging extension', or 'Teams webhook'. | 2 / 3 |
Distinctiveness Conflict Risk | The mention of 'Microsoft Teams bots' provides some niche specificity, but 'AI agents' and 'Claude/OpenAI' are very broad terms that could overlap with many other skills related to AI development or chatbot building outside of Teams. | 2 / 3 |
Total | 6 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill is a comprehensive reference document for Teams app development with strong, executable code examples, but it fundamentally fails as a SKILL.md by being massively over-scoped and verbose. It tries to cover 8+ distinct topics (bots, cards, Graph API, auth, RAG, deployment, testing, troubleshooting) in a single file without any progressive disclosure. Much of the content (manifest schemas, Docker boilerplate, Azure CLI commands) is standard knowledge that Claude doesn't need spelled out at this length.
Suggestions
Split into focused files: keep SKILL.md as a concise overview (~50-80 lines) with quick start, then reference separate files like ADAPTIVE_CARDS.md, GRAPH_API.md, CLAUDE_INTEGRATION.md, DEPLOYMENT.md
Remove content Claude already knows: full manifest JSON schemas, basic Docker/docker-compose patterns, standard Azure CLI commands, and the ASCII architecture diagrams can be reduced to brief notes or omitted entirely
Add validation checkpoints to workflows: after deployment steps include verification commands (e.g., 'curl your endpoint to confirm it responds'), after manifest changes include 'validate with Teams Toolkit before uploading'
Focus the skill on what's genuinely non-obvious: Teams-specific gotchas, the exact SDK v2 API patterns, and the Claude-to-Teams integration wiring — cut everything else to brief pointers
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~800+ lines. Contains extensive boilerplate Claude already knows (how to use npm, Docker, Graph API patterns, basic TypeScript). The architecture overview ASCII art, conversation UX guidelines box, and full manifest examples are all things Claude can generate from minimal prompts. Much of this is reference documentation, not skill-specific instruction. | 1 / 3 |
Actionability | The code examples are fully executable and copy-paste ready — complete TypeScript bot implementations, working Adaptive Card definitions, Azure CLI deployment commands, Docker configs, and test examples. Concrete and specific throughout. | 3 / 3 |
Workflow Clarity | Steps for deployment and project setup are listed but lack explicit validation checkpoints. There's no 'verify your bot is running' step after deployment, no validation after manifest changes, and no feedback loops for error recovery in multi-step processes like Azure provisioning or the RAG pipeline. | 2 / 3 |
Progressive Disclosure | Monolithic wall of content with no bundle files or references to separate documents. Everything from architecture overview to deployment to troubleshooting is inlined in a single massive file. Topics like Graph API operations, Adaptive Cards, RAG, and authentication each warrant their own files. | 1 / 3 |
Total | 7 / 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 (1253 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 | |
65efb33
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.