Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Stratum treats agents as first-class contributors — this file is the contract.

## What this project is

Stratum is a code-collaboration platform for the AI engineering era, built on Cloudflare
Stratum is the open-source, agent-first code forge, built on Cloudflare
Workers (Hono), Durable Objects (SQLite), D1, KV, R2, Queues, and Cloudflare Artifacts for
serverless Git. The web UI is **server-rendered JSX**: every page must work with JavaScript
disabled. A few inline scripts exist purely as progressive enhancement — never add a
Expand Down Expand Up @@ -64,7 +64,9 @@ it is network-dependent and not part of the offline gate.
## Quality gates (must pass before a PR is mergeable)

CI (`pr-checks.yml`) runs **lint, typecheck, unit tests, and the `cli/`/`agent/`
package suites in parallel**, then integration tests, then a staging deploy + smoke test.
package suites in parallel**, then integration tests. It deliberately deploys nothing —
staging and production deploy only from `ci.yml` on `main`; PRs get an isolated per-PR
preview Worker from `pr-preview.yml` instead.
Mirror lint → typecheck → test locally before pushing.

1. **Typecheck and tests must pass.** Never comment out, skip, or `.skip` a test to get green.
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Contributing to Stratum

Thanks for your interest in contributing! Stratum is a code-collaboration platform for the AI
engineering era, where both humans and AI agents are first-class contributors. This guide covers
Thanks for your interest in contributing! Stratum is the open-source, agent-first code
forge, where both humans and AI agents are first-class contributors. This guide covers
how to set up, make changes, and get them merged.

