Development
This section covers everything a contributor needs to set up Clone locally and ship changes.
In this section
- Local setup — clone, install, run each app, end-to-end smoke test.
- Testing — what to run before opening a PR. Each surface owns its own suite.
- Contributing — branch naming, commit style, PR template, and the trunk-based workflow.
Repo conventions at a glance
- Trunk-based.
mainis always deployable. Branches live for at most 2–3 days; large features are split into multiple PRs. - Branch format.
<type>/<app>-<short-description>(e.g.feat/server-prediction,docs/site-bootstrap).typeis one offeat,fix,chore,docs,refactor. - Commit format.
<type>: <description>. SeeCONTRIBUTING.md. - PR template lives at
.github/PULL_REQUEST_TEMPLATE.md. PRs are English-only and always assigned tocloneisme. - AGENTS.md ecosystem. Each major directory has its own
AGENTS.mddescribing what the directory is for, how to work in it, and how to test it. Treat them as the first place to look when entering a new part of the tree.
Where logic lives
- Cross-stack contracts →
packages/schema. Both the Python validator and the TypeScript types live here. - Business logic →
apps/server. Every threshold, prompt, and memory shape is owned by one of the Django apps. - Client code →
apps/{web,desktop,mcp,cli}. These surfaces hold no business state; they are thin views over the server.