Add product taxonomy spec; rename + align the Cloud Agent plan

Define the canonical product map (product-overview.md): sigit.si (Git hosting) and code.sigit.si (siGit Code universe); siGit Code (local agent), siGit Code Cloud (hosted chat, /cloud + /cloud/sessions), and siGit Code Cloud Agent (the autonomous, sandboxed task -> PR product to build). Reserve 'session' for chat and 'run' for the agent. Rename cloud-agent-plan.md -> sigit-code-cloud-agent-plan.md and align it: name is siGit Code Cloud Agent; Git-host agnostic (Git only, no SVN/Mercurial) behind a GitHostAdapter, sigit.si first then GitHub/GitLab; MVP trigger pinned. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Seto Elkahfi committed Jun 26, 2026 at 19:44 UTC ea51a7c398e6658144a46863aaa2bd08f37869f0
2 files changed +156 -22
docs/product/product-overview.md new
+116
@@ -0,0 +1,116 @@
1 +# siGit product overview and taxonomy
2 +
3 +Status: spec v1 (2026-06-26). Audience: internal (private repo). This is the
4 +canonical map of what we sell and what the words mean. Every other spec defers to
5 +the names defined here.
6 +
7 +---
8 +
9 +## 1. The two domains
10 +
11 +| Domain | What it is |
12 +|---|---|
13 +| **sigit.si** | **Git hosting for the AI era.** The forge: repositories, branches, commits, and over time pull requests, issues, and the source-control surface that AI-native workflows run on. |
14 +| **code.sigit.si** | **The universe of siGit Code**, the coding agent. Home for the agent and its hosted products. |
15 +
16 +Keep them distinct: sigit.si hosts the code; code.sigit.si is where the agent
17 +lives and where the hosted offerings are sold.
18 +
19 +---
20 +
21 +## 2. siGit Code (the agent)
22 +
23 +**siGit Code** is a **natively local-inference coding agent** (the Rust CLI / ACP
24 +agent). On-device by default: the model runs on the user's machine, the agent
25 +works against local repos, nothing is sent to a server unless the user chooses a
26 +hosted product.
27 +
28 +Because it is local-first, the **root of code.sigit.si (`/`)** is the
29 +**on-device dashboard**: telemetry of the user's **local** siGit Code sessions,
30 +shown only if the user opts in to enable it. Nothing leaves the machine.
31 +
32 +---
33 +
34 +## 3. The hosted products on code.sigit.si
35 +
36 +Two products sit on top of siGit Code. They mirror the two ways GitHub Copilot is
37 +sold (interactive chat vs. autonomous coding agent), but the engine in both is
38 +siGit Code, which we already ship.
39 +
40 +### 3.1 siGit Code Cloud — hosted chat (BUILT)
41 +
42 +**siGit Code Cloud** is the **hosted, non-on-device chat**: an interactive
43 +assistant powered by hosted inference instead of the local model. The user signs
44 +in, picks a quality tier, and chats. Conversations are saved.
45 +
46 +- **Surfaces:** `/cloud` (the chat) and `/cloud/sessions`, `/cloud/sessions/<uuid>`
47 + (saved chat history). **Both are part of siGit Code Cloud.**
48 +- **Unit of work:** a **session** = one saved chat conversation.
49 +- **Compute:** hosted inference only (Onde Cloud, via `/api/v1/chat/completions`).
50 +- **Copilot analog:** Copilot Chat.
51 +- **Status:** shipped and live at code.sigit.si.
52 +
53 +### 3.2 siGit Code Cloud Agent — autonomous agent (TO BUILD)
54 +
55 +**siGit Code Cloud Agent** is **autonomous, sandboxed siGit Code that solves an
56 +issue or task in a Git repository and opens a pull request**, working in the
57 +background like a human developer. The user delegates a task and walks away; the
58 +agent works on its own and comes back with a PR to review.
59 +
60 +- **Engine:** siGit Code, run headless in an ephemeral **sandbox** (AWS), with
61 + hosted inference. The agent clones the repo, edits, runs build/test, iterates,
62 + pushes a branch.
63 +- **Repo target:** **sigit.si first**, then **GitHub, GitLab, and other Git
64 + hosts** in the future. Scope is **Git only** (no SVN, Mercurial, or other version
65 + control systems). The agent is **Git-host agnostic** behind a Git-host adapter:
66 + sigit.si is the first host, not the only one.
67 +- **Output:** a **pull request** on the target Git host (a pushed branch + review
68 + surface) for a human to review and merge. The agent never auto-merges.
69 +- **Unit of work:** an **agent run** (one delegated task → autonomous work → PR).
70 +- **Copilot analog:** Copilot coding agent (the cloud agent).
71 +- **Status:** planning. See [sigit-code-cloud-agent-plan.md](sigit-code-cloud-agent-plan.md).
72 +
73 +---
74 +
75 +## 4. Naming rules (to stop the collisions)
76 +
77 +These words are load-bearing. Use them exactly.
78 +
79 +- **siGit Code** — the local-inference coding agent. The engine.
80 +- **siGit Code Cloud** — the hosted **chat** product. `/cloud` + `/cloud/sessions`.
81 +- **siGit Code Cloud Agent** — the autonomous **agent** product (task → PR).
82 +- **session** — a siGit Code Cloud **chat** conversation. It belongs to siGit Code
83 + Cloud. Do **not** use "session(s)" to mean the agent or its runs.
84 +- **agent run** — one siGit Code Cloud Agent task. Use "run" (or "task"), never
85 + "session," for the agent.
86 +- **on-device dashboard** — the local telemetry at `/` (opt-in).
87 +
88 +So: the thing at `/cloud/sessions` is **chat sessions** (siGit Code Cloud). The
89 +autonomous product is the **Agent**, and its work items are **runs**, on their own
90 +surface (anchored to a repo, since a run operates on one repository).
91 +
92 +---
93 +
94 +## 5. Information architecture (code.sigit.si)
95 +
96 +| Path | Product | Notes |
97 +|---|---|---|
98 +| `/` | on-device dashboard | local session telemetry, opt-in |
99 +| `/cloud` | siGit Code Cloud | the hosted chat |
100 +| `/cloud/sessions`, `/cloud/sessions/<uuid>` | siGit Code Cloud | saved chat history + detail |
101 +| `/billing` | account | plan / billing |
102 +| _(future)_ agent surface | siGit Code Cloud Agent | run-a-task and the list of agent runs; anchored to a repo (sigit.si first). Surface path TBD in the agent spec. |
103 +
104 +The current web app (`apps/code-cloud-web`) already implements rows 1 to 4. The
105 +Agent surface is new and specified separately.
106 +
107 +---
108 +
109 +## 6. Why this is a strong position
110 +
111 +GitHub had to build a coding agent to ship its cloud agent. **siGit already ships
112 +the agent (siGit Code) and the git host (sigit.si).** siGit Code Cloud Agent is
113 +mostly: take the agent we already have, run it headless in a sandbox against a
114 +repo we already host, and open a PR. The one genuinely new system is the sandbox.
115 +The Git-host-agnostic design means the same agent later runs against GitHub and
116 +GitLab repos, not just sigit.si (Git only; not SVN, Mercurial, or other VCS).
docs/product/sigit-code-cloud-agent-plan.md renamed
+40 -22
@@ -1,31 +1,44 @@
1 -# siGit Cloud Agent — product plan and roadmap
1 +# siGit Code Cloud Agent — product plan and roadmap
2
3 -Status: draft v1 (2026-06-26). Owner: product/eng. Audience: internal (private repo).
3 +Status: draft v2 (2026-06-26). Owner: product/eng. Audience: internal (private repo).
4 +Naming and scope per [product-overview.md](product-overview.md); this is the
5 +detailed spec for the **siGit Code Cloud Agent** product defined there.
6
5 -A GitHub-Copilot-coding-agent-style product built into sigit.si and siGit Code
6 -Cloud: you give it a task against a repo you host on sigit.si, an isolated AWS
7 -sandbox runs the siGit Code agent loop against that repo, and it returns a branch
8 -plus a proposed pull request. This document is the strategy, the architecture, and
9 -the phased roadmap.
7 +A GitHub-Copilot-coding-agent-style product: you delegate a task against a Git
8 +repository, an isolated AWS sandbox runs siGit Code autonomously against that repo,
9 +and it returns a branch plus a proposed pull request. The first repo target is
10 +**sigit.si**; the agent is **Git-host agnostic** behind a Git-host adapter so the
11 +same agent later runs against **GitHub, GitLab, and other Git hosts**. Scope is
12 +**Git only** (no SVN, Mercurial, or other version control systems). This document
13 +is the strategy, the architecture, and the phased roadmap.
14
15 ---
16
17 ## 1. What we are building (and what it is not)
18
15 -**siGit Cloud Agent** is an asynchronous, server-side coding agent. The user
16 -describes a task ("add pagination to the repos list", "fix the failing
17 -auth test", "upgrade Rails to 8.1"), points it at one of their sigit.si repos and
18 -a base branch, and walks away. The platform provisions an ephemeral AWS sandbox,
19 -clones the repo into it, runs siGit Code headless against the task with cloud
20 -inference, lets it edit files and run build/test commands, then pushes a head
21 -branch back to sigit.si and opens a pull request for human review.
19 +**siGit Code Cloud Agent** is an asynchronous, server-side coding agent. The user
20 +delegates a task or issue ("add pagination to the repos list", "fix the failing
21 +auth test", "upgrade Rails to 8.1"), points it at one of their repos and a base
22 +branch, and walks away. The platform provisions an ephemeral AWS sandbox, clones
23 +the repo into it, runs siGit Code headless against the task with hosted inference,
24 +lets it edit files and run build/test commands, then pushes a head branch and
25 +opens a pull request for human review.
26
23 -It is the cloud, autonomous sibling of the two things siGit already ships:
27 +It is the autonomous sibling of the other two things siGit ships (see
28 +[product-overview.md](product-overview.md)):
29
25 -- **siGit Code** (public Rust CLI / ACP agent) runs *locally / on the desktop*,
30 +- **siGit Code** (Rust CLI / ACP agent) runs *locally / on the desktop*,
31 interactively, driven by the developer at their keyboard.
27 -- **siGit Cloud Agent** runs *in our cloud*, asynchronously, driven by a task and
28 - reviewed afterward through a PR.
32 +- **siGit Code Cloud** is the *hosted chat* (interactive, synchronous). Its work
33 + unit is a chat **session**.
34 +- **siGit Code Cloud Agent** runs *in our cloud*, asynchronously, driven by a task
35 + and reviewed afterward through a PR. Its work unit is an agent **run** (never a
36 + "session", which belongs to the chat product).
37 +
38 +**MVP trigger (decided):** from a repo on sigit.si, the user describes a task and
39 +the agent produces a PR. Formal issue-assignment (assign a tracked issue to the
40 +agent, the Copilot headline flow) is a fast-follow that depends on an Issues
41 +feature, and on the Git-host adapters for GitHub/GitLab issues.
42
43 Reference points in the market: GitHub Copilot coding agent (assign an issue, it
44 opens a PR), OpenAI Codex cloud, Cursor background agents, Devin. The
@@ -292,7 +305,7 @@ Agent runs are an included monthly bundle per plan, with overage or an add-on fo
305 heavy use. Suggested `Subscription` constant shape:
306
307 ```ruby
295 -# Included siGit Cloud Agent runs per billing period. Tunable pricing knob.
308 +# Included siGit Code Cloud Agent runs per billing period. Tunable pricing knob.
309 AGENT_RUNS = { "pro" => [FILL], "team" => [FILL] }.freeze # e.g. pro 20, team 75
310 TRIAL_AGENT_RUNS = [FILL] # e.g. 2
311 AGENT_OVERAGE_PER_RUN = [FILL] # $/run past the bundle
@@ -402,9 +415,14 @@ with a demoable, dogfoodable increment.
415 pricing flies blind.
416 - **No AWS SDK in the app yet.** Adds a new infra dependency and IAM/VPC footprint
417 to own and secure.
405 -- **Naming.** "siGit Cloud Agent" is a working name; align with the existing
406 - brand rules (`siGit Code`, `siGit Code Cloud`, `Onde Cloud`) before anything
407 - ships to users.
418 +- **Naming (resolved).** The product is **siGit Code Cloud Agent** (see
419 + [product-overview.md](product-overview.md)). "session" is reserved for siGit Code
420 + Cloud chat; the agent's work unit is a **run**. Do not name the agent or its runs
421 + "sessions".
422 +- **Git-host scope.** Git only (no SVN, Mercurial, or other VCS). sigit.si is the
423 + first Git host, not the only one. Keep the git clone / branch-push / PR-open
424 + behind a `GitHostAdapter` seam from day one (sigit.si now; GitHub, GitLab, other
425 + Git hosts later) so the agent is not welded to our own forge.
426
427 ---
428