Awesome-omni-skill typespec-m365-copilot-typespec-create-agent
Generate a complete TypeSpec declarative agent with instructions, capabilities, and conversation starters for Microsoft 365 Copilot Use when: the task directly matches typespec create agent responsibilities within plugin typespec-m365-copilot. Do not use when: a more specific framework or task-focused skill is clearly a better match.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data-ai/typespec-m365-copilot-typespec-create-agent" ~/.claude/skills/diegosouzapw-awesome-omni-skill-typespec-m365-copilot-typespec-create-agent && rm -rf "$T"
manifest:
skills/data-ai/typespec-m365-copilot-typespec-create-agent/SKILL.mdsource content
Typespec M365 Copilot Typespec Create Agent
Scope
- Use when: the task directly matches typespec create agent responsibilities within plugin typespec-m365-copilot.
- Do not use when: a more specific framework or task-focused skill is clearly a better match.
Shared Plugin Context
See
references/plugin-context.md.
Source
- Converted from
/tmp/codex-awesome-materialized-2f0wkne1/plugins/typespec-m365-copilot/skills/typespec-create-agent/SKILL.md
Instructions
Create TypeSpec Declarative Agent
Create a complete TypeSpec declarative agent for Microsoft 365 Copilot with the following structure:
Requirements
Generate a
main.tsp file with:
-
Agent Declaration
- Use
decorator with a descriptive name and description@agent - Name should be 100 characters or less
- Description should be 1,000 characters or less
- Use
-
Instructions
- Use
decorator with clear behavioral guidelines@instructions - Define the agent's role, expertise, and personality
- Specify what the agent should and shouldn't do
- Keep under 8,000 characters
- Use
-
Conversation Starters
- Include 2-4
decorators@conversationStarter - Each with a title and example query
- Make them diverse and showcase different capabilities
- Include 2-4
-
Capabilities (based on user needs)
- for web content with optional site scopingWebSearch
- for document access with URL filteringOneDriveAndSharePoint
- for Teams channel/chat accessTeamsMessages
- for email access with folder filteringEmail
- for organization people searchPeople
- for Python code executionCodeInterpreter
- for image generationGraphicArt
- for Copilot connector contentGraphConnectors
- for Dataverse data accessDataverse
- for meeting content accessMeetings
Template Structure
import "@typespec/http"; import "@typespec/openapi3"; import "@microsoft/typespec-m365-copilot"; using TypeSpec.Http; using TypeSpec.M365.Copilot.Agents; @agent({ name: "[Agent Name]", description: "[Agent Description]" }) @instructions(""" [Detailed instructions about agent behavior, role, and guidelines] """) @conversationStarter(#{ title: "[Starter Title 1]", text: "[Example query 1]" }) @conversationStarter(#{ title: "[Starter Title 2]", text: "[Example query 2]" }) namespace [AgentName] { // Add capabilities as operations here op capabilityName is AgentCapabilities.[CapabilityType]<[Parameters]>; }
Best Practices
- Use descriptive, role-based agent names (e.g., "Customer Support Assistant", "Research Helper")
- Write instructions in second person ("You are...")
- Be specific about the agent's expertise and limitations
- Include diverse conversation starters that showcase different features
- Only include capabilities the agent actually needs
- Scope capabilities (URLs, folders, etc.) when possible for better performance
- Use triple-quoted strings for multi-line instructions
Examples
Ask the user:
- What is the agent's purpose and role?
- What capabilities does it need?
- What knowledge sources should it access?
- What are typical user interactions?
Then generate the complete TypeSpec agent definition.