> ## Documentation Index
> Fetch the complete documentation index at: https://docs.causeloop.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Causeloop developer documentation

> Failure-informed process intelligence for enterprise operations teams: what Causeloop is, how the platform is built, and where to start.

Causeloop is a multi-tenant platform for failure-informed process intelligence. It learns from an organization's own issue history, process fragments, handoffs, controls, evidence, and remediation actions, then serves that analysis back as insight collections, corrective-action plans (CAPs), and audit-ready evidence inside a tenant-scoped console. **"Find the cause. Break the loop."**

This site documents the production platform: a Next.js console (`frontend`), an allowlisted FastAPI product API (`services.api.product_app:app`), a schema-per-tenant PostgreSQL data layer, and two PostgreSQL-backed workers that provision tenants, train models, materialize insights, and deliver email. It intentionally does not document the historical research workbench (`services.api.main`, `apps/web`) except where the [Research Workbench](/research/overview) tab calls it out explicitly as a separate, non-deployed surface.

## Who this is for

Engineers joining the team who need to run the product stack locally, understand tenant isolation and lifecycle, wire a frontend view to a real endpoint, or take a change through staging and production. The tone here is precise and factual: every path, port, endpoint, and table name in these pages has been checked against the current codebase, not against older prose docs.

<Info>
  If something here disagrees with an older document under `docs/` in the backend repo, the code wins. These pages call out real gaps and stubs rather than describing aspirational behavior.
</Info>

## Where to go next

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/get-started/quickstart">
    Clone, run the local doctor, bring up the product stack with Docker Compose, and log in as staff in under 10 minutes.
  </Card>

  <Card title="Developer onboarding" icon="map" href="/onboarding/local-product-stack">
    A guided tour of both repos, the local product stack in depth, and the full onboarding-to-live walkthrough.
  </Card>

  <Card title="Architecture" icon="sitemap" href="/architecture/overview">
    Control plane vs. tenant schemas, the two workers, request lifecycle, security model, and observability surface.
  </Card>

  <Card title="API reference" icon="plug" href="/api-reference/overview">
    The 41-operation allowlisted product API (plus three health endpoints): authentication, conventions, and every endpoint the frontend actually calls.
  </Card>

  <Card title="Features" icon="layer-group" href="/features/staff-portal">
    What the staff onboarding portal and tenant console actually do, end to end, from provisioning through remediation.
  </Card>

  <Card title="Deployment & operations" icon="cloud" href="/deployment/environments">
    Environments, the Render/Vercel demo topology, AWS and Azure Terraform/Bicep, migrations, and incident runbooks.
  </Card>
</CardGroup>

## How the platform is organized

Causeloop separates two concerns that are easy to conflate: a **control plane** that knows about every tenant (identity, lifecycle state, provisioning, audit trail), and a **tenant plane** that is a private `tenant_<slug>` PostgreSQL schema per customer, protected by both schema separation and PostgreSQL row-level security as defense in depth. An onboarding admin walks a new tenant through provisioning, historical data ingest, training-config, training, activation, and invitation entirely inside this control plane before the tenant is flipped to `live`. See [Core concepts](/get-started/concepts) for the full lifecycle and [Tenancy and data model](/architecture/tenancy-and-data-model) for how isolation is enforced at the database layer.

## Related

* [Quickstart](/get-started/quickstart)
* [Core concepts](/get-started/concepts)
* [Architecture overview](/architecture/overview)
* [API reference overview](/api-reference/overview)
