agentleFS
PAIR-codePAIR-code/deliberate-lab/.agents/skills/workspace-sync/SKILL.md

workspace-sync

Skill97 starsChanged 57 days agoApache-2.0View on GitHub

Deterministic synchronization of trunk, PR evaluation worktrees, and drift reporting in Deliberate Lab's bare repository workspace.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Dependency Notice: If package.json or package-lock.json changed during the update, reminds you to run npm ci in that worktree.

    line 62
  2. Distinctive:

    If a feature branch is behind, suggests running git rebase main inside that worktree when the author is ready.

    line 66

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Workspace Sync

Synchronize all branches and worktrees in Deliberate Lab's bare repository layout against upstream and origin.

This skill replaces manual, multi-step git operations with a single deterministic automation script that fast-forwards trunk, mirrors PR evaluation worktrees, identifies merged/closed PRs for cleanup, and reports feature branch drift.

When to use

Invoke this skill when asked to:

  • "Sync workspace"
  • "Update all PR worktrees"
  • "Pull latest changes"
  • "Catch up with upstream"
  • "Check branch drift"
  • "Sync my fork"

Procedure

1. Run the Synchronization Script

From any worktree directory or the parent repository container:

./.agents/skills/workspace-sync/scripts/workspace-sync.sh

To preview changes without altering any git refs or worktree checkouts:

./.agents/skills/workspace-sync/scripts/workspace-sync.sh --dry-run

To only sync trunk and feature branch status without touching PR worktrees:

./.agents/skills/workspace-sync/scripts/workspace-sync.sh --skip-pr-mirror

The script visibly echoes the underlying git commands by default (prefixed with [dry-run] during dry-run mode) and formats all worktree targets with actionable relative paths. If the sync report exceeds 7 KB, it automatically saves to a temporary file via mktemp and provides the path for lossless inspection via view_file (ADR 0003).

2. Understanding the Execution Phases

The script executes four deterministic stages:

  1. Remote Pruning: Runs git fetch --all --prune to refresh all remotes and clean up deleted remote-tracking refs.
  2. Trunk Synchronization (main):
    • Ensures main/ is clean before touching it.
    • Fast-forwards main to upstream/main (git merge --ff-only upstream/main).
    • Pushes main to origin/main to keep your personal fork in sync.
  3. PR Worktree Mirroring (pr-<number>):
    • Finds all sibling worktrees matching pr-[0-9]*.
    • Safety First: Any worktree with uncommitted changes (git status --porcelain) is skipped to prevent data loss.
    • Lifecycle Awareness & Automated Cleanup: Queries GitHub CLI (gh pr view) to see if the PR is MERGED or CLOSED. If so and the worktree is clean, automatically removes the worktree (git worktree remove) and deletes the local branch (git branch -D), keeping the workspace free of zombie checkouts.
    • Exact Mirroring: For open PRs, fetches upstream pull/<number>/head and resets the local branch to FETCH_HEAD.
    • Dependency Notice: If package.json or package-lock.json changed during the update, reminds you to run npm ci in that worktree.
  4. Feature Branch Drift Awareness:
    • Inspects active development branches (e.g. <issue>-<slug>).
    • Reports commit counts ahead and behind main.
    • If a feature branch is behind, suggests running git rebase main inside that worktree when the author is ready.

Safety Rules

  • Never rebase or merge PR evaluation worktrees: External PRs must remain exact mirrors of their upstream head.
  • Never clobber dirty worktrees: Any worktree with unstaged or uncommitted changes is protected and skipped.
  • Do not auto-rebase active feature branches: Feature branches may be in the middle of active development or testing. The script only reports divergence; rebasing is left to the developer or agent at an intentional time.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.