Skip to content

feat: adding workiq and m365-agents-toolkit skills#62

Merged
darrelmiller merged 14 commits intomicrosoft:mainfrom
sebastienlevert:feature/plugin-marketplace
Mar 11, 2026
Merged

feat: adding workiq and m365-agents-toolkit skills#62
darrelmiller merged 14 commits intomicrosoft:mainfrom
sebastienlevert:feature/plugin-marketplace

Conversation

@sebastienlevert
Copy link
Collaborator

Summary

Transform the work-iq repo into a plugin marketplace hosting multiple Copilot plugins with standardized metadata and structure.

Changes

New structure

  • Marketplace registry (.github/plugin/marketplace.json) — central plugin index
  • workiq plugin — MCP server (ask_work_iq, accept_eula, get_debug_link) + skill
  • m365-agents-toolkit plugin — skills-only plugin for ATK CLI workflows

m365-agents-toolkit cleanup

  • Removed agent evaluator skill and all references
  • Removed TypeSpec/tsp references throughout
  • Removed security-guidelines, patterns-and-frameworks, common-pitfalls
  • Flattened references/ subdirectories (json/, shared/, scaffolding/) into single folder
  • Merged scaffolding-best-practices and scaffolding-examples into scaffolding-workflow
  • Rewrote conversation-design based on official Microsoft docs
  • Slimmed SKILL.md from 409 → 139 lines (extracted workspace-gates reference)
  • Updated install-atk to use real VS Code Marketplace extension ID
  • Replaced atk validate --file with atk validate
  • Removed all Python/JSON.parse validation references

Repo-level

  • Rewrote root README as marketplace landing page
  • Added CONTRIBUTING.md for plugin authors

sebastienlevert and others added 5 commits March 9, 2026 15:39
Transform the work-iq repo into a plugin marketplace hosting multiple
Copilot plugins with standardized metadata and structure.

Changes:
- Add marketplace registry (.github/plugin/marketplace.json)
- Add workiq plugin (MCP server + skill)
- Restructure m365-agents-toolkit as a marketplace plugin
  - Remove agent evaluator skill and all references
  - Remove TypeSpec/tsp references
  - Remove security-guidelines, patterns-and-frameworks, common-pitfalls
  - Flatten references subdirectories into single references/ folder
  - Merge scaffolding-best-practices into scaffolding-workflow
  - Merge scaffolding-examples into scaffolding-workflow
  - Rewrite conversation-design based on official MS docs
  - Slim SKILL.md from 409 to 139 lines, extract workspace-gates reference
  - Use real ATK VS Code extension ID instead of temp VSIX URL
  - Replace atk validate --file with atk validate
  - Remove all Python/JSON.parse validation references
- Rewrite root README as marketplace landing page
- Add CONTRIBUTING.md for plugin authors

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e Plugins

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add AGENTS.md with streamlined local plugin install instructions
- Add .github/plugin/plugin.json for each plugin (enables local install)
- Fix atk validate to always use --env local (not --env dev)
- Fix atk validate to run once per project (no --file flag, no per-file runs)
- Fix API plugins to use single atk add action call with all operations
- Pin ATK CLI to @rc and MCP Inspector to @0.20.0
- Update MCP plugin to inline tools in mcp_tool_description.tools (no separate file)
- Add local_endpoint and auth to MCP runtime templates
- Rename api-plugin-manifest URLs to plugin-manifest
- Add reinstall-after-edit instruction to self-maintenance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add new skill for building MCP servers with OpenAI Apps SDK widget
rendering for Copilot Chat. Includes references for widget patterns,
devtunnels, plugin schema, and best practices.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
feat: restructure repo as plugin marketplace
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures the work-iq repository into a GitHub Copilot CLI plugin marketplace, introducing a centralized marketplace registry and two initial plugins (workiq and m365-agents-toolkit) with standardized metadata, MCP configuration, and skill documentation.

Changes:

  • Added a marketplace registry at .github/plugin/marketplace.json and updated repo docs to position the repo as a plugin marketplace.
  • Added the workiq plugin (README, MCP config, skill docs, and plugin metadata).
  • Added the m365-agents-toolkit plugin with consolidated skills and extensive reference documentation for agent + MCP/widget development.

Reviewed changes

