.agents/skills/speckit-sync-apply/SKILL.md
Apply approved drift resolutions to specs and/or code
npx skillsauth add pradeepmouli/lspeasy speckit-sync-applyInstall 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.
Apply approved resolutions from the proposals file. Updates specs or generates implementation tasks.
$ARGUMENTS
speckit.sync.analyze to generate drift reportspeckit.sync.propose to generate proposals.specify/sync/proposals.jsonRead:
.specify/sync/proposals.json - proposals with approval statusRead proposals and filter to those marked approved: true.
If no proposals are approved:
For each approved BACKFILL proposal:
Track changes:
{
"spec": "spec-011",
"requirement": "FR-001",
"before": "original text",
"after": "updated text",
"applied_at": "timestamp"
}
For each approved NEW_SPEC proposal:
specs/{spec-id}/spec.md with generated contenttasks.md placeholderFor ALIGN proposals (spec → code), don't modify code directly. Instead:
.specify/sync/align-tasks.md--create-issues is passedTask format:
## Task: Align [spec-id]/[requirement]
**Spec Requirement**: [FR-XXX]
**Current Code**: [description of current behavior]
**Required Change**: [description of needed change]
**Files to Modify**: [list of files]
**Estimated Effort**: [small/medium/large]
### Acceptance Criteria
- [ ] [criterion 1]
- [ ] [criterion 2]
For SUPERSEDE proposals:
superseded_by field to old spec metadata# Sync Apply Report
Applied: [timestamp]
## Changes Made
### Specs Updated
| Spec | Requirement | Change Type |
|------|-------------|-------------|
| spec-011 | FR-001 | Modified |
| spec-011 | FR-015 | Added |
### New Specs Created
- spec-013-reconciliation
### Implementation Tasks Generated
- 3 tasks in `.specify/sync/align-tasks.md`
### Not Applied
| Proposal | Reason |
|----------|--------|
| spec-008/FR-003 | Not approved |
## Next Steps
1. Review updated specs
2. Commit changes: `git add specs/ && git commit -m "sync: apply drift resolutions"`
3. Implement tasks in align-tasks.md
Write to:
.specify/sync/apply-report.md.specify/sync/apply-report.json--dry-run: Show what would be applied without making changes--create-issues: Create GitHub issues for ALIGN tasks--auto-commit: Commit spec changes automatically--spec <id>: Apply only proposals for a specific spec/speckit.sync.apply --dry-run
/speckit.sync.apply
/speckit.sync.apply --auto-commit --create-issues
.specify/sync/backups/--dry-run first to preview changestools
Use for ANY rename, file-move, or move-symbol refactor — especially rename-heavy work across multiple files. Claude Code's built-in LSP tool is READ-ONLY (find references, but no rename / file-move / move-symbol). Hand-editing those refactors silently misses re-exports, aliased imports, type-only imports, and {@link} doc references. This skill drives a real language server via the `lspeasy` CLI to apply a correct WorkspaceEdit that catches every reference. Trigger when the user asks to rename a function/class/variable/type project-wide, move a file and fix its importers, or pull a symbol out into another module.
tools
Documentation site for lspeasy Use when: You are building a browser-based LSP client, a WebSocket-backed language....
tools
Documentation site for lspeasy Use when: You are implementing a custom client layer and need the same validation....
tools
Use when working with lspeasy (client, core, server). Covers: lsp, language-server-protocol, lsp-client, language-client, jsonrpc, transport, lsp-server, language-server.