plugins/azure-devops/skills/make-pr/SKILL.md
Creates an Azure DevOps pull request from current changes. Use the helper script for repo preflight, template discovery, and attachment upload before calling Azure CLI.
npx skillsauth add scaryrawr/scarypilot make-prInstall 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.
You are in PR creation mode. Create a well-structured Azure DevOps pull request from the current branch state.
./scripts/... resolves from this skill directory)../scripts/make-pr.mts --help.git checkout -b, git add, git commit, git push, az repos pr create) unless the user explicitly asked to create a PR or clearly confirmed the action.origin, or a non-Azure-DevOps origin remote.preflightAlways start here so you have a structured view of git state, blockers, remote parsing, and default-branch hints:
./scripts/make-pr.mts preflight
Use these fields directly:
blockers: stop immediately when non-emptywarnings: surface them, but do not treat them as blockersrepoRoot: run later git and az commands from this repository rootparsedRemote: source of truth for Azure DevOps org/project/repository contextdefaultBranch and isOnDefaultBranch: decide whether to reuse the current branch or create a new onestatusLines: summarize uncommitted changes when neededdiscover-templateUse the helper instead of manually walking the Azure DevOps template search order:
./scripts/make-pr.mts discover-template --target-branch {target_branch}
Use these fields directly:
selectedPath: the chosen template path when one is foundselectedContent: the template body to reuse in the PR descriptionchecked: which paths were examinedadditionalTemplates: extra candidates when no single template could be selected automaticallyupload-attachmentUse the helper instead of rebuilding token lookup and binary upload flow inline:
./scripts/make-pr.mts upload-attachment \
--org {org-or-url} \
--project {project} \
--repository-id {repositoryId} \
--pull-request-id {prId} \
--file /absolute/path/to/image.png
Use these fields directly:
id: Azure DevOps attachment identifierurl: attachment URL to place in the PR description or a follow-up commentfileName and filePath: confirmation of what was uploadedAlways begin with:
./scripts/make-pr.mts preflight
If blockers is non-empty, stop and surface them verbatim.
Use repository context from the current session when available. Otherwise inspect the diff from repoRoot:
git diff --stat
git diff -- path/to/file
If the current branch is already a non-default working branch, reuse it unless the user asks to rename or recreate it.
If you are on the default branch (for example main or master) and need to create a branch, follow repository guidance first, then existing remote naming conventions. See references/REFERENCE.md for the detailed fallback rules.
Useful read-only commands when you need to confirm the convention:
git config user.email
git ls-remote --heads origin
Example fallback if no clearer convention exists:
git checkout -b alias/feature-name
Group changes into focused commits:
git add path/to/file
git commit -m "Short, descriptive summary"
git push -u origin {source_branch}
If push or PR creation fails because of an Azure DevOps branch naming policy, surface the policy failure verbatim and adjust the branch name to match the repository convention.
Run:
./scripts/make-pr.mts discover-template --target-branch {target_branch}
If selectedContent is present, use it directly. If no template is selected, fall back to a manually written description.
Prefer --detect true when you are inside the repository:
az repos pr create \
--detect true \
--source-branch "{source_branch}" \
--target-branch "{target_branch}" \
--title "<title>" \
--description "<description>"
If auto-detection fails, use explicit org/project/repository values from preflight.parsedRemote or user-supplied inputs.
Capture the created PR metadata so later steps can reuse the returned pullRequestId and repository details.
Use the helper after PR creation when you need an attachment URL:
./scripts/make-pr.mts upload-attachment \
--org {org-or-url} \
--project {project} \
--repository-id {repositoryId} \
--pull-request-id {prId} \
--file /absolute/path/to/image.png
Use preflight.parsedRemote for --org/--project, and the PR creation output for --repository-id/--pull-request-id.
references/REFERENCE.md for branch naming heuristics, template discovery notes, and attachment usage details.tools
Use the local smahties MCP server when users ask for semantic code search, conceptual codebase discovery, keyword or hybrid code search, indexing files/directories, checking index status, or listing indexed code units.
testing
Use this skill for end-of-task digivolution/reflection requests that ask whether durable repo-specific guidance, AGENTS.md/Copilot instructions, or in-repo SKILL.md instructions are stale, missing, or should be updated.
testing
Manage parallel git worktrees with Worktrunk (`wt`) and enforce disk-fit preflight checks before creating new worktrees.
data-ai
Generate images from text prompts using Ollama's local image generation models.