Skip to main content
A repo declares its services with one TOML file each, in the tesser skill directory. The filename is the service name:
Service names are org-global. Registering a name another repo already owns fails loudly at registration — a dep reference like "worker" always means exactly one thing across the org. Manifests declare facts only — where the code lives, what it listens on, how to set it up and run it, how to know it’s healthy, what it needs. Judgments (when to restart, when to test, what else to install) belong to callers, expressed through CLI verbs like sync --restart and exec.

The minimal manifest

Most services need three lines:

Every field

Validation rules

  • A manifest’s own ports and its [deps] keys share the box’s loopback namespace — collisions are an error at dev/ensure-running time.
  • A repo with multiple manifests requires the service to be named in make/dev invocations; with one manifest it’s the default. Ambiguity is a loud error listing the options, never a guess.
  • Secret values in a manifest are rejected: [env] carries names and file allowlists only.

What is deliberately not here

  • No addresses, hosts, or wiring — deps are names; resolution is the mesh’s job, per box, at runtime.
  • No behavior flags — restart policy, test commands, and install judgment calls live in CLI verbs, driven by the agent.
  • No instance or fleet concerns — machine sizing, TTLs, and routing live in control-plane policy, not in the repo.