> Working with an AI coding agent? Point it at [`AGENTS.md`](AGENTS.md) — it's the agent-facing
Expand Down
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![Docs](https://img.shields.io/badge/docs-usestratum.dev-blue.svg)](https://docs.usestratum.dev)

**The governance layer for AI-written code** — the control plane that decides what agent
output is allowed to merge, wherever your code lives. Built on Cloudflare Workers with
Artifacts, D1, KV, R2, Queues, and Durable Objects.
**The open-source, agent-first code forge** — git hosting where every change, human or
agent, proves itself before it merges. Start as a layer over GitHub, or make Stratum the
source of truth. Built on Cloudflare Workers with Artifacts, D1, KV, R2, Queues, and
Durable Objects.

> [!NOTE]
> **Project status: pre-1.0 and under active development.** The feature set below is
Expand Down Expand Up @@ -52,9 +53,10 @@ Humans and AI agents are both first-class citizens, with different powers by des
- **Any agent, any editor** — REST API, CLI, and a remote MCP server at `/mcp`: Claude
Code, Cursor, Copilot, or your own agents all speak to the same gate. Connecting one is
a URL and a browser consent screen. No editor subscription required.
- **Two ways to run it** — as a **layer over GitHub** (keep your repos and PRs; eval
verdicts land as PR comments and commit statuses) or as a **standalone forge** (Git
hosting on Cloudflare Artifacts, workspace forking, issues, orgs, server-rendered UI).
- **Two ways to run it** — in **layer mode** over GitHub (keep your repos and PRs; eval
verdicts land as PR comments and commit statuses) or in **forge mode** as the standalone
source of truth (Git hosting on Cloudflare Artifacts, workspace forking, issues, orgs,
server-rendered UI). Same codebase, same change flow; layer mode is the on-ramp.

## Quick start

Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Post-merge deployments shipped on 2026-09-04 (`deploys:` in `.stratum/policy.yam
targeting Cloudflare and Vercel). What that first version deliberately left out is tracked
under [Deployments](#deployments).

## Operational / scale (Stratum Cloud)
## Operational / scale (hosted, multi-tenant service)

- [ ] **Load testing** — validate 1000+ concurrent workspaces per repo; establish latency
and error budgets before any public hosting.
Expand Down
7 changes: 6 additions & 1 deletion agent/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@

Reference agent for Stratum: proves the platform end-to-end for agent workflows.

Not yet published to npm: build it from a checkout of the repository first
(`cd agent && npm install && npm run build && npm link`), which puts `stratum-agent`
on your PATH. Once the package is published, `npx @stratum-eng/agent` will work in
its place.

```bash
export STRATUM_HOST=https://your-stratum-instance
export STRATUM_API_KEY=stratum_user_…
export ANTHROPIC_API_KEY=sk-ant-…

npx @stratum-eng/agent \
stratum-agent \
--repo @user/my-api \
--objective "Fix the N+1 query in the users endpoint" \
--model claude-sonnet-4-6
Expand Down
4 changes: 2 additions & 2 deletions agent/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion agent/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stratum-eng/agent",
"version": "0.1.0",
"version": "0.2.0",
"description": "Reference agent for Stratum — fork, edit with an LLM, commit, open a Change",
"license": "Apache-2.0",
"repository": {
Expand Down
3 changes: 2 additions & 1 deletion agent/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
/**
* Reference agent: proves the Stratum platform end-to-end for agent workflows.
*
* npx @stratum-eng/agent --repo @user/api --objective "Fix the N+1 query"
* stratum-agent --repo @user/api --objective "Fix the N+1 query"
* (npx @stratum-eng/agent once the package is published)
*
* Flow: create agent identity → fork workspace → read repo → ask Claude for
* edits → commit with the agent token → open a Change (which runs evaluation).
Expand Down
24 changes: 24 additions & 0 deletions changelog.d/rebrand-agent-first-forge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
### Changed
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
- **Stratum describes itself as the open-source, agent-first code forge everywhere.**
The README, docs site, OpenAPI `info`, package manifests, CLI `--help`, agent-skill
discovery files, and the signup page all carried different one-liners ("governance
layer", "code collaboration platform for the AI engineering era", "code hosting for
the AI engineering era", "agent operations platform"). They now share one: Stratum is
the open-source, agent-first code forge, with the GitHub layer as the adoption path.
The second run mode is called **forge mode** in every document (it was "alternative
mode" in the guides and "standalone forge" in the README), and the deep-link anchor
in the getting-started guide changed accordingly.

### Fixed
- **Two published files still said MIT after the AGPL relicense**: the source-repository
link description in the docs site's `llms.txt`, and the `license` field of the MCP
server card at `/.well-known/mcp/server-card.json`. Both now say `AGPL-3.0-or-later`.
- `docs/api/openapi.yml` reported `info.version: 1.0.0`; it now tracks the release
version (`0.2.0`). `@stratum-eng/agent` was still at `0.1.0` and moves to `0.2.0`
alongside `@stratum-eng/cli`.
- `agent/README.md` told readers to `npx @stratum-eng/agent`, which is not published;
both client READMEs now say to build from source until it is.
- `AGENTS.md` claimed `pr-checks.yml` ends in a staging deploy and smoke test. It
deliberately deploys nothing; the description now matches the workflow.
- The machine-readable documentation index at `docs.usestratum.dev/index.md` was
missing the Deployments, Authentication, and Error codes pages.
5 changes: 4 additions & 1 deletion cli/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# @stratum-eng/cli

CLI for Stratum — code hosting for the AI engineering era. Wraps the Stratum REST API.
CLI for Stratum — the agent-first code forge. Wraps the Stratum REST API.

Not yet published to npm: build it from a checkout of the repository first
(`cd cli && npm install && npm run build && npm link`), which puts `stratum` on your PATH.

## Setup

Expand Down
2 changes: 1 addition & 1 deletion cli/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@stratum-eng/cli",
"version": "0.2.0",
"description": "CLI for Stratum \u2014 code hosting for the AI engineering era",
"description": "CLI for Stratum \u2014 the agent-first code forge",
"license": "Apache-2.0",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion cli/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const program = new Command();

program
.name("stratum")
.description("CLI for Stratum — code hosting for the AI engineering era")
.description("CLI for Stratum — the agent-first code forge")
.version("0.2.0");

function prompt(question: string): Promise<string> {
Expand Down
2 changes: 1 addition & 1 deletion docs/CURRENT_CAPABILITIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ environment (`wrangler.toml:75`), so it works out of the box.
- Deployments have no build step, no preview environment and no rollback, and
the deploy DLQ has no consumer.
- Phase 4 operational items remain: load testing at 1000+ concurrent workspaces,
D1 hot/cold rotation, SSO/SAML, multi-tenancy/billing for Stratum Cloud.
D1 hot/cold rotation, SSO/SAML, multi-tenancy/billing for a managed offering.
- Durability is covered: D1 and KV identity back up to R2 daily and on demand,
along with the reachable history of a rotating slice of repos (coverage rotates
across runs under a per-run cap), with a tested restore path
Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Welcome to the Stratum documentation. This directory contains comprehensive guides for users, developers, and API consumers.

The public-facing subset (user guide and API reference) is also published as a docs site built from [`website/`](../website/) — when editing those pages here, mirror the change in `website/src/content/docs/` (the OpenAPI spec needs no mirroring; the site build copies `api/openapi.yml` automatically).
The public-facing subset (user guide and API reference) is also published as a docs site built from [`website/`](../website/) — the site's guide and reference pages are generated from this directory by `website/scripts/mirror-docs.mjs`, so edit here and never by hand under `website/src/content/docs/` (see [Keeping the two trees in sync](#keeping-the-two-trees-in-sync)).

## Documentation Structure

Expand Down
2 changes: 1 addition & 1 deletion docs/REMAINING_WORK.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ hardening items) is complete as of 2026-06-11. See
limitations. This doc tracks everything that remains, with context on why each
item is open and what it unblocks.

## Phase 4: operational / scale (Stratum Cloud)
## Phase 4: operational / scale (hosted, multi-tenant service)

These are the items required to run Stratum as a hosted, multi-tenant service.
None of them block current single-tenant usage.
Expand Down
5 changes: 3 additions & 2 deletions docs/api/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ openapi: 3.1.0
info:
title: Stratum API
description: |
A code collaboration platform for the AI engineering era.
The open-source, agent-first code forge: git hosting where every change, human or
agent, proves itself through evaluation gates before it merges.

This specification is generated from the route code (`src/index.ts` and
`src/routes/*.ts`) and covers every `/api/*` route, the root health check,
Expand Down Expand Up @@ -41,7 +42,7 @@ info:
Several form-friendly endpoints return a `302` redirect instead of JSON when
the request body is form-encoded rather than `application/json`; this spec
documents the JSON behaviour.
version: 1.0.0
version: 0.2.0

servers:
- url: https://your-instance.workers.dev
Expand Down
8 changes: 4 additions & 4 deletions docs/developer/architecture.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Stratum Architecture

**Last Updated:** 2026-08-18
**Strategic Position:** Progressive buy-in platform supporting both GitHub layer mode and full alternative mode
**Last Updated:** 2026-09-22
**Strategic Position:** The agent-first code forge, with progressive buy-in: GitHub layer mode or full forge mode

## Overview

Stratum is an agent operations platform built on Cloudflare Workers. It supports two modes of operation:
Stratum is the open-source, agent-first code forge, built on Cloudflare Workers. It supports two modes of operation:

1. **Layer Mode (minimal buy-in):** Stratum sits between agents and GitHub. Developers use Stratum for agent workflows, team reviews in GitHub PRs.
2. **Alternative Mode (full buy-in):** Stratum is the source of truth for repos, workspaces, and changes.
2. **Forge Mode (full buy-in):** Stratum is the source of truth for repos, workspaces, and changes.

The same codebase supports both modes. Users choose their level of adoption.

Expand Down
2 changes: 1 addition & 1 deletion docs/user-guide/code-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ In layer mode, promoting a change to a GitHub PR moves the conversation to
GitHub, and your team reviews there as usual. Stratum still posts the
evaluation verdict to the PR as a comment (edited in place on re-evaluation)
and as a `stratum/evaluation` commit status. See
[Getting Started](getting-started.md#choose-your-level-of-buy-in-layer-mode-vs-alternative-mode).
[Getting Started](getting-started.md#choose-your-level-of-buy-in-layer-mode-vs-forge-mode).

## Reference

Expand Down
6 changes: 3 additions & 3 deletions docs/user-guide/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## What is Stratum?

A code collaboration platform where humans and AI agents are both first-class
citizens. It hosts git repositories (on Cloudflare Artifacts), and every
The open-source, agent-first code forge, where humans and AI agents are both
first-class citizens. It hosts git repositories (on Cloudflare Artifacts), and every
proposed change — whether a human or an agent wrote it — passes through
policy-defined evaluation gates before it can merge. Merged changes carry
provenance (which agent, which model, which prompt) and cost records.
Expand Down Expand Up @@ -73,7 +73,7 @@ bidirectional sync (inbound webhooks, outbound PR promotion), and agent work
goes through Stratum's gates while your team keeps reviewing GitHub PRs —
each evaluation of a change with a linked PR posts the verdict to the PR as a
comment and a `stratum/evaluation` commit status. In
**alternative mode**, Stratum is the source of truth and GitHub isn't involved
**forge mode**, Stratum is the source of truth and GitHub isn't involved
at all. You choose the level of buy-in, and you can start with layer mode.

## Do I need a GitHub account at all?
Expand Down
8 changes: 4 additions & 4 deletions docs/user-guide/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ This guide walks a new team from zero to a merged, evaluation-gated change. By t
end you will have a project, a merge policy, a registered agent identity, and the
CLI and MCP server connected to your tools.

Stratum is a code collaboration platform where humans and AI agents are both
first-class citizens. Every proposed change — human or agent — passes through the
Stratum is the open-source, agent-first code forge, where humans and AI agents are
both first-class citizens. Every proposed change — human or agent — passes through the
same evaluation gates before it can merge, and every merged change carries a
provenance record of who (or what model) produced it.

Expand Down Expand Up @@ -86,7 +86,7 @@ curl -X POST https://app.usestratum.dev/api/projects/@you/my-project/import \
-d '{"url": "https://github.com/your-org/your-repo", "branch": "main"}'
```

### Choose your level of buy-in: layer mode vs. alternative mode
### Choose your level of buy-in: layer mode vs. forge mode

You do not have to leave your current forge to use Stratum. The same codebase
supports two modes:
Expand All @@ -98,7 +98,7 @@ supports two modes:
is evaluated, the verdict is posted to the PR as a comment (edited in place on
re-evaluation) and a `stratum/evaluation` commit status. Agents work through
Stratum's gates; your team keeps reviewing in GitHub PRs.
- **Alternative mode (full buy-in).** Stratum is the source of truth for repos,
- **Forge mode (full buy-in).** Stratum is the source of truth for repos,
workspaces, and changes. No GitHub required — email magic links mean no
external accounts at all.

Expand Down
2 changes: 1 addition & 1 deletion docs/user-guide/importing.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ What import does **not** do yet:

Bidirectional GitHub sync — inbound webhooks and outbound PR promotion, i.e.
**layer mode** — is covered in
[Getting started](getting-started.md#choose-your-level-of-buy-in-layer-mode-vs-alternative-mode).
[Getting started](getting-started.md#choose-your-level-of-buy-in-layer-mode-vs-forge-mode).

## Unsupported content

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
},
"private": true,
"license": "AGPL-3.0-or-later",
"description": "A code collaboration platform for the AI engineering era, built on Cloudflare Workers.",
"description": "The open-source, agent-first code forge — evaluation-gated merges, provenance, and agent identities, built on Cloudflare Workers.",
"repository": { "type": "git", "url": "https://github.com/stratum-eng/stratum.git" },
"scripts": {
"dev": "wrangler dev",
Expand Down
3 changes: 2 additions & 1 deletion src/routes/signup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,8 @@ app.get("/", (c) => {
<div class="signup-header">
<h1 class="signup-title">Create your account</h1>
<p class="signup-subtitle">
Join Stratum to start managing your projects with AI-powered workflows.
The agent-first code forge: agents open changes, evaluations gate them, and you
approve what merges.
</p>
</div>

Expand Down
8 changes: 7 additions & 1 deletion website/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,15 @@ Pages live in `src/content/docs/` as Markdown/MDX with Starlight frontmatter
(`title`, `description`). The sidebar is configured in `astro.config.mjs`.

- `guides/` — user-facing guides (getting started, importing, code review, issues,
CI integration, troubleshooting, FAQ)
CI integration, deployments, CLI, MCP server, troubleshooting, FAQ)
- `reference/` — API reference (authentication, endpoints, errors, OpenAPI, agent discovery)

**Do not hand-edit the guide and reference pages.** They are generated from the
repository's `docs/` tree by `scripts/mirror-docs.mjs` (`npm run sync:guides`), and CI
runs `npm run check:guides` to catch drift. Edit `docs/user-guide/*` or `docs/api/*` at the
repository root, then regenerate. Only `index.mdx` and the pages `mirror-docs.mjs` lists as
site-owned are authored here.

Internal repo documentation (ADRs, runbooks, developer docs) intentionally stays
in `docs/` as plain Markdown and is not published here.

Expand Down
8 changes: 4 additions & 4 deletions website/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ const analyticsHead = POSTHOG_KEY
]
: [];
const DESCRIPTION =
"The governance layer for AI-written code — evaluation-gated merges, provenance, and agent identities, built on Cloudflare Workers.";
"The open-source, agent-first code forge — evaluation-gated merges, provenance, and agent identities, built on Cloudflare Workers.";

export default defineConfig({
site: SITE,
Expand All @@ -94,10 +94,10 @@ export default defineConfig({
projectName: "Stratum",
description: DESCRIPTION,
details: [
"Stratum is the control plane that decides what agent output is allowed to merge.",
"Stratum is the open-source, agent-first code forge: git hosting where every change proves itself before it merges.",
"Humans and AI agents are both first-class identities; agents can never approve a change.",
"Merge gates are policy-as-code in .stratum/policy.yaml and a malformed policy fails closed.",
"It runs either as a layer over GitHub or as a standalone forge on Cloudflare Workers.",
"It runs in layer mode over GitHub or in forge mode as the source of truth, on Cloudflare Workers.",
].join(" "),
optionalLinks: [
{
Expand All @@ -108,7 +108,7 @@ export default defineConfig({
{
label: "Source repository",
url: "https://github.com/stratum-eng/stratum",
description: "MIT-licensed, self-hostable on your own Cloudflare account",
description: "AGPL-3.0-or-later, self-hostable on your own Cloudflare account",
},
],
}),
Expand Down
Loading
Loading