Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 40 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,13 @@ skillsync target add codex ~/.codex/skills --no-auto-adopt

If a different skill with the same name is already in the vault, SkillSync leaves both copies untouched and reports the conflict.

Inspect local targets without adopting, applying, committing, or pushing anything:

```bash
skillsync scan
skillsync scan --json
```

## Manage another device

List registered devices and their sync state:
Expand Down Expand Up @@ -341,6 +348,32 @@ Run a sync immediately:
skillsync sync
```

Preview local skill projection changes without pulling or writing:

```bash
skillsync sync --dry-run
```

SkillSync checks every destination before applying the plan. It backs up changed skill projections in local Git metadata and restores them if the apply or a later local reconciliation step fails. Copy-mode projections also record their deployed content hash. If a managed copy was edited locally, sync stops instead of overwriting it. After reviewing those edits, discard them explicitly with:

```bash
skillsync sync --discard-local-changes
```

Restore the most recent successful local projection apply in an emergency:

```bash
skillsync rollback
```

The next sync applies the current vault assignments again.

Validate vault structure, registry hashes, JSON files, symlinks, and common credential formats without changing the vault:

```bash
skillsync check
```

Inspect the current configuration:

```bash
Expand Down Expand Up @@ -406,8 +439,10 @@ skillsync target auto-adopt <name> <on|off>
skillsync auto-adopt [show|on|off]
skillsync policy show
skillsync policy set delete-unassigned-skills <on|off>
skillsync scan
skillsync sync
skillsync scan [--json]
skillsync sync [--dry-run] [--no-pull] [--discard-local-changes]
skillsync rollback
skillsync check
skillsync service install
skillsync doctor
skillsync daemon
Expand All @@ -416,6 +451,9 @@ skillsync daemon
## Safety

- SkillSync will not silently overwrite an unmanaged local folder.
- SkillSync refuses to overwrite or remove a locally edited managed copy unless you explicitly discard the edits.
- Skill projection applies restore their previous state after a failure.
- Vault checks reject symlinks, malformed JSON, stale registry entries, reserved ownership markers, and common credential formats.
- Symlinked content outside a configured target is not auto-adopted.
- Different same-name skills require explicit conflict resolution.
- Plugin sync is additive and never copies connector credentials.
Expand Down
2 changes: 2 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@ SkillSync uses a user-owned private GitHub repository as its control plane. Ever
Device-local skill targets and global instruction paths are approved on that device and stored outside the synced vault. Pulled vault state cannot authorize new local filesystem locations.

Skill folders can contain executable instructions or supporting scripts. Users should review third-party skills before adding them to a vault.

SkillSync checks vault files for symlinks, malformed JSON, stale registry entries, reserved ownership markers, and common credential formats before syncing or pushing. This check reduces accidental exposure but cannot recognize every secret. Keep credentials, OAuth state, and session data out of skill folders and instruction profiles.
Loading