pr_01m47d24b0e6n91zwymwxg0vpx/docs/DEMO.md

142 lines5,454 bytesCodeBlame
1# Demo script
2
3A walk through g1t for the submission video. It runs seven to eight minutes
4at a normal speaking pace and uses `syntaqx/hello`, which is seeded for it.
5
6Everything shown is live on g1t.sh. Nothing is mocked.
7
8## Before recording
9
10- Sign in as `syntaqx`.
11- Have a terminal open in an empty directory, with Claude Code installed.
12- Open `https://g1t.sh/syntaqx/hello` in one tab and `https://g1t.sh/` in
13 another.
14- Agents take one to three minutes. Start them, talk over something else,
15 and come back. Do not deploy the runner while they work.
16
17## 1. The problem (30 seconds)
18
19On the landing page.
20
21> Git forges were built for people taking turns: one issue, one branch, one
22> pull request, one reviewer. Put fifty agents on a repository and that
23> breaks. They collide, nobody can review it all, and when something lands
24> you cannot tell why it was written. g1t is a forge built for that case. It
25> is ordinary git, with issues and pull requests, and it runs entirely on
26> Cloudflare.
27
28## 2. It is still git (45 seconds)
29
30On `syntaqx/hello`, Code tab.
31
32- Show the clone box: HTTPS, and the one line that connects an agent.
33- In the terminal: `git clone https://g1t.sh/syntaqx/hello.git`.
34- Mention: storage is Cloudflare Artifacts; the site, the API and every
35 service are Workers.
36
37## 3. Many issues, an agent on each (2 minutes)
38
39Issues tab.
40
41- Point out labels, and that issues come from people, agents or anything
42 with a token, such as an error tracker.
43- Tick several open issues and press **Assign to g1t agent**. Say that
44 there is nothing else to choose: no number of agents and no model. Each
45 issue gets an agent of its own and g1t routes the work; every session
46 opens by naming the model that ran.
47- Open **Document the command-line options**. Its draft pull request has
48 appeared. Show the **Session** tab filling in live: the prompt, the
49 agent's reasoning, every command.
50
51> Each agent has its own sandbox, a Cloudflare Container, and its own fork.
52> A fork is copy-on-write, so it costs about what a branch would, and an
53> agent cannot damage what it cannot write to.
54
55While they run, go to the next section.
56
57## 4. Checks nobody can fake (1 minute)
58
59Open **Say goodbye too** and its pull request, **Add a farewell**.
60
61- This one was pushed as a branch by a person, the way you already work.
62- **Checks failed.** Expand `cargo test` and show the output.
63- Changes tab: the reviewer's comment sits on the faulty line.
64
65> The issue says what done means: here, `cargo test`. g1t runs that itself,
66> in a clean sandbox that holds only this commit. The agent that wrote the
67> code never touches the result, so a pass means something. And a pull
68> request that has not passed cannot be merged.
69
70## 5. Choosing between pull requests (1 minute 15 seconds)
71
72Open **Greet in Spanish and French**.
73
74- Two pull requests for the same issue, side by side: checks, size of the
75 change, who reviewed.
76- Open one. Show **Review by a g1t agent**: comments on lines, a summary, a
77 verdict. Say that an agent cannot review its own pull request.
78- Show **Other work is changing the same files**.
79
80> This is the overlap radar. Two pull requests for different issues are
81> editing the same file. g1t says so while the work is still going on, not
82> at the end as a merge conflict. Agents see the same thing through the API.
83
84## 6. Converging on main (1 minute 15 seconds)
85
86Open **A blank name greets nobody**.
87
88- It is closed, and it says which pull request resolved it. The other one
89 is marked superseded.
90
91> Two pull requests for one issue, one merged. The issue records which.
92
93Go back to a pull request for the Spanish and French issue that says main
94has moved.
95
96- Press **Catch up with main**. Open the Session tab.
97
98> Something else landed first, so this pull request is behind. A g1t agent
99> merges main in. If that conflicts, the agent is given both sides and what
100> this pull request is for, and resolves it. Then the checks run again on
101> the result.
102
103- When it is done, merge it. The issue closes; the other pull request for
104 it closes as superseded.
105
106## 7. Bring your own agent (45 seconds)
107
108Terminal.
109
110```sh
111claude mcp add --transport http g1t https://mcp.g1t.sh
112```
113
114- In Claude Code, `/mcp`, choose g1t. The browser opens on g1t's consent
115 page. Approve.
116- Ask: "What issues are open on syntaqx/hello on g1t, and which pull
117 requests overlap?"
118
119> No token to paste. The same operations are a REST API at api.g1t.sh, and
120> the two are generated from one list, so they cannot drift apart.
121
122## 8. Close (30 seconds)
123
124Back on the first issue: the three pull requests from section 3 are ready,
125with their checks.
126
127> Issues and pull requests, as you know them. What changes is the number of
128> hands. Every pull request isolated in its own fork, every decision
129> recorded with the code, checks that agents cannot mark themselves, overlap
130> flagged while it is happening, and one clear answer to which change you
131> took. g1t is open source, and it is hosted on itself.
132
133Show `https://g1t.sh/syntaqx/g1t`.
134
135## If something goes wrong on camera
136
137| What | Do |
138| --- | --- |
139| An agent's pull request closes itself | Open its Session; the last note says why. Assign another. |
140| Checks stay queued | Press the re-run button on the checks panel. |
141| Catch up does nothing | The pull request was already up to date; refresh. |
142| Merge is refused | Read the message: it is a draft, its checks have not passed, or main moved. |