Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Trigger ADO pipelines for a Copilot-created PR by posting /azp run comments. Use when the user asks to trigger CI pipelines for a specific PR.
.claude/skills/trigger-pipelines-for-copilot-pr/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -39% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -20% | 0% |
Post the following two comments to the PR specified by the user ($ARGUMENTS), in the microsoft/FluidFramework repository on GitHub. They need to be posted separately because otherwise it gets too long and fails to trigger correctly.
First comment:
/azp run Build - protocol-definitions,Build - test-tools,server-gitrest,server-gitssh,server-historian,server-routerlicious,Build - client packages,repo-policy-checkSecond comment:
/azp run Build - api-markdown-documenter,Build - benchmark-tool,Build - build-common,Build - build-tools,Build - common-utils,Build - eslint-config-fluidPosting those comments will trigger all our pipelines, which is necessary for PRs that are created by Copilot.
To post the comments first check if the GitHub CLI is available, and if so use MSYS_NO_PATHCONV=1 gh pr comment <PULL_REQUEST_NUMBER> --repo microsoft/FluidFramework --body "<COMMENT_TEXT>". Note: MSYS_NO_PATHCONV=1 is required on Windows (Git Bash) to prevent /azp from being expanded to C:/Program Files/Git/azp. If gh is not available but $GITHUB_TOKEN is, you can try the GitHub REST API directly, e.g.:
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/microsoft/FluidFramework/issues/PULL_REQUEST_NUMBER/comments \
-d '{"body":"<COMMENT_TEXT>"}'If neither is available, don't do anything and tell the user you can't complete the request and why.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,168 | 11,948 | +187% | 1 | 1 | 0% | 617 | 1,887 | +206% | 0 | 0 | — |
case-02 | fail→fail | 5,257 | 9,356 | +78% | 1 | 1 | 0% | 744 | 1,030 | +38% | 0 | 0 | — |
case-03 | fail→fail | 3,985 | 6,066 | +52% | 1 | 1 | 0% | 673 | 619 | -8% | 0 | 0 | — |
case-04 | fail→fail | 16,657 | 8,923 | -46% | 1 | 1 | 0% | 1,096 | 842 | -23% | 0 | 0 | — |
case-05 | fail→pass | 10,034 | 6,739 | -33% | 1 | 1 | 0% | 1,686 | 1,662 | -1% | 0 | 0 | — |
case-06 | pass→pass | 7,889 | 12,814 | +62% | 1 | 1 | 0% | 1,417 | 2,985 | +111% | 0 | 0 | — |
case-07 | pass→pass | 7,942 | 8,491 | +7% | 1 | 1 | 0% | 1,362 | 2,217 | +63% | 0 | 0 | — |
case-08 | pass→pass | 7,072 | 2,985 | -58% | 1 | 1 | 0% | 1,039 | 924 | -11% | 0 | 0 | — |
case-09 | pass→pass | 11,511 | 2,874 | -75% | 1 | 1 | 0% | 1,739 | 901 | -48% | 0 | 0 | — |
case-10 | pass→pass | 8,508 | 4,109 | -52% | 1 | 1 | 0% | 1,581 | 1,077 | -32% | 0 | 0 | — |
case-11 | pass→pass | 4,676 | 16,638 | +256% | 1 | 1 | 0% | 879 | 1,902 | +116% | 0 | 0 | — |
case-12 | fail→pass | 10,475 | 12,939 | +24% | 1 | 1 | 0% | 1,913 | 2,792 | +46% | 0 | 0 | — |
case-13 | fail→pass | 12,887 | 4,899 | -62% | 1 | 1 | 0% | 2,194 | 1,340 | -39% | 0 | 0 | — |
case-14 | fail→pass | 15,092 | 7,654 | -49% | 1 | 1 | 0% | 2,735 | 1,867 | -32% | 0 | 0 | — |
case-15 | fail→pass | 9,256 | 12,168 | +31% | 1 | 1 | 0% | 1,546 | 1,237 | -20% | 0 | 0 | — |
case-16 | fail→pass | 4,490 | 3,788 | -16% | 1 | 1 | 0% | 636 | 1,145 | +80% | 0 | 0 | — |
case-17 | pass→pass | 5,949 | 2,051 | -66% | 1 | 1 | 0% | 1,001 | 714 | -29% | 0 | 0 | — |
case-18 | pass→pass | 13,443 | 6,281 | -53% | 1 | 1 | 0% | 1,926 | 1,366 | -29% | 0 | 0 | — |
case-19 | pass→pass | 9,111 | 5,886 | -35% | 1 | 1 | 0% | 1,466 | 1,499 | +2% | 0 | 0 | — |
case-20 | pass→pass | 6,626 | 7,448 | +12% | 1 | 1 | 0% | 1,215 | 1,718 | +41% | 0 | 0 | — |
case-21 | pass→fail | 4,173 | 7,935 | +90% | 1 | 1 | 0% | 659 | 1,774 | +169% | 0 | 0 | — |
case-22 | pass→pass | 9,848 | 8,156 | -17% | 1 | 1 | 0% | 1,536 | 1,772 | +15% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of 0 percentage points is the difference between those two pass rates over the 18 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/27/2026 | +23% |
Other measured skills in the registry, with their headline benchmark lift.