When mosaic sync detects dirty files in the skills repo, it now identifies which skills were edited, copies them to skills-local/ (which takes precedence during linking), then resets the repo clean so git pull always succeeds
Replaces the fragile stash/pop approach — no more merge conflicts or crash on dirty worktree
User edits are never lost; they live permanently in skills-local/
## Summary
- When `mosaic sync` detects dirty files in the skills repo, it now identifies which skills were edited, copies them to `skills-local/` (which takes precedence during linking), then resets the repo clean so `git pull` always succeeds
- Replaces the fragile stash/pop approach — no more merge conflicts or crash on dirty worktree
- User edits are never lost; they live permanently in `skills-local/`
## Test plan
- [x] Typecheck: 36/36 green
- [x] Lint: 20/20 green
- [x] Format: clean
- [x] Unit tests: 41/41 pass
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Replace fragile stash/pop approach with intelligent migration:
when mosaic sync detects dirty files in the skills repo, it
identifies which skills were edited, copies them to skills-local/
(which takes precedence during linking), then resets the repo clean
so git pull always succeeds. User edits are never lost.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
mosaic syncdetects dirty files in the skills repo, it now identifies which skills were edited, copies them toskills-local/(which takes precedence during linking), then resets the repo clean sogit pullalways succeedsskills-local/Test plan
🤖 Generated with Claude Code