progress-sync
Progress Sync Expert
I'm the comprehensive progress synchronization expert for SpecWeave. I help you understand and use the /sw:sync-progress command for end-to-end progress synchronization.
⚠️ CRITICAL: AUTO-CREATE IS MANDATORY
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:
Skill({ skill: "sw-github:create", args: "<increment-id>" })for GitHubSkill({ skill: "sw-jira:create", args: "<increment-id>" })for JIRASkill({ skill: "sw-ado:create", args: "<increment-id>" })for Azure DevOps
DO NOT just report "No issues linked" - ACTUALLY CREATE THE ISSUE.
What is /sw:sync-progress?
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.
✅ Archived Increment Behavior
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:
- Team visibility
- Sprint retrospectives
- Release notes generation
- Audit trails
For all increments (active or completed): Auto-creates issues if missing (the "single button" philosophy)
When to Use This Command
✅ Use /sw:sync-progress when:
- First-time sync (no external issue yet): Just created increment, want to sync → auto-creates GitHub/JIRA/ADO issues!
- After completing tasks: You've marked tasks as done in tasks.md and want to sync everywhere
- Before closing increment: Final sync before
/sw:doneto ensure all systems in sync - Progress check: Want to update status line and external tools with latest progress
- After bulk task completion: Completed multiple tasks, sync all at once
- Manual sync trigger: Hooks didn't fire or you want to force a sync
- "No GitHub issue linked" error: This command fixes that by auto-creating the issue!
❌ Don't use when:
- Only want to sync ACs: Use
/sw:sync-acsinstead (faster, more targeted) - Only want to sync docs: Use
/sw:sync-specsinstead - Only want to sync GitHub (issue already exists): Use
/sw-github:syncinstead - Increment not started: No tasks to sync yet
- Don't want auto-create: Use
--no-createflag or manual commands
How It Works
Multi-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 %
Usage Examples
Example 1: First-Time Sync (No GitHub Issue Yet) ⭐
Scenario: Just created increment, completed tasks, never created a GitHub issue. Want to sync.
# Single command does EVERYTHING
/sw:sync-progress
What happens:
- ✅ Tasks → ACs marked complete in spec.md
- ✅ User stories synced to living docs
- ✅ GitHub issue AUTO-CREATED (#123)
- ✅ GitHub issue synced with task progress
- ✅ Status line shows completion %
No more "No GitHub issue linked" errors!
Example 2: After Completing Tasks (Issue Exists)
Scenario: You completed 5 tasks and marked them in tasks.md. GitHub issue already exists.
# Single command syncs everything
/sw:sync-progress
What happens:
- ✅ 5 tasks → 12 ACs marked complete in spec.md
- ✅ 2 user stories marked complete in living docs
- ✅ GitHub issue #123 detected, synced with progress
- ✅ Epic issue checklist updated (5/37 tasks complete)
- ✅ Status line shows 68% → 85% completion
Example 3: Before Closing Increment
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:
- All ACs marked complete
- All user stories synced
- All GitHub issues closed
- Status line shows 100%
Example 4: Dry-Run (Preview Mode)
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.
Example 5: Local-Only Sync (No External Tools)
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:
- ✅ Tasks → ACs (spec.md)
- ✅ Spec → Living docs
- ❌ External tools (skipped)
- ✅ Status line cache
Flags
| 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
Comparison with Other Sync Commands
| Command | Scope | Auto-Create? | When to Use |
|---|---|---|---|
/sw:sync-acs |
Tasks → ACs only | ❌ | Quick AC update |
/sw:sync-specs |
Spec → Docs only | ❌ | After spec changes |
/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:
- Need complete sync (just works) → Use
/sw:sync-progress✅ - Need targeted sync → Use specific command (
sync-acs,sync-specs) - Need sync only (no auto-create) → Use
/sw:sync-progress --no-create
Auto-Detection
Smart increment detection:
# Explicit increment ID
/sw:sync-progress 0053
# Auto-detect from active increment
/sw:sync-progress
How auto-detection works:
- Reads
.specweave/state/active-increment.json - Finds first active increment ID
- Uses that increment for sync
External Tool Configuration
Automatic detection of configured tools:
The command checks .specweave/config.json for:
- GitHub:
"provider": "github" - JIRA:
"provider": "jira" - Azure DevOps:
"provider": "azure-devops"
Only configured tools are synced:
✅ GitHub integration detected → Will sync
ℹ️ No JIRA integration → Skip
ℹ️ No ADO integration → Skip
Error Handling
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.
Troubleshooting
Issue: "No active increment found"
Error:
❌ No active increment found
Fix:
# Provide increment ID explicitly
/sw:sync-progress 0053
Issue: "AC sync had warnings"
Error:
⚠️ AC sync had warnings: 5 ACs not found in spec.md
Fix:
# Embed ACs from living docs into spec.md
/sw:embed-acs 0053
# Then retry sync
/sw:sync-progress 0053
Why this happens: spec.md missing inline ACs (ADR-0064 requirement).
Issue: "GitHub rate limit exceeded"
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
Integration with Workflow
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
Best Practices
✅ DO:
- Sync after task batches: Complete 3-5 tasks → sync → continue
- Final sync before closure: Ensure 100% sync before
/sw:done - Use dry-run first: Preview changes with
--dry-run - Check external tools: Verify GitHub/JIRA after sync
- Review status line: Ensure completion % updated correctly
❌ DON'T:
- Don't sync for every task: Batching is more efficient
- Don't skip final sync: Always sync before
/sw:done - Don't ignore warnings: AC sync warnings indicate missing ACs
- Don't force sync without understanding:
--forcebypasses validation - Don't sync before tasks complete: Sync when progress actually changed
Architecture
Why comprehensive sync is needed:
Problem: Manual multi-step sync is error-prone
1. Update spec.md ACs manually
2. Run /sw:sync-specs
3. Run /sw-github:sync
4. Run /sw:update-status
5. Check each system for correctness
Solution: Single command orchestrates all steps
/sw:sync-progress → Does all 4 steps automatically
Benefits:
- ✅ Single command: One button for complete sync
- ✅ Guaranteed consistency: All systems synced together
- ✅ Error resilience: Non-critical failures don't block core sync
- ✅ Audit trail: Comprehensive report shows what synced
- ✅ Dry-run support: Preview before executing
Background
Before this command, users had to manually:
- Run
/sw:sync-acs - Run
/sw:sync-specs - Run
/sw-github:sync - Run
/sw:update-status
Now: One command does all 4 steps ✅
Related Commands
/sw:sync-acs- Sync tasks → ACs only/sw:sync-specs- Sync spec → living docs only/sw:sync-tasks- Sync external → tasks (bidirectional)/sw-github:sync- Sync docs → GitHub only/sw-jira:sync- Sync docs → JIRA only/sw-ado:sync- Sync docs → ADO only/sw:update-status- Update status line cache
I'm here to help you sync progress efficiently across all systems!
Ask me:
- "How do I sync progress to GitHub?"
- "What's the difference between sync-progress and sync-acs?"
- "How do I preview sync without executing?"
- "Why did my GitHub sync fail?"
- "When should I use --dry-run?"
Project-Specific Learnings
Before starting work, check for project-specific learnings:
# Check if skill memory exists for this skill
cat .specweave/skill-memories/progress-sync.md 2>/dev/null || echo "No project learnings yet"
Project learnings are automatically captured by the reflection system when corrections or patterns are identified during development. These learnings help you understand project-specific conventions and past decisions.
More from anton-abyzov/specweave
technical-writing
Technical writing expert for API documentation, README files, tutorials, changelog management, and developer documentation. Covers style guides, information architecture, versioning docs, OpenAPI/Swagger, and documentation-as-code. Activates for technical writing, API docs, README, changelog, tutorial writing, documentation, technical communication, style guide, OpenAPI, Swagger, developer docs.
45spec-driven-brainstorming
Spec-driven brainstorming and product discovery expert. Helps teams ideate features, break down epics, conduct story mapping sessions, prioritize using MoSCoW/RICE/Kano, and validate ideas with lean startup methods. Activates for brainstorming, product discovery, story mapping, feature ideation, prioritization, MoSCoW, RICE, Kano model, lean startup, MVP definition, product backlog, feature breakdown.
43kafka-architecture
Apache Kafka architecture expert for cluster design, capacity planning, and high availability. Use when designing Kafka clusters, choosing partition strategies, or sizing brokers for production workloads.
34docusaurus
Docusaurus 3.x documentation framework - MDX authoring, theming, versioning, i18n. Use for documentation sites or spec-weave.com.
29frontend
Expert frontend developer for React, Vue, Angular, and modern JavaScript/TypeScript. Use when creating components, implementing hooks, handling state management, or building responsive web interfaces. Covers React 18+ features, custom hooks, form handling, and accessibility best practices.
29reflect
Self-improving AI memory system that persists learnings across sessions in CLAUDE.md. Use when capturing corrections, remembering user preferences, or extracting patterns from successful implementations. Enables continual learning without starting from zero each conversation.
27