Skip to main content

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. main is 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). type is one of feat, fix, chore, docs, refactor.
  • Commit format. <type>: <description>. See CONTRIBUTING.md.
  • PR template lives at .github/PULL_REQUEST_TEMPLATE.md. PRs are English-only and always assigned to cloneisme.
  • AGENTS.md ecosystem. Each major directory has its own AGENTS.md describing 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 contractspackages/schema. Both the Python validator and the TypeScript types live here.
  • Business logicapps/server. Every threshold, prompt, and memory shape is owned by one of the Django apps.
  • Client codeapps/{web,desktop,mcp,cli}. These surfaces hold no business state; they are thin views over the server.