···1313- Alice can do the exact same thing on Bob f2
1414- Now, Alice and Bob can work on the same repo but on two different forge instances
1515- Question: does having a simple **sync/remote** button solve the collaboration between instances?
1616- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper.
1616+1717+## Solving Alice & Bob's use case with graft
1818+1919+1. One graft instance runs somewhere and already mirrors `federation-x` — say it started as Alice's own repo on f1, paired with a Radicle repo.
2020+2. To bring Bob's f2 in: Bob generates a token on his own instance (scoped `write:repository` + `write:issue`), sends it to whoever runs graft — ideally through graft's own `/share/new` one-time link rather than chat. The graft admin opens `/add-peer`, picks the `federation-x` series from the dropdown, fills in f2's base URL/owner/repo and Bob's token, confirms with the admin password. The Radicle side (RID, node, explorer) is inherited from the series automatically — nobody enters it by hand.
2121+3. Within one sync interval, no restart: f2 joins the sync loop. Bob's copy fast-forwards to whatever the federation already has.
2222+4. From here on: Alice commits on f1 → graft relays it to Radicle → f2 picks it up on its own. Bob commits on f2 → same thing in reverse. Neither adds a git remote, neither runs `git pull`, neither messages the other.
2323+5. If Bob doesn't want Alice's direct commits landing on f2's default branch unreviewed, the `/add-peer` form's sync-scope checkboxes let the admin leave "git" unchecked for f2 and keep only "issues" + "patches" — Alice's commits never auto-merge into f2 then; only her opened PRs do, and Bob merges them himself, on his own schedule.
2424+2525+graft already has a switch for that — it's not "no automation at all," it's "automation for the parts you want automated, a review gate for the part you don't."
2626+2727+2828+<!--
2929+## Solving Alice & Bob's use case with graft
3030+3131+1. One graft instance runs somewhere and already mirrors `federation-x` — say it started as Alice's own repo on f1, paired with a Radicle repo.
3232+2. To bring Bob's f2 in: Bob generates a token on his own instance (scoped `write:repository` + `write:issue`), sends it to whoever runs graft — ideally through graft's own `/share/new` one-time link rather than chat. The graft admin opens `/add-peer`, picks the `federation-x` series from the dropdown, fills in f2's base URL/owner/repo and Bob's token, confirms with the admin password. The Radicle side (RID, node, explorer) is inherited from the series automatically — nobody enters it by hand.
3333+3. Within one sync interval, no restart: f2 joins the sync loop. Bob's copy fast-forwards to whatever the federation already has.
3434+4. From here on: Alice commits on f1 → graft relays it to Radicle → f2 picks it up on its own. Bob commits on f2 → same thing in reverse. Neither adds a git remote, neither runs `git pull`, neither messages the other.
3535+5. If Bob doesn't want Alice's direct commits landing on f2's default branch unreviewed, the `/add-peer` form's sync-scope checkboxes let the admin leave "git" unchecked for f2 and keep only "issues" + "patches" — Alice's commits never auto-merge into f2 then; only her opened PRs do, and Bob merges them himself, on his own schedule.
3636+3737+graft already has a switch for that — it's not "no automation at all," it's "automation for the parts you want automated, a review gate for the part you don't."
3838+-->