add-action
Guide users through adding a new connector action to a Copilot Studio agent. Connector…
Run a batch test suite via the Copilot Studio Kit (Dataverse API). Uses the Power CAT Copilot Studio Kit to execute test cases against a published agent and produces pass/fail results with latencies. Requires the Kit installed in the environment, an App Registration with
$ npx -y skills add microsoft/skills-for-copilot-studio --skill run-tests-kit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/run-tests-kitContext preview
The summary Claude sees to decide when to auto-load this skill.
Run a batch test suite via the Copilot Studio Kit (Dataverse API). Uses the Power CAT Copilot Studio Kit to execute test cases against a published agent and produces pass/fail results with latencies. Requires the Kit installed in the environment, an App Registration with
user-invocable: false description: > Run a batch test suite via the Copilot Studio Kit (Dataverse API). Uses the Power CAT Copilot Studio Kit to execute test cases against a published agent and produces pass/fail results with latencies. Requires the Kit installed in the environment, an App Registration with Dataverse permissions, and a published agent. allowed-tools: Bash(node *run-tests.js *), Bash(npm install *), Read, Write, Glob, Grep, Edit context: fork agent: copilot-studio-test
Run a batch test suite against a **published** Copilot Studio agent using the [Power CAT Copilot Studio Kit](https://github.com/microsoft/Power-CAT-Copilot-Studio-Kit).
The user must have: 1. The **[Copilot Studio Kit](https://github.com/microsoft/Power-CAT-Copilot-Studio-Kit)** installed in their Power Platform environment 2. **Published** their agent in the Copilot Studio UI 3. **Created a test set** in the Copilot Studio Kit 4. An **Azure App Registration** with Dataverse permissions
1. **Read `tests/settings.json`** (relative to the user's project CWD) and check for missing or placeholder values (containing `YOUR_`).
2. **If the file doesn't exist**, create it from the template:
cp ${CLAUDE_SKILL_DIR}/../../tests/settings-example.json ./tests/settings.json3. **If values are missing**, ask the user for each missing value. Explain where to find each one:
Ask for ALL missing values at once (don't ask one at a time).
4. **Write `tests/settings.json`** with the collected values:
{
"dataverse": {
"environmentUrl": "<value>",
"tenantId": "<value>",
"clientId": "<value>"
},
"testRun": {
"agentConfigurationId": "<value>",
"agentTestSetId": "<value>"
}
}5. If all values are already configured and valid, proceed to Phase 2.
1. **Ensure `tests/package.json` exists** in the user's project. If not, copy it:
cp ${CLAUDE_SKILL_DIR}/../../tests/package.json ./tests/package.json2. **Install dependencies** if `tests/node_modules/` doesn't exist:
npm install --prefix tests
3. **Run the test script in the background** with a 100-minute timeout (6000000ms):
node ${CLAUDE_SKILL_DIR}/../../tests/run-tests.js --config-dir ./testsUse `run_in_background: true` for this command. Save the returned task ID.
4. **Wait 10 seconds**, then check the background task output (non-blocking check).
5. **Detect the authentication state** from the output:
> **Authentication Required** > > Open your browser to: https://microsoft.com/devicelogin > Enter the code: **XXXXXXXXX** (extract the actual code from the output) > > After signing in, the tests will continue automatically.
6. **Wait for the background task to complete** (blocking). The script polls every 20 seconds until all tests finish and downloads results as a CSV.
7. **Read the final output** to get the success rate and CSV filename.
8. Proceed to **Phase 3**.
1. **Get the results**: `Glob: tests/test-results-*.csv` — read the most recent CSV file (newest by modification time).
2. **Parse the CSV columns**: | Column | Meaning | |--------|---------| | Test Utterance | The user message that was tested | | Expected Response | What the test expected | | Response | What the agent actually responded | | Latency (ms) | Response time | | Result | `Success`, `Failed`, `Unknown`, `Error`, or `Pending` | | Test Type | `Response Match`, `Topic Match`, `Generative Answers`, `Multi-turn`, `Plan Validation`, or `Attachments` | | Result Reason | Why the test passed or failed |
3. **Focus on failed tests** (Result = `Failed` or `Error`). For each failure, analyze:
A plugin for Claude Code, GitHub Copilot CLI, and VS Code that enables authoring, testing, and troubleshooting Microsoft Copilot Studio STANDARD agents through YAML files — directly from your terminal or editor.
Repo: microsoft/skills-for-copilot-studio
Guide users through adding a new connector action to a Copilot Studio agent. Connector…
Generate and insert an Adaptive Card into a Copilot Studio topic using AdaptiveCardPrompt.…
Add generative answer nodes (SearchAndSummarizeContent or AnswerQuestionWithAI) to a Copilot…
Add a global variable to a Copilot Studio agent. Use when the user needs a variable that…
Add a knowledge source (public website or SharePoint) to a Copilot Studio agent. Use when the…
Add or modify a node in an existing Copilot Studio topic. Use when the user asks to add a…