From sw
Syncs task progress from tasks.md to spec.md ACs, living docs, and external tools (GitHub/JIRA/ADO) with auto-creation of missing issues. Trigger on 'sync progress' or 'push progress'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sw:progress-sync [INCREMENT_ID] [--dry-run] [--no-create] [--no-github] [--no-jira][INCREMENT_ID] [--dry-run] [--no-create] [--no-github] [--no-jira]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Orchestrate end-to-end progress synchronization: **tasks.md → spec.md ACs → living docs → external tools (GitHub/JIRA/ADO)**.
Orchestrate end-to-end progress synchronization: tasks.md → spec.md ACs → living docs → external tools (GitHub/JIRA/ADO).
When sw:sync-progress is executed and no external issue exists, it MUST automatically create the issue using the Skill tool.
The command MUST invoke:
sw-github:create <increment-id> for GitHubsw-jira:create <increment-id> for JIRAsw-ado:create <increment-id> for Azure DevOpsDO NOT just report "No issues linked" - ACTUALLY CREATE THE ISSUE.
The TRUE "single button" to sync progress across all systems:
tasks.md → spec.md ACs → living docs → AUTO-CREATE external issues → sync external tools (GitHub/JIRA/ADO)
One command does EVERYTHING - including creating missing external issues!
sw:sync-progress
No more "No GitHub issue linked" errors! The command auto-creates missing issues.
For archived/completed increments, this command ALWAYS creates issues for historical tracking:
| Situation | Action |
|---|---|
| Issue EXISTS | ✅ Sync final state + Close/Transition |
| NO issue linked | ✅ AUTO-CREATE + IMMEDIATELY CLOSE (historical tracking) |
Why? Historical tracking is important! Completed work should have external issues for:
For all increments (active or completed): Auto-creates issues if missing (the "single button" philosophy)
sw:done to ensure all systems in syncsw-github:sync instead--no-create flag or manual commandsMulti-Phase Orchestration:
Phase 1: Tasks → ACs (spec.md)
└─ Reads completed tasks from tasks.md
└─ Finds linked ACs (via "Satisfies ACs" field)
└─ Marks ACs as complete in spec.md: [ ] → [x]
└─ Updates metadata.json with AC count
Phase 2: Spec → Living Docs (User Stories)
└─ Syncs spec.md to living docs structure
└─ Updates user story completion status
└─ Generates/updates feature ID if needed
Phase 3: AUTO-CREATE External Issues (NEW!)
├─ Checks each configured external tool for linked issues
├─ If no issue exists → AUTO-CREATE via sw-github:create, sw-jira:create, sw-ado:create
├─ Respects permissions (canUpsertInternalItems, canUpdateExternalItems)
└─ Skip with --no-create flag if needed
Phase 4: Sync to External Tools (Two-Way)
├─ GitHub: Two-way sync (push progress, pull team changes)
├─ JIRA: Two-way sync (push tasks, pull status)
└─ Azure DevOps: Two-way sync (push comments, pull updates)
Phase 5: Status Line Cache
└─ Updates status line with latest completion %
Scenario: Just created increment, completed tasks, never created a GitHub issue. Want to sync.
# Single command does EVERYTHING
sw:sync-progress
What happens:
No more "No GitHub issue linked" errors!
Scenario: You completed 5 tasks and marked them in tasks.md. GitHub issue already exists.
# Single command syncs everything
sw:sync-progress
What happens:
Scenario: All 37 tasks complete, ready to close. Ensure final sync.
# Final sync before closure
sw:sync-progress 0053
# Then close increment
sw:done 0053
Why important: sw:done validates completion. Final sync ensures:
Scenario: Want to see what will be synced before executing.
# Preview mode
sw:sync-progress 0053 --dry-run
Output:
🔍 DRY-RUN MODE (No changes made)
Would sync:
• 37 completed tasks → 70 ACs in spec.md
• spec.md → 6 user stories in living docs
• Living docs → 6 GitHub issues (would close completed)
• Status line cache (would update completion %)
Run without --dry-run to execute sync.
Scenario: Offline work, don't want to sync to GitHub/JIRA yet.
# Skip external tools
sw:sync-progress 0053 --no-github --no-jira --no-ado
What syncs:
| Flag | Purpose | Example |
|---|---|---|
--dry-run | Preview without executing | --dry-run |
--no-create | Skip auto-creation of missing issues | --no-create |
--no-github | Skip GitHub sync | --no-github |
--no-jira | Skip JIRA sync | --no-jira |
--no-ado | Skip Azure DevOps sync | --no-ado |
--force | Force sync even if validation fails | --force |
Combine flags:
# Full sync with auto-create (DEFAULT - just works!)
sw:sync-progress
# Sync only, don't create missing issues
sw:sync-progress 0053 --no-create
# Dry-run with no external tools
sw:sync-progress --dry-run --no-github
# Force sync, skip GitHub
sw:sync-progress --force --no-github
| Command | Scope | Auto-Create? | When to Use |
|---|---|---|---|
sw-github:create | Create GitHub issue | ✅ | Manual issue creation |
sw-github:sync | Docs → GitHub only | ❌ | GitHub-only sync (issue must exist) |
sw:sync-progress | Tasks → Docs → Create → Sync | ✅ | Complete sync ✅ (RECOMMENDED!) |
Rule of thumb:
sw:sync-progress ✅sw:sync-progress --no-createSmart increment detection:
# Explicit increment ID
sw:sync-progress 0053
# Auto-detect from active increment
sw:sync-progress
How auto-detection works:
.specweave/state/active-increment.jsonAutomatic detection of configured tools:
The command checks .specweave/config.json for:
"provider": "github""provider": "jira""provider": "azure-devops"Only configured tools are synced:
✅ GitHub integration detected → Will sync
ℹ️ No JIRA integration → Skip
ℹ️ No ADO integration → Skip
Graceful degradation:
| Error Type | Behavior | Impact |
|---|---|---|
| AC sync fails | ❌ Abort sync | Critical - blocks all sync |
| Docs sync fails | ❌ Abort sync | Critical - blocks external sync |
| GitHub sync fails | ⚠️ Log warning, continue | Non-critical - docs still synced |
| JIRA sync fails | ⚠️ Log warning, continue | Non-critical - docs still synced |
| ADO sync fails | ⚠️ Log warning, continue | Non-critical - docs still synced |
Philosophy: Core sync (tasks → docs) must succeed. External tool sync is best-effort.
Error:
❌ No active increment found
Fix:
# Provide increment ID explicitly
sw:sync-progress 0053
Error:
⚠️ AC sync had warnings: 5 ACs not found in spec.md
Fix:
# Manually add ACs to spec.md, then retry sync
sw:sync-progress 0053
Why this happens: spec.md missing inline ACs (ADR-0064 requirement).
Error:
⚠️ GitHub sync had warnings: Rate limit exceeded
Fix: Non-critical. Docs are synced. Retry later when rate limit resets:
# Retry GitHub sync only (when rate limit resets)
sw-github:sync 0053
Typical increment workflow with progress sync:
# 1. Plan increment
sw:increment "Safe feature deletion"
# 2. Execute tasks
sw:do
# [Complete tasks manually or via sub-agents...]
# 3. Sync progress after each batch of tasks
sw:sync-progress
# 4. Final sync before closure
sw:sync-progress 0053
# 5. Validate quality
sw:validate 0053 --quality
# 6. Close increment
sw:done 0053
sw:done--dry-runsw:done--force bypasses validationWhy comprehensive sync is needed:
Problem: Manual multi-step sync is error-prone
1. Update spec.md ACs manually
2. Sync living docs
3. Sync GitHub/JIRA/ADO
4. Check each system for correctness
Solution: Single command orchestrates all steps
sw:sync-progress → Does all 4 steps automatically
Benefits:
Before this command, users had to manually sync ACs, docs, and external tools separately. Now: One command does everything ✅
sw-github:sync - Sync docs → GitHub onlysw-jira:sync - Sync docs → JIRA onlysw-ado:sync - Sync docs → ADO onlysw:update-status - Update status line cacheI'm here to help you sync progress efficiently across all systems!
Ask me:
npx claudepluginhub anton-abyzov/specweave --plugin sw[DEPRECATED] Provides 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.
Projects a flow-next spec to a tracker issue (Linear, GitHub, GitLab, or Jira) and reconciles body, status, and comments two-way. The spec stays source of truth; the tracker is a co-editable mirror.
Syncs local work items in meta/work/ with remote trackers like Jira or Linear. Supports push, pull, preview, and reconciliation of divergent state.