Claude-skill-registry ado-sync
Help and guidance for Azure DevOps synchronization with SpecWeave increments. Use when asking how to set up ADO sync, configure credentials, or troubleshoot integration issues. For actual syncing, use /sw-ado:sync command.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ado-sync" ~/.claude/skills/majiayu000-claude-skill-registry-ado-sync && rm -rf "$T"
skills/data/ado-sync/SKILL.md- references .env files
Azure DevOps Sync Skill
Purpose: Seamlessly sync SpecWeave increments with Azure DevOps work items for unified project tracking.
Default Behavior: Bidirectional (two-way) sync - Changes in either system are automatically synchronized
⚠️ IMPORTANT: This skill provides HELP and GUIDANCE about Azure DevOps sync. For actual syncing, users should use the
/sw-ado:sync command directly. This skill should NOT auto-activate when the command is being invoked.
Capabilities:
- Bidirectional sync: SpecWeave ↔ ADO (default)
- Create ADO work items from increments
- Sync task progress → ADO comments
- Update increment status ← ADO state changes
- Pull ADO comments and field updates → SpecWeave
- Close work items when increments complete
- Support for Epics, Features, User Stories
When This Skill Activates
✅ Do activate when:
- User asks: "How do I set up Azure DevOps sync?"
- User asks: "What ADO credentials do I need?"
- User asks: "How does ADO integration work?"
- User needs help configuring Azure DevOps integration
❌ Do NOT activate when:
- User invokes
command (command handles it)/sw-ado:sync - Command is already running (avoid duplicate invocation)
- Task completion hook is syncing (automatic process)
- "Close ADO work item when done"
Prerequisites
1. ADO Plugin Installed
# Check if installed /plugin list --installed | grep sw-ado # Install if needed /plugin install sw-ado@specweave
2. Azure DevOps Personal Access Token (PAT)
Create PAT:
- Go to https://dev.azure.com/{organization}/_usersSettings/tokens
- Click "New Token"
- Name: "SpecWeave Sync"
- Scopes: Work Items (Read & Write), Comments (Read & Write)
- Copy token → Set environment variable
Set Token:
export AZURE_DEVOPS_PAT="your-token-here"
3. ADO Configuration
Add to
.specweave/config.json:
{ "externalPM": { "tool": "ado", "enabled": true, "config": { "organization": "myorg", "project": "MyProject", "workItemType": "Epic", "areaPath": "MyProject\\Team A", "syncOnTaskComplete": true } } }
Commands Available
/sw-ado:create-workitem <increment-id>
/sw-ado:create-workitem <increment-id>Purpose: Create ADO work item from increment
Example:
/sw-ado:create-workitem 0005
Result:
- Creates Epic/Feature/User Story in ADO
- Links work item to increment (metadata)
- Adds initial comment with spec summary
- Sets tags:
,specweaveincrement-0005
/sw-ado:sync <increment-id>
/sw-ado:sync <increment-id>Purpose: Sync increment progress with ADO work item
Example:
/sw-ado:sync 0005
Result:
- Calculates task completion (%)
- Updates work item description
- Adds comment with progress update
- Updates state (New → Active → Resolved)
/sw-ado:close-workitem <increment-id>
/sw-ado:close-workitem <increment-id>Purpose: Close ADO work item when increment complete
Example:
/sw-ado:close-workitem 0005
Result:
- Updates work item state → Closed
- Adds completion comment with summary
- Marks work item as resolved
/sw-ado:status <increment-id>
/sw-ado:status <increment-id>Purpose: Check ADO sync status for increment
Example:
/sw-ado:status 0005
Result:
ADO Sync Status =============== Increment: 0005-payment-integration Work Item: #12345 URL: https://dev.azure.com/myorg/MyProject/_workitems/edit/12345 State: Active Completion: 60% (6/10 tasks) Last Synced: 2025-11-04 10:30:00 Sync Enabled: ✅
Automatic Sync
When Task Completes
Trigger: Post-task-completion hook fires
Flow:
- User marks task complete:
[x] T-005: Add payment tests - Hook detects ADO sync enabled
- Calculate new completion %
- Update ADO work item comment:
## Progress Update **Increment**: 0005-payment-integration **Status**: 60% complete (6/10 tasks) ### Recently Completed - [x] T-005: Add payment tests ### Remaining - [ ] T-007: Add refund functionality - [ ] T-008: Implement subscriptions - [ ] T-009: Add analytics - [ ] T-010: Security audit --- 🤖 Auto-updated by SpecWeave
When Increment Completes
Trigger:
/sw:done command
Flow:
- User runs
/sw:done 0005 - Validate all tasks complete
- Close ADO work item automatically
- Add completion comment with summary
Work Item Types
Epic (Recommended)
Use When: Large feature spanning multiple sprints
Mapping:
- SpecWeave increment → ADO Epic
- Tasks → Epic description (checklist)
- Progress → Epic comments
Feature
Use When: Medium-sized feature within a sprint
Mapping:
- SpecWeave increment → ADO Feature
- Tasks → Feature description (checklist)
- Progress → Feature comments
User Story
Use When: Small, single-sprint work
Mapping:
- SpecWeave increment → ADO User Story
- Tasks → User Story description (checklist)
- Progress → User Story comments
Bidirectional Sync (Optional)
Enable: Set
bidirectional: true in config
Flow: ADO → SpecWeave
- User updates work item state in ADO (Active → Resolved)
- SpecWeave detects change (polling or webhook)
- Updates increment status locally
- Notifies user: "Work item #12345 resolved → Increment 0005 marked complete"
Note: Bidirectional sync requires webhook or polling setup
Configuration Options
:.specweave/config.json
{ "externalPM": { "tool": "ado", "enabled": true, "config": { "organization": "myorg", "project": "MyProject", "personalAccessToken": "${AZURE_DEVOPS_PAT}", "workItemType": "Epic", "areaPath": "MyProject\\Team A", "iterationPath": "MyProject\\Sprint 1", "syncOnTaskComplete": true, "syncOnIncrementComplete": true, "createWorkItemsAutomatically": true, "bidirectional": false, "tags": ["specweave", "increment"], "customFields": { "incrementId": "Custom.IncrementId" } } } }
Troubleshooting
Error: "Personal Access Token invalid"
Solution:
- Verify token is set:
echo $AZURE_DEVOPS_PAT - Check token scopes: Work Items (Read & Write)
- Ensure token not expired
- Regenerate token if needed
Error: "Work item not found"
Solution:
- Check work item ID is correct
- Verify you have access to the project
- Ensure work item not deleted
Error: "Organization or project not found"
Solution:
- Verify organization name: https://dev.azure.com/{organization}
- Check project name (case-sensitive)
- Ensure you have access to the project
API Rate Limits
Azure DevOps:
- Rate limit: 200 requests per minute per PAT
- Burst limit: 5000 requests per hour
- Recommendation: Enable rate limiting in config
Config:
{ "externalPM": { "config": { "rateLimiting": { "enabled": true, "maxRequestsPerMinute": 150 } } } }
Security Best Practices
DO:
- ✅ Store PAT in environment variable (
)AZURE_DEVOPS_PAT - ✅ Use
file (gitignored).env - ✅ Set minimum required scopes
- ✅ Rotate PAT every 90 days
DON'T:
- ❌ Commit PAT to git
- ❌ Share PAT via Slack/email
- ❌ Use PAT with excessive permissions
- ❌ Log PAT to console/files
Related Commands
- Create increment (auto-creates ADO work item if enabled)/sw:inc
- Execute tasks (auto-syncs progress to ADO)/sw:do
- Complete increment (auto-closes ADO work item)/sw:done
- Show increment status (includes ADO sync status)/sw:status
Examples
Example 1: Create Increment with ADO Sync
# User "Create increment for payment integration" # SpecWeave (if ADO enabled) 1. PM agent generates spec.md 2. Auto-create ADO Epic #12345 3. Link Epic to increment metadata 4. Display: "Created increment 0005 → ADO Epic #12345"
Example 2: Manual Sync
# User completed 3 tasks manually # Now sync to ADO /sw-ado:sync 0005 # Result: ADO Epic #12345 updated with 30% progress
Example 3: Check Sync Status
/sw-ado:status 0005 # Output: # Work Item: #12345 # URL: https://dev.azure.com/myorg/MyProject/_workitems/edit/12345 # State: Active # Completion: 60% # Last Synced: 5 minutes ago
Status: Ready to use Version: 0.1.0 Plugin: specweave-ado