skills/omc-ado-setup/SKILL.md
Configure Azure DevOps integration for the current project. WHEN: User wants to set up ADO integration, connect a project to Azure DevOps, configure .omcp/config.json for ADO, or troubleshoot ADO connection issues. DO NOT USE FOR: Work item triage (use omc-ado-triage), sprint planning (use omc-ado-sprint), PR review (use omc-ado-review), or Azure cloud service configuration (use azure-skills plugin).
npx skillsauth add RobinNorberg/oh-my-copilot omc-ado-setupInstall 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.
Configure Azure DevOps integration for the current project. Detects the ADO org and project from the git remote URL, verifies authentication, and writes .omcp/config.json with all required settings.
When this skill is invoked, immediately execute the workflow below. Do not only restate or summarize these instructions back to the user.
Before running the main workflow, verify all prerequisites are present. If any fail, report the issue and stop with actionable remediation steps.
az --version 2>&1 | head -1
If this fails: tell the user to install the Azure CLI from https://aka.ms/installazurecli.
az extension show --name azure-devops --query name -o tsv 2>&1
If output is not azure-devops: run az extension add --name azure-devops to install it.
az account show --query "{name:name, id:id, tenantId:tenantId}" -o json 2>&1
If this fails or returns an error: tell the user to run az login and retry.
az devops configure --list 2>&1
Show the output to the user so they can see existing defaults (org, project).
Inspect the git remote URL to determine if the repo is hosted on Azure DevOps.
git remote -v 2>&1
Azure DevOps remote URLs follow these patterns:
https://dev.azure.com/{org}/{project}/_git/{repo}https://{org}.visualstudio.com/{project}/_git/{repo}[email protected]:v3/{org}/{project}/{repo}Parse the remote URL to extract:
org — the ADO organization nameproject — the ADO project namerepo — the repository nameIf no ADO remote is detected, inform the user and ask whether they want to configure manually (prompt for org, project, repo values).
Check if .omcp/config.json already exists:
cat .omcp/config.json 2>/dev/null || echo "NOT_FOUND"
If it exists and contains ado settings, ask the user whether to update or keep the existing configuration (use AskUserQuestion).
Confirm the detected org and project are accessible with the current authentication:
az devops project show --project "{project}" --org "https://dev.azure.com/{org}" --query "{id:id, name:name, state:state}" -o json 2>&1
If this fails, the user may need to configure their PAT or re-authenticate:
# Option: configure a PAT
az devops configure --defaults organization=https://dev.azure.com/{org}
Ask the user (via AskUserQuestion) for optional configuration. Defaults are shown in brackets.
Question: "Configure optional ADO settings? (Press Enter to accept defaults)"
For each item, probe the available values from ADO to help the user choose:
az boards work-item type list --project "{project}" --org "https://dev.azure.com/{org}" --query "[].name" -o tsv 2>&1
Common values: User Story, Bug, Task, Issue. Default: User Story.
az boards area project list --project "{project}" --org "https://dev.azure.com/{org}" --query "children[].path" -o tsv 2>&1
Default: {project} (root area).
az boards iteration project list --project "{project}" --org "https://dev.azure.com/{org}" --query "children[].path" -o tsv 2>&1
Default: {project} (root iteration, i.e. no sprint filter).
.omcp/config.jsonCreate or update the config file. Preserve any existing non-ADO keys.
First, ensure the .omcp/ directory exists:
mkdir -p .omcp
Write .omcp/config.json using the Write (or Edit) tool. The schema is:
{
"ado": {
"org": "https://dev.azure.com/{org}",
"project": "{project}",
"repo": "{repo}",
"workItemType": "User Story",
"areaPath": "{project}",
"iterationPath": "{project}",
"configuredAt": "{ISO timestamp}"
}
}
| Key | Type | Description |
|-----|------|-------------|
| ado.org | string | Full org URL: https://dev.azure.com/{org} |
| ado.project | string | ADO project name (case-sensitive) |
| ado.repo | string | ADO repository name |
| ado.workItemType | string | Default work item type for queries (e.g. User Story) |
| ado.areaPath | string | Area path filter (e.g. MyProject\TeamA) |
| ado.iterationPath | string | Iteration path filter (e.g. MyProject\Sprint 5) |
| ado.configuredAt | string | ISO 8601 timestamp of when setup ran |
{
"ado": {
"org": "https://dev.azure.com/contoso",
"project": "Widgets",
"repo": "widgets-api",
"workItemType": "User Story",
"areaPath": "Widgets\\Backend",
"iterationPath": "Widgets\\Sprint 22",
"configuredAt": "2026-03-09T12:00:00Z"
}
}
Run a smoke test by listing the most recent 5 work items assigned to the current user:
az boards query --wiql "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.AssignedTo] = @Me AND [System.TeamProject] = '{project}' ORDER BY [System.ChangedDate] DESC" --project "{project}" --org "https://dev.azure.com/{org}" -o table 2>&1 | head -20
If the query returns results: report success and show the items.
If the query fails with an auth error: suggest az login or PAT configuration.
If the query returns 0 items: that is normal — confirm setup is complete.
Report a summary of what was configured:
ADO Setup Complete
Organization : https://dev.azure.com/{org}
Project : {project}
Repository : {repo}
Work Item Type: {workItemType}
Area Path : {areaPath}
Iteration : {iterationPath}
Config file : .omcp/config.json
Next steps:
/oh-my-copilot:omc-ado-triage — run a full triage of work items and PRs
| Error | Likely cause | Fix |
|-------|-------------|-----|
| az: command not found | Azure CLI not installed | Install from https://aka.ms/installazurecli |
| ERROR: Please run 'az login' | Not authenticated | Run az login |
| Extension 'azure-devops' not installed | Missing extension | Run az extension add --name azure-devops |
| ResourceNotFound on project show | Wrong org/project | Verify the remote URL and re-run |
| TF400813: Resource not available | PAT missing or expired | Create a PAT in ADO → User Settings → Personal Access Tokens |
tools
Durable multi-goal workflow that persists plan/ledger artifacts under .omcp/ultragoal and prints Claude /goal handoff text for the active session
tools
testing
Evidence-driven tracing lane that orchestrates competing tracer hypotheses in Claude built-in team mode
tools
Consensus planning entrypoint that auto-gates vague ralph/autopilot/team requests before execution