.claude/skills/ado-resolve/SKILL.md
Use when committing, pushing, creating PR, and resolving Azure DevOps ticket in one workflow. Also use when creating a new ADO ticket. Triggers on "resolve ticket", "close ticket", "create ticket", "commit and PR", or ticket number mentions with resolution intent.
npx skillsauth add Vvanlaar/orch ado-resolveInstall 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.
Commit, push, create PR, create or update Azure DevOps ticket with PR link + test notes, resolve.
Read
~/.claude/skills/_ado-shared.mdfor auth, env vars, fetch/update ticket, write-payload, and Windows/MSYS2 patterns.
git status + git diff + git log --oneline -5Vvanlaar/ (fallback: ask user)bluebillywig/ for --repo in PR creationgh pr create with --repo bluebillywig/<repo> --head Vvanlaar:<branch>System.State: "Resolved"Microsoft.VSTS.Common.Resolution: PR link (HTML)BB.Testnotes: preserve existing + append new (HTML)| Info | Source |
|------|--------|
| Ticket ID | User provides or from branch name (e.g. 17885-feature) |
| Fork remote | Detect via git remote -v \| grep -i vvanlaar |
| Upstream remote | Detect via git remote -v \| grep bluebillywig/ |
| Base branch | Usually master (NOT main — check with git remote show <upstream>) |
| Test notes | Derive from PR description or ask |
# Fork (for push)
git remote -v | grep -i 'vvanlaar/' | grep fetch | head -1 | awk '{print $1}'
# Upstream (for PR --repo)
git remote -v | grep 'bluebillywig/' | grep fetch | head -1 | awk '{print $1}'
If either not found, list remotes and ask user.
git commit -m "$(cat <<'EOF'
<imperative summary>
Co-Authored-By: Claude <model> <[email protected]>
EOF
)"
Note: --no-verify only when pre-commit hooks fail on pre-existing staged files unrelated to current changes. Otherwise omit it.
gh pr create --repo bluebillywig/<repo-name> --head Vvanlaar:<branch> --base master \
--title "<title> #<ticketnr>" --body "$(cat <<'EOF'
## Summary
- <bullet points>
## Test plan
- <test steps>
Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
IMPORTANT: Base branch is usually master, NOT main. Check tracking branch if unsure.
Always include #<ticketnr> at end of PR title — e.g. Show metadata toggle #18014.
[
{"op":"replace","path":"/fields/System.State","value":"Resolved"},
{"op":"replace","path":"/fields/Microsoft.VSTS.Common.Resolution","value":"<a href=\"PR_URL\">REPO #PR_N - PR title</a>"},
{"op":"replace","path":"/fields/BB.Testnotes","value":"<existing HTML><ul><li>new step</li></ul>"}
]
Use write-payload pattern from shared (node + cygpath + curl PATCH).
source ~/.env && B64=$(printf ':%s' "$ADO_PAT" | base64 -w0)
WINPATH=$(cygpath -w "$LOCALAPPDATA/Temp/ado-payload.json")
curl -s -H "Authorization: Basic $B64" -X POST -H "Content-Type: application/json-patch+json" \
'https://dev.azure.com/bluebillywig/BBNew/_apis/wit/workitems/$Task?api-version=7.0' \
-d @"$WINPATH"
New ticket payload uses "op":"add" for all fields. Always set System.AreaPath to BBNew\Core.
Resolution link text format: REPO #PR_N - PR title (uppercase repo name) — e.g. OVP6 #6178 - Show metadata toggle.
BB.Testnotes)<ul><li>...</li></ul> HTML format| Mistake | Fix |
|---------|-----|
| Using --base main | Default branch is master for bb repos |
| Push to wrong remote | Default to vvanlaar, verify with git remote get-url first |
| Missing test notes | Always include test steps |
| Overwriting existing test notes | Fetch ticket first, preserve existing BB.Testnotes |
| Wrong sprint path | Fetch current sprint dynamically (see shared), don't hardcode |
| "op":"replace" on create | New tickets need "op":"add" |
tools
Sync GitHub repos from bluebillywig org to an ADO "Repository" picklist field on all work item types
development
Build a new desktop app release (Electron). Triggers on "build desktop", "new release", "desktop release", "build the app"
development
Generic Azure DevOps operations — edit tickets, query work items, add comments, change fields, move sprints, assign users, link items, and more. Triggers on "ado", "edit ticket", "update ticket", "move ticket", "assign ticket", "link ticket", "query ado", "search ado", "add comment to ticket", or ticket number mentions with edit/update intent.
testing
Use when testing and verifying a bug fix or feature for an ADO ticket. Triggers on /ado-test, "test ticket", or requests to test a ticket number.