Skip to main content
Each repository in the ecosystem keeps its own CONTRIBUTING guide; this page points to them and states the discipline every repository shares. The platform is a multi-repo ecosystem. The core repos define and implement the contract; the plugin repos build on it. Contributions live in the repo they touch, under that repo’s CONTRIBUTING guide.

The repositories

tai42-contract

The pure interface — the Protocols and ABCs plugins implement.

tai42-kit

The generic leaf helpers, settings, pooled clients, and factories.

tai42-skeleton

The framework body — the concrete server and runtime engines.

tai42-toolbox

The reference tool set — generic tools and extensions.

Full ecosystem

Every shipped plugin and its repository, in the catalog.

The shared discipline

Every repository holds to the same rules, enforced in each repo’s CI:
  • The leaf rule. Among tai42-* packages, the skeleton imports tai42-contract and tai42-kit only; a plugin imports tai42-contract (and tai42-kit where it needs shared helpers) only. No plugin imports the skeleton — providers register through the tai42_app handle when the manifest loads them.
  • Providers stay out of the core. Connectors, storage, config, backends, and monitoring ship as plugins that register at manifest load — never imported by the skeleton.
  • Optional drivers stay optional. A heavy client driver reaches the engine through an extra; a module whose extra is missing fails loudly at import, never a silent skip.
  • Errors surface loudly. A missing module, a malformed config entry, or a failed sub-step raises and propagates.
  • Typed packages. Every package ships py.typed and keeps the type-checker clean.

Develop

Each repo’s dev venv resolves its tai42-* dependencies from sibling checkouts. The standard loop is the same across repos:
See the target repository’s CONTRIBUTING guide for its specifics — the sibling checkouts it expects, any secret scan, and its licensing statement.

See also