Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

g1t.sh
155 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start1/**
2 * What a project will have and does not yet: the pages the project menu
3 * shows as Soon, each with a page of its own saying what it will be. One
4 * place, so the menu and those pages never disagree.
5 *
6 * Each entry says what it is for, what it will do, and what to use today,
7 * so a Soon is a promise someone can read, not a greyed-out word.
8 */
9
10export type RoadmapItem = {
11 /** In the address: `/<owner>/<project>/soon/<key>`. */
12 key: string;
13 title: string;
14 /**
15 * Where it lives: a project page whose tabs it joins, or the workspace,
Merge branch 'rm-boards'16 * for what spans projects (Insights).
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start17 */
18 section: "Code" | "Issues" | "Agents" | "Deployments" | "Observability" | "Security" | "Insights" | "Workspace";
19 /** One line, for the menu's tooltip and the page's lead. */
20 summary: string;
21 /** Why it matters, in two or three sentences. */
22 why: string;
23 /** What it will do. */
24 plans: string[];
25 /** What to use until it exists: a project page, by its path under the project. */
26 today?: { label: string; path: string };
27};
28
29export const ROADMAP: RoadmapItem[] = [
Merge branch 'rm-boards'30 // --- Workspace ----------------------------------------------------------
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start31 {
Navigation: the workspace's own page with tabs, pins and recent in the sidebar32 key: "insights",
33 title: "Insights",
34 section: "Workspace",
35 summary: "How the whole workspace delivers: lead time, reviews, what agents do and what it costs, across every project.",
36 why: "Each project will have its own numbers. The workspace's put them side by side, so you can see which projects ship steadily, where work waits, and where the money goes.",
37 plans: [
38 "Delivery metrics for every project, side by side",
39 "Where work waits: review, the merge queue, checks",
40 "Agents' share of merged changes, and how often it lands first time",
41 "Cost by project, by kind of work and per merged change",
42 ],
43 },
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start44 // --- Code ---------------------------------------------------------------
Chat controls, public profiles, shadcn selects, and no Docs tab in a project45 // Nothing: code is not docs. Docs is its own workspace mode, filterable
46 // by project there, and a project never gets a Docs tab.
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start47
48 // --- Agents -------------------------------------------------------------
49 // At work, Sessions and Memory are built (see project-nav.ts), and so is
Agents mode: an overview of every agent's work and spend, and each agent's sessions, memory, routines, spend, activity and versions50 // the workspace's Agents overview.
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start51 {
52 key: "playbooks",
53 title: "Playbooks",
54 section: "Agents",
55 summary: "How agents should work here: conventions, commands and checks.",
56 why: "Every project has its own way of doing things. Today every agent run already reads the repository's AGENTS.md and CLAUDE.md, at the root and in the directories it touches, and reviews read .g1t/review.md, all from the default branch. Playbooks build on those files with structure g1t can act on, not just read.",
57 plans: [
58 "Instructions per kind of work: fixes, features, reviews, upgrades",
59 "Commands to build and test that g1t runs before every change, not just tells the agent about",
60 "Paths agents may not touch without a person, enforced on push",
61 "Learned from reviews: what people corrected becomes a proposed rule",
62 ],
63 today: { label: "Instructions, on Agents", path: "agents" },
64 },
65
66 // --- Deployments ----------------------------------------------------------
67 {
68 key: "environments",
69 title: "Environments",
70 section: "Deployments",
71 summary: "Staging, production and others, with approvers and branch rules.",
72 why: "Production and previews exist today. Environments add the rest: staging, QA, per-customer, each with its own variables, approvers and rules for what may deploy there.",
73 plans: [
74 "Named environments with their own variables and secrets",
75 "Required approvers before a deploy",
76 "Branch rules: what may deploy where",
77 "Promote a deployment from one environment to the next",
78 ],
79 today: { label: "Deployments", path: "deployments" },
80 },
81 {
82 key: "flags",
83 title: "Feature flags",
84 section: "Deployments",
85 summary: "Turn features on per environment or per user, without a deploy.",
86 why: "Ship code dark and turn it on when ready, for some users first, at the edge, with no deploy.",
87 plans: ["Flags read at the edge by deployed apps", "Rollouts by percentage, user or environment", "Flags cleaned up by agents when fully on"],
88 today: { label: "Deployments", path: "deployments" },
89 },
90
91 // --- Security -------------------------------------------------------------
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar92 // The overview, secret scanning, code scanning, vulnerabilities and the
93 // dependency graph are built: see routes/repo/security-*.tsx.
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start94 {
95 key: "firewall",
96 title: "Firewall",
97 section: "Security",
98 summary: "Rules for who may reach the project's deployed apps.",
99 why: "Deployed apps run on Cloudflare. Rate limits, bot protection and IP rules, per app and environment.",
100 plans: ["Rate limits and bot protection", "IP and country rules", "Password-protected previews"],
101 today: { label: "Deployments", path: "deployments" },
102 },
103
104 // --- Observe ------------------------------------------------------------
105 {
106 key: "uptime",
107 title: "Uptime",
108 section: "Observability",
109 summary: "Checks that the app answers, from around the world.",
110 why: "Know the app is down before your users tell you, and who was told.",
111 plans: ["Checks from many places", "Alerts by email and webhook", "A public status page"],
112 },
113 {
114 key: "analytics",
115 title: "Web analytics",
Projects have Observability: their requests, logs, traces, metrics and errors, from apps on g1t.page with nothing to set up, and from software anywhere else over OpenTelemetry.116 section: "Insights",
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start117 summary: "Who visits the deployed apps, without cookies.",
118 why: "Visits, pages and referrers for each app, private by design, from Cloudflare's own analytics.",
119 plans: ["Visits, pages, referrers and countries", "No cookies, no personal data", "Per deployment and per preview"],
120 },
121
122 // --- Insights -------------------------------------------------------------
123 {
124 key: "delivery",
125 title: "Delivery",
126 section: "Insights",
127 summary: "Lead time, deploy frequency, change failure rate and time to restore.",
128 why: "The four numbers that say how well a team ships, measured from what actually happened in g1t.",
129 plans: ["DORA metrics from merges and deployments", "Review and queue time", "Trends by week and by project"],
130 },
131 {
132 key: "costs",
133 title: "Costs",
134 section: "Insights",
135 summary: "What the project costs, by agent run, sandbox, build and app.",
136 why: "Usage is charged by the workspace; here it is broken down for one project, so you can see what each part of the work costs.",
137 plans: ["Cost by kind of work and by issue", "Cost per merged change", "Budgets per project"],
138 },
139 {
140 key: "impact",
141 title: "Agent impact",
142 section: "Insights",
143 summary: "How much of the work agents do, and how well.",
144 why: "The share of changes agents author, how often their work lands first time, and where people still step in.",
145 plans: ["Agents' share of merged changes", "First-time pass rate of checks and reviews", "Where people correct agents most"],
146 },
147];
148
149export function roadmapItem(key: string): RoadmapItem | undefined {
150 return ROADMAP.find((item) => item.key === key);
151}
152
153export function roadmapIn(section: RoadmapItem["section"]): RoadmapItem[] {
154 return ROADMAP.filter((item) => item.section === section);
155}

This file's history is long; its oldest lines are credited to the oldest commit read.