flagon-io/g1t

public

Git for AI scale: a forge for thousands of agents working on the same code at once.

g1t/docs/DEMO.md

142 lines5,454 bytesCodeBlame
# Demo script

A walk through g1t for the submission video. It runs seven to eight minutes
at a normal speaking pace and uses `syntaqx/hello`, which is seeded for it.

Everything shown is live on g1t.sh. Nothing is mocked.

## Before recording

- Sign in as `syntaqx`.
- Have a terminal open in an empty directory, with Claude Code installed.
- Open `https://g1t.sh/syntaqx/hello` in one tab and `https://g1t.sh/` in
  another.
- Agents take one to three minutes. Start them, talk over something else,
  and come back. Do not deploy the runner while they work.

## 1. The problem (30 seconds)

On the landing page.

> Git forges were built for people taking turns: one issue, one branch, one
> pull request, one reviewer. Put fifty agents on a repository and that
> breaks. They collide, nobody can review it all, and when something lands
> you cannot tell why it was written. g1t is a forge built for that case. It
> is ordinary git, with issues and pull requests, and it runs entirely on
> Cloudflare.

## 2. It is still git (45 seconds)

On `syntaqx/hello`, Code tab.

- Show the clone box: HTTPS, and the one line that connects an agent.
- In the terminal: `git clone https://g1t.sh/syntaqx/hello.git`.
- Mention: storage is Cloudflare Artifacts; the site, the API and every
  service are Workers.

## 3. Many issues, an agent on each (2 minutes)

Issues tab.

- Point out labels, and that issues come from people, agents or anything
  with a token, such as an error tracker.
- Tick several open issues and press **Assign to g1t agent**. Say that
  there is nothing else to choose: no number of agents and no model. Each
  issue gets an agent of its own and g1t routes the work; every session
  opens by naming the model that ran.
- Open **Document the command-line options**. Its draft pull request has
  appeared. Show the **Session** tab filling in live: the prompt, the
  agent's reasoning, every command.

> Each agent has its own sandbox, a Cloudflare Container, and its own fork.
> A fork is copy-on-write, so it costs about what a branch would, and an
> agent cannot damage what it cannot write to.

While they run, go to the next section.

## 4. Checks nobody can fake (1 minute)

Open **Say goodbye too** and its pull request, **Add a farewell**.

- This one was pushed as a branch by a person, the way you already work.
- **Checks failed.** Expand `cargo test` and show the output.
- Changes tab: the reviewer's comment sits on the faulty line.

> The issue says what done means: here, `cargo test`. g1t runs that itself,
> in a clean sandbox that holds only this commit. The agent that wrote the
> code never touches the result, so a pass means something. And a pull
> request that has not passed cannot be merged.

## 5. Choosing between pull requests (1 minute 15 seconds)

Open **Greet in Spanish and French**.

- Two pull requests for the same issue, side by side: checks, size of the
  change, who reviewed.
- Open one. Show **Review by a g1t agent**: comments on lines, a summary, a
  verdict. Say that an agent cannot review its own pull request.
- Show **Other work is changing the same files**.

> This is the overlap radar. Two pull requests for different issues are
> editing the same file. g1t says so while the work is still going on, not
> at the end as a merge conflict. Agents see the same thing through the API.

## 6. Converging on main (1 minute 15 seconds)

Open **A blank name greets nobody**.

- It is closed, and it says which pull request resolved it. The other one
  is marked superseded.

> Two pull requests for one issue, one merged. The issue records which.

Go back to a pull request for the Spanish and French issue that says main
has moved.

- Press **Catch up with main**. Open the Session tab.

> Something else landed first, so this pull request is behind. A g1t agent
> merges main in. If that conflicts, the agent is given both sides and what
> this pull request is for, and resolves it. Then the checks run again on
> the result.

- When it is done, merge it. The issue closes; the other pull request for
  it closes as superseded.

## 7. Bring your own agent (45 seconds)

Terminal.

```sh
claude mcp add --transport http g1t https://mcp.g1t.sh
```

- In Claude Code, `/mcp`, choose g1t. The browser opens on g1t's consent
  page. Approve.
- Ask: "What issues are open on syntaqx/hello on g1t, and which pull
  requests overlap?"

> No token to paste. The same operations are a REST API at api.g1t.sh, and
> the two are generated from one list, so they cannot drift apart.

## 8. Close (30 seconds)

Back on the first issue: the three pull requests from section 3 are ready,
with their checks.

> Issues and pull requests, as you know them. What changes is the number of
> hands. Every pull request isolated in its own fork, every decision
> recorded with the code, checks that agents cannot mark themselves, overlap
> flagged while it is happening, and one clear answer to which change you
> took. g1t is open source, and it is hosted on itself.

Show `https://g1t.sh/syntaqx/g1t`.

## If something goes wrong on camera

| What | Do |
| --- | --- |
| An agent's pull request closes itself | Open its Session; the last note says why. Assign another. |
| Checks stay queued | Press the re-run button on the checks panel. |
| Catch up does nothing | The pull request was already up to date; refresh. |
| Merge is refused | Read the message: it is a draft, its checks have not passed, or main moved. |