azure/verify-pr
> Verify PR readiness before requesting review or merging. Checks title format, description compliance with the team template, risk label alignment, review thread resolution, CI status, coverage report, and screenshot requirements. Reasons about each review comment to help the engineer understand what's being asked and decide how to respond — rather than auto-fixing blindly.
npx skills add https://github.com/Azure/LogicAppsUX --skill verify-pr
Use this skill when an engineer asks to "check my PR", "is this ready for review", "verify PR",
or before requesting reviewers. It provides a structured assessment that the engineer acts on.
LogicAppsUX is a pnpm + turbo monorepo with this structure:
libs/ — shared libraries (designer, designer-ui, data-mapper-v2, logic-apps-shared, etc.)apps/ — applications (vs-code-designer, vs-code-react, Standalone, iframe-app)e2e/ — end-to-end tests.squad/ — agent squad configuration, playbooks, knowledgeBuild and test commands use turbo:
pnpm turbo run build — full buildpnpm turbo run test:lib — unit testspnpm turbo run lint — lintingThe PR title must start with one of: feat:, fix:, chore:, refactor:, perf:, docs:, test: — with an optional scope in parentheses.
Good: feat(designer): add conditional action branching
Good: fix(data-mapper): resolve schema loading for nested arrays
Good: chore(ci): update pnpm lock workflow
Good: fix: resolve token picker overflow in dark theme
Bad: Update API endpoint (too vague, no prefix)
Bad: [WIP] working on stuff (no prefix, not descriptive)
The PR body must include these sections with real content (not just placeholders):
| Section | Required? | What to check |
|---------|-----------|---------------|
| Commit Type | Yes | At least one [x] selected (feat, fix, refactor, perf, docs, test, chore) |
| Risk Level | Yes | Exactly one [x] selected. Must match risk:* label. |
| What & Why | Yes | >50 chars of actual content explaining the change |
| Impact of Change | Yes | At least one of Users/Developers/System has content |
| Test Plan | For code PRs | At least one testing approach selected. If unit/e2e checked, verify tests exist in the diff. |
| Screenshots/Videos | For UI changes | Required when PR changes libs/designer-ui/src/ or libs/designer/src/ (non-test files) |
| Contributors | Optional | Nudge if blank — remind to credit PMs/designers |
risk:low, risk:medium, or risk:highlibs/logic-apps-shared core utilities that many packages depend onlibs/logic-apps-shared (shared across monorepo), apps/vs-code-designer (extension distribution), state management changes, new dependencies, CI/infra, multi-package changeslibs/designer-ui cosmetic changesFor each unresolved review thread:
Do NOT auto-fix or auto-resolve. The engineer should understand each comment and make an informed decision.
Check all CI check runs:
@ci-sentinel for deeper diagnosis with log analysispr-coverage.yml workflow has posted its comment (look for the coverage report comment)After checking everything, give a clear verdict:
## PR Readiness: [READY / NOT READY / NEEDS ATTENTION]
Title: fix(designer): resolve token picker overflow
Description: all sections filled
Risk: medium (declared) matches medium (estimated — touches libs/designer/)
Label: risk:medium present
CI: 14/14 checks green
Coverage: pr-coverage reports 87% on changed files (above threshold)
Review threads: 3 unresolved (1 blocking, 1 question, 1 nit)
Screenshots: provided (before/after token picker)
### Unresolved Threads
#### Thread 1 — Blocking (libs/designer-ui/src/tokenPicker/index.tsx:147)
**Reviewer says:** "This overflow fix might clip the dropdown in narrow panels. Have you tested in the VS Code webview?"
**What this means:** The reviewer is concerned about a different host environment where the panel may be narrower.
**Suggested action:** Test in the VS Code extension (Standalone host may be wider). If confirmed working, reply with a screenshot from VS Code.
#### Thread 2 — Question (libs/designer/src/core/state/tokens/tokenSlice.ts:22)
**Reviewer says:** "Why not use the existing selectTokensByNodeId selector?"
**What this means:** The reviewer wants to understand the design choice.
**Suggested response:** "selectTokensByNodeId returns all token types. This PR needs only expression tokens for the overflow fix, so a new selector avoids re-renders from unrelated token updates."
#### Thread 3 — Nit (libs/designer-ui/src/tokenPicker/styles.ts:88)
**Reviewer says:** "Consider using tokens.spacingHorizontalM instead of 12px"
**What this means:** Minor style preference to use Fluent design tokens instead of hardcoded pixels.
**Suggested action:** Accept — using tokens is the project convention. Or respond "Kept as px because this needs to match a fixed-size icon."
Engineers can use this skill in Copilot Chat:
The skill works with the current branch's PR automatically, or with a specific PR number.
Once invoked, the skill should keep monitoring until the PR is fully green:
The monitoring loop should feel like a helpful co-pilot sitting next to the engineer, not a nagging bot. After each check:
Take azure/verify-pr from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.