Quick Start

Getting Started

Start from the shared contract, then move into the Python and Elixir spines.

Current path

Syntropy starts from one useful workflow: review a serious architecture decision with multiple AI perspectives, then inspect why the system answered that way.

In product terms: This is a BEAM-native multi-agent execution runtime where agent selection, task routing, synthesis, supervision, replay, and trust evidence are observable.

The canonical first prompt is:

Should this system use a monolith, modular monolith, or microservices for the next product stage?

The next implementation path keeps that workflow but grounds it in real systems: first a web app flow for public GitHub repository URLs, then Librarian-backed review for local and private codebases, and later IDE or native app integration once the context-packet workflow is stable.

The shared contract keeps Python and Syntropy aligned through deterministic fixtures:

  1. Define shared/axioms.json.
  2. Verify parity with the Python and Elixir test harnesses.
  3. Run the Python reference runtime for programmable agent orchestration.
  4. Run Syntropy for mission-control replay, approvals, graph playback, REST, and event subscription.
  5. Enable optional Syntropy Postgres persistence only when durable replay and knowledge survival across restarts are needed.

Product surfaces

Once the runtime is working, use the right surface for the right job:

  • Python for programmable local architecture decision review
  • Platform for the guided run cockpit, replay, and status workflow
  • Syntropy mission control for dense operator truth and approval controls
  • Librarian for local/private source-grounded retrieval (see Source-grounded reviews)

The platform does not replace Syntropy. It makes the same runtime easier to use without hiding how the system is actually behaving.

lattice = Lattice()
result = await lattice.submit(
    "Should this system use a monolith, modular monolith, or microservices for the next product stage?",
    strategy="parallel",
)
{:ok, result} =
  Syntropy.submit(
    "Should this system use a monolith, modular monolith, or microservices for the next product stage?",
    strategy: :parallel
  )