Concepts
Concepts
FORGE has a small vocabulary, and each word maps to one concrete thing in the code or on GitHub.
| Term | What it is | Where it lives |
|---|---|---|
| Chat | One conversation in CORE’s FORGE rail. One chat is one project. Id c- followed by 16 hex digits, or repo-<name> for an app forged before projects existed. | FORGE’s appfs root, one sealed file per chat, per person |
| Project | What a chat is about: a machine name, a title and its lanes. It becomes one repository. | Draft in the chat; committed as the repo plus forge.yaml |
| Lane | One component of the project, either a RIVER pipeline (pipeline) or a web app (web), living in its own folder. At most 12 per project. | forge.yaml lanes[] |
| Component | A building block added to a lane from the palette, such as source.postgres or web.route. Informational: it feeds the brief and does not run anything. | The draft, and forge.yaml components |
| Brief | Your own words describing a change to one lane. Handed to the coding agent verbatim, between 12 and 8000 characters. | The body of a forge issue |
| Work order | A brief as filed: a GitHub issue labelled forge, kind:<kind> and lane:<id>. | GitHub issues |
| Approval | Your send. The only thing that writes to GitHub (ApproveChat). | — |
| Proposal | A step the sovereign planner suggests. It is only ever a prefill. | Server memory, one hour |
| Verification | CORE’s commit statuses core/ci/<lane id> and the aggregate core/ci. | GitHub commit statuses |
One chat, one repo, one folder per lane.
Deterministic typed commands, the console, and linked commands.
The sovereign model proposes, a judge checks, you approve.
Topics, labels, issue bodies, and what is never mirrored.
The lanes canvas, stages, next actions, and the component palette.
Sources
grpc/api/proto/forge/v1/chat.proto; grpc/internal/project/manifest.go;
grpc/internal/chats/store.go; grpc/cmd/chat_server.go.