Copilot reviewed 30 out of 30 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
plugins/workiq/skills/workiq/SKILL.md Adds WorkIQ skill definition and MCP tool documentation for ask_work_iq.
plugins/workiq/README.md Adds plugin install and usage docs for the WorkIQ plugin.
plugins/workiq/.mcp.json Adds MCP server configuration for the WorkIQ plugin.
plugins/workiq/.github/plugin/plugin.json Adds plugin metadata for marketplace consumption.
plugins/m365-agents-toolkit/skills/ui-widget-developer/references/widget-patterns.md Adds widget HTML templates/patterns for Copilot widget rendering.
plugins/m365-agents-toolkit/skills/ui-widget-developer/references/plugin-schema.md Adds MCP plugin schema guidance and manifest examples.
plugins/m365-agents-toolkit/skills/ui-widget-developer/references/mcp-server-pattern.md Adds a TypeScript reference MCP server implementation pattern.
plugins/m365-agents-toolkit/skills/ui-widget-developer/references/devtunnels.md Adds devtunnel setup scripts and workflow documentation.
plugins/m365-agents-toolkit/skills/ui-widget-developer/references/copilot-widget-protocol.md Adds a language-agnostic protocol spec for Copilot widgets over MCP.
plugins/m365-agents-toolkit/skills/ui-widget-developer/references/best-practices.md Adds best practices for widget/tool/resource patterns and CORS/security.
plugins/m365-agents-toolkit/skills/ui-widget-developer/SKILL.md Adds the ui-widget-developer skill entrypoint and routing rules.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/workspace-gates.md Adds workspace gating rules for agent scaffolding/editing workflows.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/schema.md Adds schema version reference links for agent/plugin manifests.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/scaffolding-workflow.md Adds the standardized scaffolding workflow for new agents.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/mcp-plugin.md Adds guidance for integrating RemoteMCPServer plugins into agents.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/examples.md Adds examples for common M365 agent development scenarios.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/editing-workflow.md Adds the standardized validate+provision editing workflow rules.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/deployment.md Adds ATK CLI lifecycle/deployment guidance and environment conventions.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/conversation-design.md Adds updated conversation/instruction design guidance based on MS docs.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/best-practices.md Adds best practices for security/perf/testing/compliance for agents.
plugins/m365-agents-toolkit/skills/m365-agent-developer/references/api-plugins.md Adds comprehensive ATK-driven API plugin guidance and patterns.
plugins/m365-agents-toolkit/skills/m365-agent-developer/SKILL.md Adds the main m365-agent-developer skill definition and routing.
plugins/m365-agents-toolkit/skills/install-atk/SKILL.md Adds the install-atk skill to install/update ATK CLI + VS Code extension.
plugins/m365-agents-toolkit/README.md Adds marketplace install and usage docs for the toolkit plugin.
plugins/m365-agents-toolkit/.github/plugin/plugin.json Adds plugin metadata for marketplace consumption.
plugins/m365-agents-toolkit/skills/ui-widget-developer/references/widget-patterns.md Adds widget template and implementation patterns for OpenAI Apps SDK widgets.
README.md Rewrites the root README as the marketplace landing page and quickstart.
CONTRIBUTING.md Adds contribution guidance for plugin authors and marketplace registration.
AGENTS.md Adds repo structure + installation guidance for AI agents working in this repo.
.github/plugin/marketplace.json Adds the central marketplace index for plugins and skill paths.
.claude-plugin/marketplace.json Adds/updates Claude plugin marketplace metadata (mirrors registry content).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +15 to +24
Add to your `.mcp.json` or IDE MCP settings:

```json
{
"workiq": {
"command": "npx",
"args": ["-y", "@microsoft/workiq@latest", "mcp"],
"tools": ["*"]
}
}
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example says to add this to your .mcp.json, but the JSON shown is missing the top-level mcpServers key that your actual .mcp.json files use (see plugins/workiq/.mcp.json). Please either wrap this example under mcpServers for .mcp.json, or split the docs into two explicit examples (one for .mcp.json and one for IDE settings).

Copilot uses AI. Check for mistakes.
Comment on lines 58 to 59
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect/mcp/install?name=workiq&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40microsoft%2Fworkiq%22%2C%22mcp%22%5D%7D)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=workiq&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40microsoft%2Fworkiq%22%2C%22mcp%22%5D%7D&quality=insiders)
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The VS Code/Insiders install badge URLs embed an npx config using @microsoft/workiq without @latest, but later examples use @microsoft/workiq@latest. Consider keeping these consistent (or pinning an explicit version) so users don’t end up with different installs depending on which path they follow.

Copilot uses AI. Check for mistakes.
Comment on lines 77 to 86
Or add it as an MCP server in your coding agent or IDE:

```json
{
"workiq": {
"command": "npx",
"args": [
"-y",
"@microsoft/workiq",
"mcp"
],
"tools": [
"*"
]
"args": ["-y", "@microsoft/workiq@latest", "mcp"],
"tools": ["*"]
}
}
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This MCP config snippet appears to be missing the mcpServers wrapper that the repo documents elsewhere for .mcp.json (see AGENTS.md / CONTRIBUTING.md examples). If this is intended for VS Code’s MCP settings, it should match the expected shape; otherwise readers may copy an invalid config and the server won’t load.

Copilot uses AI. Check for mistakes.
Comment on lines +9 to +13
**NEVER manually write tool definitions.** Always use MCP Inspector to get the complete tool definitions from your running MCP server:

```bash
npx @anthropic-ai/mcp-inspector
```
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MCP Inspector command here uses @anthropic-ai/mcp-inspector, but other repo docs use @modelcontextprotocol/inspector (for example in skills/ui-widget-developer/SKILL.md and m365-agent-developer/references/mcp-plugin.md). Please standardize on the same inspector package/command to avoid users following a broken or inconsistent setup path.

