Collaboration

Distributed Workflow

Need User Feedback

REAP supports a distributed workflow for collaboration environments where multiple developers or AI agents work on the same project in parallel — without a central server. Git is the only transport layer.

The distributed workflow is currently in early stages and requires further testing. Use with caution in production environments. We are actively collecting user feedback — please report issues or suggestions at GitHub Issues

How It Works

Each developer or agent works independently on their own branch and generation. When it's time to combine, REAP orchestrates the merge with a genome-first strategy.

  1. Machine A completes gen-046-a on branch-a → /reap.push
  2. Machine B completes gen-046-b on branch-b → /reap.push
  3. Machine A runs /reap.pull branch-b → fetch + full merge generation lifecycle

Key Principles

Opt-in

git pull/push always work normally. REAP commands are additive — you choose when to use the distributed workflow.

Genome-first

Genome conflicts are resolved before source merge. Like amending the constitution before updating the laws.

No server

Everything is local + Git. No external services, no central coordination.

DAG lineage

Each generation references its parents via a hash-based ID (gen-046-a3f8c2), forming a directed acyclic graph that naturally supports parallel work.

Usage Scenarios

Remote branches (multi-machine)

Different developers or agents work on separate machines and push to remote branches. Use /reap.push to publish, /reap.pull <branch> to fetch and merge.

/reap.push → /reap.pull branch-b
Local worktrees (multi-agent)

Multiple AI agents work in parallel on the same machine using git worktrees. Each worktree has its own branch and generation. Use /reap.merge.start to combine directly — no fetch needed.

/reap.merge.start worktree-branch
Mixed

Some work is local (worktrees), some is remote (other machines). Combine /reap.pull for remote branches and /reap.merge.start for local branches as needed.

Pull & Push (Remote)

/reap.pull <branch> is the distributed equivalent of /reap.evolve. It fetches the remote, detects new generations, and runs a full merge generation lifecycle — from Detect through Completion.

/reap.push validates the current REAP state (warns if a generation is in progress) and pushes the current branch to the remote.

Merge (Local / Worktree)

/reap.merge.start <branch> creates a merge generation directly from a local branch — ideal for worktree-based parallel development where no fetch is needed. Use /reap.merge.evolve to run the full merge lifecycle, or step through each stage manually.

Git Ref-Based Reading

Before a merge, the target branch's genome and lineage are read via git refs (git show, git ls-tree) — no checkout required. This works for both remote and local branches.