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
+116
new file mode 100644 index 0000000..51ce2af --- /dev/null +++ b/docs/product/product-overview.md @@ -0,0 +1,116 @@ +# siGit product overview and taxonomy + +Status: spec v1 (2026-06-26). Audience: internal (private repo). This is the +canonical map of what we sell and what the words mean. Every other spec defers to +the names defined here. + +--- + +## 1. The two domains + +| Domain | What it is | +|---|---| +| **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. | +| **code.sigit.si** | **The universe of siGit Code**, the coding agent. Home for the agent and its hosted products. | + +Keep them distinct: sigit.si hosts the code; code.sigit.si is where the agent +lives and where the hosted offerings are sold. + +--- + +## 2. siGit Code (the agent) + +**siGit Code** is a **natively local-inference coding agent** (the Rust CLI / ACP +agent). On-device by default: the model runs on the user's machine, the agent +works against local repos, nothing is sent to a server unless the user chooses a +hosted product. + +Because it is local-first, the **root of code.sigit.si (`/`)** is the +**on-device dashboard**: telemetry of the user's **local** siGit Code sessions, +shown only if the user opts in to enable it. Nothing leaves the machine. + +--- + +## 3. The hosted products on code.sigit.si + +Two products sit on top of siGit Code. They mirror the two ways GitHub Copilot is +sold (interactive chat vs. autonomous coding agent), but the engine in both is +siGit Code, which we already ship. + +### 3.1 siGit Code Cloud — hosted chat (BUILT) + +**siGit Code Cloud** is the **hosted, non-on-device chat**: an interactive +assistant powered by hosted inference instead of the local model. The user signs +in, picks a quality tier, and chats. Conversations are saved. + +- **Surfaces:** `/cloud` (the chat) and `/cloud/sessions`, `/cloud/sessions/<uuid>` + (saved chat history). **Both are part of siGit Code Cloud.** +- **Unit of work:** a **session** = one saved chat conversation. +- **Compute:** hosted inference only (Onde Cloud, via `/api/v1/chat/completions`). +- **Copilot analog:** Copilot Chat. +- **Status:** shipped and live at code.sigit.si. + +### 3.2 siGit Code Cloud Agent — autonomous agent (TO BUILD) + +**siGit Code Cloud Agent** is **autonomous, sandboxed siGit Code that solves an +issue or task in a Git repository and opens a pull request**, working in the +background like a human developer. The user delegates a task and walks away; the +agent works on its own and comes back with a PR to review. + +- **Engine:** siGit Code, run headless in an ephemeral **sandbox** (AWS), with + hosted inference. The agent clones the repo, edits, runs build/test, iterates, + pushes a branch. +- **Repo target:** **sigit.si first**, then **GitHub, GitLab, and other Git + hosts** in the future. Scope is **Git only** (no SVN, Mercurial, or other version + control systems). The agent is **Git-host agnostic** behind a Git-host adapter: + sigit.si is the first host, not the only one. +- **Output:** a **pull request** on the target Git host (a pushed branch + review + surface) for a human to review and merge. The agent never auto-merges. +- **Unit of work:** an **agent run** (one delegated task → autonomous work → PR). +- **Copilot analog:** Copilot coding agent (the cloud agent). +- **Status:** planning. See [sigit-code-cloud-agent-plan.md](sigit-code-cloud-agent-plan.md). + +--- + +## 4. Naming rules (to stop the collisions) + +These words are load-bearing. Use them exactly. + +- **siGit Code** — the local-inference coding agent. The engine. +- **siGit Code Cloud** — the hosted **chat** product. `/cloud` + `/cloud/sessions`. +- **siGit Code Cloud Agent** — the autonomous **agent** product (task → PR). +- **session** — a siGit Code Cloud **chat** conversation. It belongs to siGit Code + Cloud. Do **not** use "session(s)" to mean the agent or its runs. +- **agent run** — one siGit Code Cloud Agent task. Use "run" (or "task"), never + "session," for the agent. +- **on-device dashboard** — the local telemetry at `/` (opt-in). + +So: the thing at `/cloud/sessions` is **chat sessions** (siGit Code Cloud). The +autonomous product is the **Agent**, and its work items are **runs**, on their own +surface (anchored to a repo, since a run operates on one repository). + +--- + +## 5. Information architecture (code.sigit.si) + +| Path | Product | Notes | +|---|---|---| +| `/` | on-device dashboard | local session telemetry, opt-in | +| `/cloud` | siGit Code Cloud | the hosted chat | +| `/cloud/sessions`, `/cloud/sessions/<uuid>` | siGit Code Cloud | saved chat history + detail | +| `/billing` | account | plan / billing | +| _(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. | + +The current web app (`apps/code-cloud-web`) already implements rows 1 to 4. The +Agent surface is new and specified separately. + +--- + +## 6. Why this is a strong position + +GitHub had to build a coding agent to ship its cloud agent. **siGit already ships +the agent (siGit Code) and the git host (sigit.si).** siGit Code Cloud Agent is +mostly: take the agent we already have, run it headless in a sandbox against a +repo we already host, and open a PR. The one genuinely new system is the sandbox. +The Git-host-agnostic design means the same agent later runs against GitHub and +GitLab repos, not just sigit.si (Git only; not SVN, Mercurial, or other VCS).
docs/product/sigit-code-cloud-agent-plan.md
+40 -22
similarity index 88% rename from docs/product/cloud-agent-plan.md rename to docs/product/sigit-code-cloud-agent-plan.md index fb8c6bd..6b79d71 100644 --- a/docs/product/cloud-agent-plan.md +++ b/docs/product/sigit-code-cloud-agent-plan.md @@ -1,31 +1,44 @@ -# siGit Cloud Agent — product plan and roadmap +# siGit Code Cloud Agent — product plan and roadmap -Status: draft v1 (2026-06-26). Owner: product/eng. Audience: internal (private repo). +Status: draft v2 (2026-06-26). Owner: product/eng. Audience: internal (private repo). +Naming and scope per [product-overview.md](product-overview.md); this is the +detailed spec for the **siGit Code Cloud Agent** product defined there. -A GitHub-Copilot-coding-agent-style product built into sigit.si and siGit Code -Cloud: you give it a task against a repo you host on sigit.si, an isolated AWS -sandbox runs the siGit Code agent loop against that repo, and it returns a branch -plus a proposed pull request. This document is the strategy, the architecture, and -the phased roadmap. +A GitHub-Copilot-coding-agent-style product: you delegate a task against a Git +repository, an isolated AWS sandbox runs siGit Code autonomously against that repo, +and it returns a branch plus a proposed pull request. The first repo target is +**sigit.si**; the agent is **Git-host agnostic** behind a Git-host adapter so the +same agent later runs against **GitHub, GitLab, and other Git hosts**. Scope is +**Git only** (no SVN, Mercurial, or other version control systems). This document +is the strategy, the architecture, and the phased roadmap. --- ## 1. What we are building (and what it is not) -**siGit Cloud Agent** is an asynchronous, server-side coding agent. The user -describes a task ("add pagination to the repos list", "fix the failing -auth test", "upgrade Rails to 8.1"), points it at one of their sigit.si repos and -a base branch, and walks away. The platform provisions an ephemeral AWS sandbox, -clones the repo into it, runs siGit Code headless against the task with cloud -inference, lets it edit files and run build/test commands, then pushes a head -branch back to sigit.si and opens a pull request for human review. +**siGit Code Cloud Agent** is an asynchronous, server-side coding agent. The user +delegates a task or issue ("add pagination to the repos list", "fix the failing +auth test", "upgrade Rails to 8.1"), points it at one of their repos and a base +branch, and walks away. The platform provisions an ephemeral AWS sandbox, clones +the repo into it, runs siGit Code headless against the task with hosted inference, +lets it edit files and run build/test commands, then pushes a head branch and +opens a pull request for human review. -It is the cloud, autonomous sibling of the two things siGit already ships: +It is the autonomous sibling of the other two things siGit ships (see +[product-overview.md](product-overview.md)): -- **siGit Code** (public Rust CLI / ACP agent) runs *locally / on the desktop*, +- **siGit Code** (Rust CLI / ACP agent) runs *locally / on the desktop*, interactively, driven by the developer at their keyboard. -- **siGit Cloud Agent** runs *in our cloud*, asynchronously, driven by a task and - reviewed afterward through a PR. +- **siGit Code Cloud** is the *hosted chat* (interactive, synchronous). Its work + unit is a chat **session**. +- **siGit Code Cloud Agent** runs *in our cloud*, asynchronously, driven by a task + and reviewed afterward through a PR. Its work unit is an agent **run** (never a + "session", which belongs to the chat product). + +**MVP trigger (decided):** from a repo on sigit.si, the user describes a task and +the agent produces a PR. Formal issue-assignment (assign a tracked issue to the +agent, the Copilot headline flow) is a fast-follow that depends on an Issues +feature, and on the Git-host adapters for GitHub/GitLab issues. Reference points in the market: GitHub Copilot coding agent (assign an issue, it 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 heavy use. Suggested `Subscription` constant shape: ```ruby -# Included siGit Cloud Agent runs per billing period. Tunable pricing knob. +# Included siGit Code Cloud Agent runs per billing period. Tunable pricing knob. AGENT_RUNS = { "pro" => [FILL], "team" => [FILL] }.freeze # e.g. pro 20, team 75 TRIAL_AGENT_RUNS = [FILL] # e.g. 2 AGENT_OVERAGE_PER_RUN = [FILL] # $/run past the bundle @@ -402,9 +415,14 @@ with a demoable, dogfoodable increment. pricing flies blind. - **No AWS SDK in the app yet.** Adds a new infra dependency and IAM/VPC footprint to own and secure. -- **Naming.** "siGit Cloud Agent" is a working name; align with the existing - brand rules (`siGit Code`, `siGit Code Cloud`, `Onde Cloud`) before anything - ships to users. +- **Naming (resolved).** The product is **siGit Code Cloud Agent** (see + [product-overview.md](product-overview.md)). "session" is reserved for siGit Code + Cloud chat; the agent's work unit is a **run**. Do not name the agent or its runs + "sessions". +- **Git-host scope.** Git only (no SVN, Mercurial, or other VCS). sigit.si is the + first Git host, not the only one. Keep the git clone / branch-push / PR-open + behind a `GitHostAdapter` seam from day one (sigit.si now; GitHub, GitLab, other + Git hosts later) so the agent is not welded to our own forge. ---