plugins/specweave/skills/github-sync/SKILL.md
Two-way synchronization between SpecWeave specs and GitHub Projects (push & pull by default). Use when asking about GitHub integration setup, troubleshooting sync issues, or configuring sync settings. For actual syncing, use sw-github:sync-spec command.
npx skillsauth add anton-abyzov/specweave plugins/specweave/skills/github-syncInstall 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.
Purpose: Seamlessly synchronize SpecWeave specs with GitHub Projects for team visibility and project management.
Default Behavior: Two-way sync (push & pull) - Changes in either system are automatically synchronized
⚠️ IMPORTANT: This skill provides HELP and GUIDANCE about GitHub sync. For actual syncing, users should use the sw-github:sync-spec command directly. This skill should NOT auto-activate when the command is being invoked.
✅ Do activate when:
❌ Do NOT activate when:
sw-github:sync-spec command (command handles it)Integration: Works with sw-github:sync-spec command
CRITICAL: SpecWeave syncs SPECS to GitHub, NOT increments!
✅ CORRECT:
.specweave/docs/internal/specs/spec-001.md ↔ GitHub Project
├─ User Story US-001 ↔ GitHub Issue #1
├─ User Story US-002 ↔ GitHub Issue #2
└─ User Story US-003 ↔ GitHub Issue #3
❌ WRONG (OLD, REMOVED!):
.specweave/increments/0001-feature ↔ GitHub Issue (DEPRECATED!)
Why Specs, Not Increments?
Trigger: When spec is created or updated
Actions:
Create GitHub Project with:
[SPEC-001] Core Framework & ArchitectureStore project ID in spec metadata:
# .specweave/docs/internal/specs/spec-001.md (frontmatter)
---
externalLinks:
github:
projectId: 123
projectUrl: https://github.com/users/anton-abyzov/projects/123
syncedAt: 2025-11-11T10:00:00Z
---
Create GitHub Issues for each user story:
[US-001] As a developer, I want to install SpecWeave via NPMuser-story, spec:spec-001, priority:P1Example GitHub Project:
# [SPEC-001] Core Framework & Architecture
**Status**: In Progress (75% complete)
**Priority**: P0 (Critical)
**Feature Area**: Foundation & Plugin System
## Overview
The core framework and architecture spec covers SpecWeave's foundational capabilities:
- TypeScript-based CLI framework
- Plugin system architecture
- Cross-platform compatibility
## Progress
- ✅ US-001: NPM installation (Complete)
- ✅ US-002: Plugin system (Complete)
- ⏳ US-003: Context optimization (In Progress)
- ⏳ US-004: Intelligent agents (In Progress)
**Overall**: 2/4 user stories complete (50%)
---
🤖 Auto-synced by SpecWeave GitHub Plugin
Trigger: After each task completion (via post-task-completion hook)
Actions:
Update GitHub Issue (for user story):
[x]in-progress, testing, ready-for-review)Update GitHub Project:
Example Issue Update:
**User Story**: US-001
As a developer, I want to install SpecWeave via NPM so that I can use it in my projects
## Acceptance Criteria
- [x] AC-001-01: `npm install -g specweave` works
- [x] AC-001-02: `specweave init` creates `.specweave/` structure
- [ ] AC-001-03: Version command shows current version (In Progress)
---
**Progress**: 2/3 ACs complete (67%)
🤖 Auto-updated by SpecWeave (2025-11-11)
Trigger: All user stories in spec are complete
Actions:
✅ **Spec Completed**
**Final Stats**:
- 35 user stories completed (100%)
- 4 increments implemented (0001, 0002, 0004, 0005)
- Duration: 6 weeks
**Deliverables**:
- Core framework architecture
- Plugin system
- Cross-platform CLI
Spec complete. Project archived.
---
🤖 Auto-closed by SpecWeave
Use Case: Import existing GitHub Projects as SpecWeave specs
Command: sw-github:import-project <project-number>
Actions:
Fetch project via GitHub GraphQL API
Create spec structure:
Generate spec.md with user stories and acceptance criteria
Link project to spec in metadata
Configure GitHub sync in .specweave/config.json:
{
"sync": {
"enabled": true,
"preset": "bidirectional",
"activeProfile": "default",
"profiles": {
"default": {
"provider": "github",
"config": {
"owner": "myorg",
"repo": "myrepo",
"autoSyncSpecs": true,
"defaultLabels": ["specweave", "spec"]
}
}
}
}
}
Credentials (in .env, gitignored):
GITHUB_TOKEN=ghp_xxxxx
# Or just run: gh auth login (auto-detected)
This skill requires GitHub CLI (gh) to be installed and authenticated:
# Install GitHub CLI
brew install gh # macOS
apt install gh # Ubuntu/Debian
choco install gh # Windows
# Authenticate
gh auth login
# Verify
gh auth status
sw-github:sync-spec spec-001
Creates or updates GitHub Project for spec-001.
sw-github:sync-spec --all
Syncs all specs to GitHub Projects.
sw-github:import-project 123
Imports GitHub Project #123 as a SpecWeave spec.
sw-github:status spec-001
Shows sync status (project ID, last sync time, progress %).
# 1. Create spec (PM agent)
User: "Create spec for user authentication"
PM: Creates .specweave/docs/internal/specs/spec-005-user-auth.md
# 2. Auto-sync to GitHub (hook)
→ GitHub Project created automatically
→ Issues created for each user story
# 3. Implement increments
sw:increment "Add login flow"
→ Increment 0010 created (implements US-001, US-002)
# 4. Work on tasks
sw:do
→ Task completed
→ Hook fires
→ Spec updated (AC marked complete)
→ GitHub Project updated automatically
# 5. Complete spec
→ All user stories done
→ GitHub Project archived automatically
For Developers:
For Project Managers:
For Stakeholders:
What if project and spec diverge?
The spec is always the source of truth. GitHub Projects are a mirror for visibility.
Sync conflicts (rare):
Resolution:
sw-github:sync-spec spec-001 --force to overwrite project from specWhat gets synced?
Security:
For SpecWeave Users:
For Teams:
For Organizations:
Project not created?
gh auth status.specweave/config.jsonSync failing?
gh api rate_limitProgress not updating?
autoSyncSpecs: true in config.specweave/logs/hooks-debug.logsw-github:sync-spec spec-001Create .specweave/github/project-template.md:
# [{{spec.id.toUpperCase()}}] {{spec.title}}
{{spec.overview}}
## SpecWeave Details
- **Spec**: [spec.md]({{spec.url}})
- **Priority**: {{spec.priority}}
- **Feature Area**: {{spec.featureArea}}
## User Stories
{{spec.userStories.map(us => `- ${us.id}: ${us.title}`).join('\n')}}
Sync only specific specs:
{
"sync": {
"profiles": {
"default": {
"provider": "github",
"config": {
"owner": "myorg",
"repo": "myrepo",
"syncSpecs": [
"spec-001-core-framework",
"spec-005-user-authentication"
]
}
}
}
}
}
For monorepos with multiple GitHub repositories, use multiple profiles:
{
"sync": {
"profiles": {
"frontend": {
"provider": "github",
"config": {
"owner": "myorg",
"repo": "frontend",
"syncSpecs": ["spec-001-*", "spec-002-*"]
}
},
"backend": {
"provider": "github",
"config": {
"owner": "myorg",
"repo": "backend",
"syncSpecs": ["spec-003-*", "spec-004-*"]
}
}
}
}
}
Add projectV2Enabled: true to your sync config:
{
"sync": {
"profiles": {
"myproject": {
"provider": "github",
"config": {
"owner": "myorg",
"repo": "myrepo",
"projectV2Enabled": true,
"projectV2Number": 5
}
}
}
}
}
{
"statusFieldMapping": {
"planned": "Todo",
"in-progress": "In Progress",
"completed": "Done"
},
"priorityFieldMapping": {
"P1": "Urgent",
"P2": "High",
"P3": "Medium",
"P4": "Low"
}
}
Pull sync fetches issue state and compares with spec ACs:
Sync all specs at once:
spec-*.md files in .specweave/docs/internal/specs/For distributed strategies, issues can be created in different repos:
targetRepos fieldsw-github:sync-spec, sw-github:import-project, sw-github:statussw:team-lead, sw:team-status, sw:team-mergeVersion: 3.0.0 (Projects V2 + Pull Sync + Cross-Repo) Plugin: specweave-github Last Updated: 2026-02-06
tools
Generate AI videos from text prompts or images. Supports Google Veo 3.1 and Pollinations.ai (free). Use when generating video, creating animations, text-to-video, AI video, video generation, make clip, animate.
tools
Validate increment with rule-based checks and AI quality assessment. Use when saying "validate", "check quality", or "verify increment".
tools
Create and manage umbrella workspaces for multi-repo projects. Activate when the user wants to: create umbrella, umbrella init, wrap in umbrella, create workspace, setup multi-repo, migrate repos to umbrella, umbrella create, new workspace, restructure into umbrella, "wrap this repo", "create umbrella for these repos", "setup workspace with repos", "move repos into umbrella". Do NOT activate for: add a repo to existing umbrella (use sw:get), add a feature, add an increment, clone a repo (use sw:get).
tools
--- description: Merge completed parallel agent work and trigger GitHub sync per increment. Activates for: team merge, merge agents, combine work, team finish. --- # Team Merge **Verify all teammates completed, run quality gates, close increments, and trigger sync.** ## Usage ```bash sw:team-merge sw:team-merge --dry-run # Preview merge plan sw:team-merge --skip-sync # Merge without GitHub/JIRA sync ``` ## What This Skill Does 1. **Verify all teammates completed** -- bl