agent-syncBLOCK
Coordinate concurrent coding agents with expiring leases, race-free IDs, run journals, generated boards, and Git-backed cross-machine claims.
Overview
Coordinate concurrent coding agents with expiring leases, race-free IDs, run journals, generated boards, and Git-backed cross-machine claims.
b7fe4bac6ccbOBSERVED · 2026-10-13Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| cursor | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
name: agent-sync
description: "Use when several coding agents work one repository at once and must not collide - claiming a task, reserving the next decision/question/ticket id, journaling a run, moving a cross-repo dependency, regenerating the board, or finishing work across a parent repo and its submodules - clean, pushed, and pointed at. Triggers - 'claim this task' / 'возьми задачу', 'who is working on' / 'кто сейчас делает', 'reserve an id' / 'зарезервируй id', 'sync the board' / 'обнови доску', 'set up agent coordination' / 'настрой координацию агентов', 'the submodule is pushed, the parent points at the old commit' / 'сабмодуль запушен, родитель на старом коммите', /agent-sync. Use it BEFORE editing any shared registry file (decisions, open questions, roadmap, workstreams, dependencies) in a project with .claude/agent-sync.json, even when the user never mentions coordination - an unclaimed edit to those files lets two agents overwrite each other."
compatibility: "Requires the task-pipeline skill for its stages (npx sshlg-skills install). Needs python3 3.9+ (stdlib only, HTTP included - nothing to pip install) and bash for the hooks. The knowledge backend is configured per project; with none configured it degrades to git-file leases. The shipped enforcement adapter targets Claude Code; without a verified adapter, run the same checks as a self-check."
license: MIT
metadata:
version: "1.22.2"
author: ssheleg
---
# agent-sync — one project, many agents, no collisions
Two planes, and one rule between them:
> **Git is the record plane. The cloud is the coordination plane.**
> A fact that must survive is written to git first and referenced from the cloud.
> A fact about *who is doing what right now* lives in the cloud and expires.
No cloud object is ever the only home of a durable fact. Everything below exists to
keep that true while several agents write at once.
## Four traps — read these before anything else
**1. The knowledge base never decides a lease.** It cannot: twelve concurrent appends to
one Outline document returned twelve successes and left **three** lines. Exclusion comes
from something with real compare-and-swap. The plane carries the record and nothing else.
**2. Know which lease you have, and say so.** `leaseBackend: "local"` is an atomic file
create — exclusive between processes on one filesystem, **advisory across machines**.
`leaseBackend: "git"` pushes a ref, and the remote's non-fast-forward rejection **is** a
compare-and-swap — exclusive across machines. `acquire` prints which. A pretended lease is
worse than no lease: the other agent stops checking.
**`acquire` also writes the claim through to the roadmap**, and `release` restores exactly
what was there — one row, one cell, refused on ambiguity, `git diff` empty after a
round-trip. **Read `references/roadmap.md`** before configuring `claimTags` or closing a
task; closing is a statement about the work and stays yours.
**Work on a branch; the integration branch is somebody else's stable base.** `acquire`
writes the claim through **only** there — on any other branch the holder stays in the
coordination plane, where `status` shows it to every agent. Committed to a branch, a claim
is invisible until the merge and turns the shared roadmap into a file two branches both
edit. Land work with `merge`: conflicts computed **before** anything is touched, the merge
recorded in `docs/MERGES.md`, the `--key` lease released; `merges` says what landed while
you were away. **Read `references/branching.md`** before merging.
**3. Verify the Claude hook adapter.** Without verified enforcement, run `guard` explicitly. Report hook evidence separately
from `gated` lease arbitration. A mode's five capability fields
live in ONE place — `references/adapter-contract.md` → *The status capability
contract*, never restated here. Do not describe a project as protected when it is not.
**4. An unreadable log is not a lost race.** Emit `-`, accept `-`/`*`/`+`, count
every malformed entry-shaped line before filtering, and refuse over 2% unparseable.
The parsing contract and observed failures live in `references/lease-protocol.md`.
## Bringing this into ANY project — the whole chain
```
scaffold → create the documentation architecture, only where it is absent
adopt → read the repository, propose a config, write nothing
init → write the approved config + the gitignored env file
(operator places the token — never you)
reconcile --set-baseline → make history a counted backlog, once
setup → generate the snapshot that describes this project's wiring
check → validate the whole thing; non-zero if it is not healthy
```
**`check` refuses** missing rule targets, credentials or register baselines, stale
snapshots and an env file **tracked by git**. Run it after adoption, config changes
and in CI; it names every failing condition.
**`scaffold` never overwrites.** It seeds a decision register and an `AGENTS.md` pointing at
the snapshot, and leaves every existing file untouched.
## Existing project: start with `adopt`
Run `adopt` before `init`. It reads the repository and prints what it found — id
registers, registry files, gates — plus the decisions it **refuses to make for you** —
then proposes a config.
```bash
python3 "$SKILL_DIR/scripts/agent_sync.py" adopt
```
Confirm the registers and guarded files with the operator first: a register pointed at the
wrong file makes every later check confidently wrong, and a guarded list that misses a shared
file leaves the one place collisions happen unprotected. In a submodule it declares no
registers — decisions belong to the parent. Then take the chain above from `init`.
## First command in a project: `init`
**Never run anything else against an uninitialised project.** `init` asks and answers
the storage question once, and writes it down.
**Ask the operator these two things in chat — do not guess, do not pick a default:**
1. **Where should coordination state lTrust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (2 observation(s))
- Network
- declared (5 observation(s))
- Shell
- declared (1 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (2)
if base == "sudo":
system use found in code, not declared in the description
Gates applied: no_behavioural_pass.
b7fe4bac6ccbfull audit observations/trust-audit/skill/ssheleg__agent-sync.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-13 | b7fe4bac6ccb | BLOCK | D | 69 | first audit |
Questions
What does the agent-sync skill do?
Coordinate concurrent coding agents with expiring leases, race-free IDs, run journals, generated boards, and Git-backed cross-machine claims.
Is agent-sync safe to install?
No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.
What can agent-sync access on my machine?
The audit observed that it reaches the network, runs shell commands and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: none found.
Which assistants does agent-sync work with?
Its documentation mentions claude-code and cursor. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (b7fe4bac6ccb), read on 2026-10-13. The repository is watched, and a new audit runs when it changes — this is the first audit.