Start Ticket
Fetch Azure DevOps ticket, resolve repo, create branch, explore codebase, create implementation plan.
Read
~/.claude/skills/_ado-shared.mdfor auth, env vars, fetch/update ticket patterns, and Windows/MSYS2 notes.
Workflow
- Fetch ticket via ADO REST API (see shared)
- Resolve repo from
Custom.Repositoryfield (see below) - Find upstream remote in the resolved repo (see below)
- Create branch:
git fetch <upstream> master && git checkout -b <ticketnr>-<short-desc> <upstream>/master - Update ticket state to "In Progress" via REST API (see shared)
- Explore codebase using Task tool with Explore subagent
- Ask clarifying questions about implementation approach
- Enter plan mode and write implementation plan
Repo Resolution
The Custom.Repository field contains the GitHub repo name (semicolon-separated if multiple).
- Read
Custom.Repositoryfrom fetched work item fields - If present: take first value (before
;), find matching directory in/c/dev/(local dir name matches repo name) - If absent: fall back to
ado-investigateskill cdinto the resolved repo directory before continuing
Upstream Remote Detection
Remote names vary. Detect dynamically:
git remote -v | grep 'bluebillywig/' | grep fetch | head -1 | awk '{print $1}'
If none found, list remotes and ask user.
Branch Naming
Format: <ticketnr>-<short-description> (kebab-case, max 4-5 words from title)
Examples: 17858-shorts-shelf-autoplay, 17432-devicePixelRatio-thumbs
CRITICAL: Ticket Number in Branch + PR Title
Always include the ADO ticket number in:
- Branch name:
<ticketnr>-<short-desc> - PR title:
#<ticketnr>suffix — e.g.Show metadata toggle #18014
Exploration Strategy
Use Task tool with subagent_type: Explore to understand:
- Relevant components and their location
- Existing patterns and conventions
- Related props/configuration options
- How similar features are implemented
Plan Structure
# Plan: <ticketnr> - <short title>
## Context
<1-2 sentences from ticket description>
## Implementation
1. <Step with file path and specific change>
2. <Step with file path and specific change>
## Files to Modify
- <file path> - <what changes>
## Verification
1. <How to test the changes>
Common Mistakes
| Mistake | Fix |
|---|---|
| Hardcoding remote name | Detect upstream remote dynamically via git remote -v |
| Wrong base branch | Always fetch + branch from <upstream>/master, not main or local master |
| Starting code before plan | Explore -> clarify -> plan -> implement |
| Not cd'ing to repo | Must cd into resolved repo before git/explore operations |
| Missing API research | Check related repos for API endpoints if needed |