Copilot uses AI. Check for mistakes.
Comment on lines +178 to +184
// Debug logging
console.log('=== WIDGET DEBUG ===');
console.log('window.openai:', window.openai);
if (window.openai) {
console.log('toolOutput:', window.openai.toolOutput);
console.log('theme:', window.openai.theme);
}
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The template’s debug logging prints window.openai.toolOutput to the console. In real Copilot widget scenarios this data can contain user content/PII; logging it by default is risky and may violate privacy expectations. Consider removing these logs from the default template or gating them behind an explicit debug flag.

Copilot uses AI. Check for mistakes.
Comment on lines +230 to +266
function initialize() {
const data = getWidgetData();
if (data) {
renderWidget(data);
}

// Listen for state changes
if (window.openai && typeof window.openai.onStateChange === 'function') {
window.openai.onStateChange(function(newState) {
console.log('onStateChange:', newState);
renderWidget(newState);
});
}
}

initialize();

// Poll if not rendered (data might arrive late)
if (!rendered) {
let attempts = 0;
const maxAttempts = 50;
const poll = setInterval(function() {
attempts++;
const data = getWidgetData();
if (data) {
renderWidget(data);
clearInterval(poll);
} else if (attempts >= maxAttempts) {
clearInterval(poll);
document.getElementById('title').textContent = 'Unable to load';
}
}, 100);
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initialize);
}
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

initialize() is called immediately and also registered on DOMContentLoaded when document.readyState === 'loading'. This can lead to duplicate renders, duplicate onStateChange subscriptions, and multiple polling intervals in slow-load cases. Recommend ensuring initialization happens exactly once (e.g., call immediately only when the DOM is ready, or only use the DOMContentLoaded hook with a guard).

Copilot uses AI. Check for mistakes.
Comment on lines +133 to +136
$content = Get-Content $envFile
$content = $content -replace "^MCP_SERVER_URL=.*", "MCP_SERVER_URL=$tunnelUrl"
$content = $content -replace "^MCP_SERVER_DOMAIN=.*", "MCP_SERVER_DOMAIN=$tunnelDomain"
$content | Out-File -FilePath $envFile -Encoding UTF8
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the PowerShell devtunnel script, $content = Get-Content $envFile will fail if env/.env.local doesn’t exist yet, and the -replace calls only update existing MCP_SERVER_URL/MCP_SERVER_DOMAIN lines (they won’t add them if missing). Consider creating the file if absent and appending the variables when they’re not present, similar to the bash script behavior.

Copilot uses AI. Check for mistakes.
sebastienlevert and others added 2 commits March 9, 2026 19:23
Replace -c declarative-agent-basic with -c declarative-agent in
deployment.md and scaffolding-workflow.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Plugin marketplace: skills, MCP servers, and capability name fix
@sebastienlevert sebastienlevert changed the title feat: restructure repo as plugin marketplace feat: adding workiq and m365-agents-toolkit skills Mar 9, 2026
@sebastienlevert sebastienlevert marked this pull request as draft March 9, 2026 20:10
sebastienlevert and others added 6 commits March 9, 2026 20:24
- Add 'Scaffold the Agent Project First' section to mcp-plugin.md with
  the 5 required lifecycle steps (especially teamsApp/extendToM365)
- Add Step 0 to the MCP plugin workflow checklist
- Add M365_TITLE_ID / extendToM365 warning to deployment.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Full overwrite of all reference files and SKILL.md body from
agency-microsoft/playground main branch. Kept local skill name
and description in SKILL.md frontmatter.

Key changes:
- SKILL.md: Added OAI vs MCP Apps path selection, ext-apps plugin
  delegation, MCP Apps migration guidance
- best-practices.md: Updated tool response format with full _meta
  fields, named tunnel references
- devtunnels.md: Switched to named tunnels for stable URLs
- mcp-server-pattern.md: Use toolMeta helper in tool definitions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- deployment.md: Remove T_ prefix from test URLs, split local vs
  non-local test link guidance (M365_TITLE_ID vs SHARE_LINK)
- Fix @anthropic-ai/mcp-inspector → @modelcontextprotocol/inspector@0.20.0
- Pin MCP Inspector to 0.20.0 across both skills (0.21 has a bug)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Full overwrite with upstream version: richer trigger patterns,
comprehensive use case tables, stronger skill activation guidance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Rename plugin directory from m365-agents-toolkit to microsoft-365-agents-toolkit
- Rename m365-agent-developer skill to declarative-agent-developer
- Update marketplace.json, AGENTS.md, README.md, and .gitignore

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sebastienlevert sebastienlevert marked this pull request as ready for review March 10, 2026 18:45
@darrelmiller darrelmiller merged commit f0382ea into microsoft:main Mar 11, 2026
1 check passed
@sebastienlevert sebastienlevert deleted the feature/plugin-marketplace branch March 11, 2026 20:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants