Project
What it is
A project is what code an agent works on: a Git repository, or a base image with no repository at all, plus the settings that belong to that body of work.
The two kinds
| Kind | Backed by | Needs a Git connection? |
|---|---|---|
| From a repository | A branch of a GitHub repository, cloned into the container | Yes — connect one |
| From a base image | A container image, with no repository | No |
Base-image projects are a full mode, not a fallback. They are the right shape for experiments, scratch environments, and anything where code arrives by some other route — and they let you use PlatformSmith before you have decided to give it repository access.
What it contains and scopes
- Its source — repository and branch, or base image.
- Agent definitions scoped to the project, which override workspace and organization ones of the same name.
- Secrets scoped to the project, which likewise take precedence.
- Its runtimes, sessions and playbook runs — its history.
Who creates it
Signup creates one for you — Scratchpad — so your first launch has somewhere to go without any
setup. It is a base-image project with no repository, and it is an ordinary project in every other
respect: rename it, delete it, or point it at a repository whenever you like.
→ What signup creates
Everything after that, you create.
One more may appear without you: a platformsmith-conductor project shows up after your first
playbook run. It is a system project the platform uses to run playbook work; you did not create it
and you do not need to manage it.
Lifecycle
Create, configure, rename, delete. Deleting a project takes its runtimes, sessions and history with it. The repository on GitHub is untouched — PlatformSmith never deletes your code.
How it relates to workspaces and environments
A project belongs to exactly one workspace. It has no relationship to an environment — you choose the environment at launch time, per launch. The same project can run in several environments, and frequently does.
The common mistake
Expecting the project to remember where it runs. It does not, deliberately. If you want the same project in two places, you launch it twice; there is no "the project's environment" to configure and be surprised by later.