plugins/workiq-productivity/skills/action-item-extractor/SKILL.md
Extract action items with owners, deadlines, and priorities from meeting content
npx skillsauth add microsoft/work-iq action-item-extractorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Parses Teams meeting chat messages for action-oriented language — commitments, assignments, and deadlines. Cross-references owners against the attendee list and assigns priority levels. Outputs a structured table ready for downstream recipes.
| Requirement | Details |
|-------------|---------|
| WorkIQ CLI | User profile, meeting details, chat messages (read queries via ask) |
| Input | Type | Description | |-------|------|-------------| | meeting_identifier | string | Meeting title, keyword, or "latest" | | date | string (optional) | Target date (defaults to today) |
workiq-ask (
question: "What is my profile including display name and time zone? Also find the meeting matching '<meeting_identifier>' on <date> and list all attendees with their names and email addresses."
)
Extract: displayName, time zone, attendee list with names and emails.
workiq-ask (
question: "Get all chat messages from the Teams meeting '<meeting subject>' held on <date>, including sender names and timestamps."
)
Scan messages for:
Match extracted owner names to attendees[] from Step 1. Flag any unresolved names.
| # | Description | Owner | Due Date | Priority | |---|-------------|-------|----------|----------| | 1 | ... | ... | ... | P1/P2/P3 |
Return action items as structured data, plus inline display for the user.
| Error | Solution | |-------|----------| | No chat messages | Report "No meeting content found" | | Unresolved owner names | List as "[Unresolved: partial name]" for user clarification | | No deadlines mentioned | Mark all due dates as "TBD" |
Returns: structured action item list with owners, due dates, and priorities. Usable as input for downstream recipes.
This skill is invoked by recipes or orchestration agents — not directly by end users. To invoke it, supply the required inputs and ensure authentication is configured.
"sprint planning"), a partial title, or "latest" to target the most recent meeting."2026-03-03") to scope the calendar lookup. Omit to default to today.meeting_identifier (and optionally date) as inputs. The skill will execute Steps 1–7 automatically.{
"meeting_identifier": "sprint planning",
"date": "2026-03-03"
}
Output (sample): | # | Description | Owner | Due Date | Priority | |---|-------------|-------|----------|----------| | 1 | Update API docs with new endpoint schema | Firstname1 Lastname1 | 2026-03-07 | P2 | | 2 | Fix login blocker bug before release | Firstname2 Lastname2 | 2026-03-04 | P1 | | 3 | Review UX mocks when you get a chance | [Unresolved: Firstname3] | TBD | P3 |
{
"meeting_identifier": "latest"
}
The skill resolves today's date from the user profile time zone, finds the most recently concluded meeting, and parses its chat transcript for action items.
{
"meeting_identifier": "Q1 budget review",
"date": "2026-02-28"
}
The skill searches calendar events on February 28 for a meeting matching "Q1 budget review", fetches its Teams chat, and returns all commitments made — including any flagged with "ASAP" or "before end of quarter" language as P1 items.
business
Generates a Microsoft Planner status report for one plan, using task status, owners, dates, priorities, buckets, risks, wins, progress, upcoming commitments, and milestones.
tools
Adds Microsoft Entra SSO (single sign-on, no OBO) to a Microsoft 365 Copilot declarative agent whose tools are served by an MCP server — for BOTH widget standards: (1) the MCP Apps standard (from create-mcp-app / the MCP Apps SDK): a plugin manifest such as readiness_plugin.json (or another *_plugin.json with a runtimes[] block) and an EXPRESS-based MCP server; and (2) the OpenAI Apps (OAI Apps) layout from the ui-widget-developer skill: appPackage/mcpPlugin.json and a raw-http MCP server. When the layout is ambiguous, DEFAULT to the MCP Apps standard (most projects use it). The skill auto-detects the layout, reuses the existing named devtunnel + env/.env.local (never creates a second tunnel), registers the Entra app + ATK OAuth (MicrosoftEntra), patches the plugin manifest's runtimes[] auth to OAuthPluginVault, injects a minimal JWKS bearer-token guard into the existing server (an EXPRESS middleware for MCP Apps, or a raw-http guard WITHOUT rewriting to Express for OAI Apps), validates, sideloads, and prints an app-registration summary. SSO only — no OBO. Triggered by: "add sso to my mcp server", "wire entra sso for my copilot agent", "setup sso for mcp apps", "add sso after create-mcp-app", "add sso after ui-widget-developer", "add entra auth to my express mcp server", "configure only sso no obo"
tools
Build MCP servers for Copilot Chat using the OpenAI Apps SDK or MCP Apps SDK widget rendering support (any language). Use this skill when: - Creating MCP servers that integrate with M365 Copilot declarative agents - Building rich interactive widgets (React + Fluent UI) that render in Copilot Chat - Implementing tools that return structuredContent for widget rendering - Adapting an existing MCP server to support Copilot widget rendering - Setting up devtunnels for localhost MCP server exposure - Configuring mcpPlugin.json manifests with RemoteMCPServer runtime Do NOT use this skill for general agent development (scaffolding, manifests, deployment) — use declarative-agent-developer instead. This skill is ONLY for MCP server + widget development. Triggers: "MCP server for Copilot", "OpenAI Apps SDK", "Copilot widget", "structuredContent", "MCP plugin", "devtunnels MCP", "OAI app", "widget rendering", "UI widget"
tools
Browse and discover SharePoint sites, lists, document libraries, and file contents — navigate your SharePoint world without leaving the CLI.