CtrlK
BlogDocsLog inGet started
Tessl Logo

m365-agents-py

Microsoft 365 Agents SDK for Python. Build multichannel agents for Teams/M365/Copilot Studio with aiohttp hosting, AgentApplication routing, streaming responses, and MSAL-based auth.

56

Quality

63%

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/m365-agents-py/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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 skill provides substantial, mostly actionable code examples for building Microsoft 365 agents with the Python SDK, covering hosting, routing, streaming, OAuth, and Copilot Studio integration. Its main weaknesses are redundancy between sections (overlapping handler examples), missing validation/verification steps in the workflow, minor code errors (syntax issues, missing imports), and a monolithic structure that would benefit from splitting detailed patterns into separate reference files.

Suggestions

Add validation checkpoints to the core workflow: e.g., 'Verify server is running: curl http://localhost:3978/api/messages' and 'Test with Bot Framework Emulator before deploying'.

Fix code errors: `AgentApplication[TurnState]` instead of `AgentApplicationTurnState`, add missing `Activity` import in the invoke handler, and add `import aiohttp` in the OAuth section.

Move the Streaming, OAuth, and Copilot Studio Client sections into separate reference files (e.g., references/streaming.md, references/oauth.md) and link to them from the main SKILL.md to reduce body length.

Deduplicate overlapping handler examples between the Core Workflow and AgentApplication Routing sections — the Core Workflow should be minimal, with routing patterns consolidated in one place.

DimensionReasoningScore

Conciseness

The skill is fairly long (~250+ lines) with multiple large code blocks that overlap in content (e.g., the message handler and auth handler patterns appear in both the Core Workflow and AgentApplication Routing sections). The 'Important Notice' section and some best practices restate things Claude would infer. However, it avoids explaining basic concepts like what aiohttp or MSAL are.

3 / 5

Actionability

The code examples are mostly executable and concrete with real import paths, decorator patterns, and server setup. However, there's a syntax error in `AgentApplicationTurnState` (missing brackets — should be `AgentApplication[TurnState]`), the `Activity` import is missing in the invoke handler, and the `aiohttp` import is missing in the OAuth section. These gaps prevent a score of 5.

4 / 5

Workflow Clarity

The Core Workflow section provides a clear end-to-end setup sequence, but there are no validation checkpoints — no steps to verify the agent is running, test the endpoint, or validate the configuration. For an SDK integration involving authentication and environment configuration, missing verification steps (e.g., 'test with Bot Framework Emulator' or 'verify token acquisition') is a notable gap.

3 / 5

Progressive Disclosure

The skill references a `references/acceptance-criteria.md` file and provides external links, which is good. However, the body itself is quite long with multiple large code blocks that could be split into separate reference files (e.g., streaming, OAuth, Copilot Studio client). The reference file is mentioned but no bundle files were provided, so we can't verify its content. The structure is flat — all patterns are inlined rather than appropriately distributed.

3 / 5

Total

13

/

20

Passed

Description

70%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 is technically specific and clearly identifies a distinct niche around the Microsoft 365 Agents SDK for Python. Its main weakness is the lack of an explicit 'Use when...' clause, which would help Claude know exactly when to select this skill. The trigger terms are good but could include more natural user-facing synonyms like 'bot' or 'chatbot'.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user wants to build bots or agents for Microsoft Teams, M365, or Copilot Studio using Python.'

Include natural synonyms and related terms users might say, such as 'bot', 'chatbot', 'Teams app', or 'Azure bot framework'.

DimensionReasoningScore

Specificity

Lists several specific capabilities: 'aiohttp hosting', 'AgentApplication routing', 'streaming responses', 'MSAL-based auth', and 'multichannel agents for Teams/M365/Copilot Studio'. These are concrete and technical, though could elaborate slightly more on what actions the skill enables (e.g., creating, deploying, configuring).

4 / 5

Completeness

The 'what' is clear — build multichannel agents with specific technical components. However, there is no explicit 'when' clause (e.g., 'Use when...'). The absence of a 'when' clause caps this at 3 per the rubric guidelines.

3 / 5

Trigger Term Quality

Includes strong trigger terms like 'Microsoft 365', 'Teams', 'Copilot Studio', 'agents', 'aiohttp', 'MSAL', 'streaming', and 'Python'. Missing some natural user phrases like 'bot', 'chatbot', 'M365 bot', 'Teams app', or 'Azure bot' that users might naturally say.

4 / 5

Distinctiveness Conflict Risk

Highly distinctive with a clear niche: Microsoft 365 Agents SDK specifically for Python, targeting Teams/M365/Copilot Studio with specific technical stack (aiohttp, MSAL, AgentApplication). Very unlikely to conflict with other skills.

5 / 5

Total

16

/

20

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.

Validation10 / 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
administrakt0r/AI-Agents-Safe-Coding-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.