Distributed Workflow
Need User FeedbackREAP 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.
- Machine A completes gen-046-a on branch-a → /reap.push
- Machine B completes gen-046-b on branch-b → /reap.push
- Machine A runs /reap.pull branch-b → fetch + full merge generation lifecycle
Key Principles
git pull/push always work normally. REAP commands are additive — you choose when to use the distributed workflow.
Genome conflicts are resolved before source merge. Like amending the constitution before updating the laws.
Everything is local + Git. No external services, no central coordination.
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
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-bMultiple 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-branchSome 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.
