synthesis-repo-guard
Installation
SKILL.md
Synthesis Repo Guard
Agents and tools change files all day, and work left uncommitted or unpushed on one Mac
is invisible from the other. This skill finds it: scripts/repo_sync_check.py scans
every repository under a workspace root and reports what is dirty, ahead, behind or
detached, without changing anything. Committing this session's own records is
synthesis handoff; the rules both follow are below.
Binding rules
- Detection never modifies. The scan reads; it never commits, stages, fetches or pushes.
- Alerts carry a count and a pointer, never a name. Speech and banners never name a repository, workspace or client: speakers are overheard and banners are screen-shared, at all times, not only while sharing (2026-07-08). Detail goes only to pull channels the principal opens: the report file and synthesis-console.
- Quiet means quiet. While
~/.synthesis/quiet-audioexists, nothing speaks or shows a banner; the report still updates, so muting loses nothing. - Only reads may run on a schedule. Never schedule anything that commits or pushes: wall-clock mutation races repositories across machines.
- Commit only what this session changed, inside its claims, by exact path, with every hook running:
synthesis handoff. Never sweep another session's dirty files into a commit (2026-05-13), and read the result back fromgit log, not from the absence of an error. - Never force. Fetch, then push only as a fast-forward; on divergence keep the commit local and report it. Never rebase, force-push or
--no-verify, and leave anindex.lockalone. - Never publish a private record to a remote outside the principal's own namespace, whatever a path glob matched: one glob once matched a repository with a client remote.