Decision nets

Your business, as a system that learns.

Anima runs your processes as one verifiable net. Places hold the work, transitions move it, and every judgment is bound to a person, an agent, or a model you own.

Get in touch
Placecampaigns.awaiting_activation
    Transitionactivate
    Guardid ∧ budget ∧ creative
    Fired byagent
    Placecampaigns.live

      The problem

      Flows buckle. Nets compose.

      Every company's processes run on cardboard and duct tape: a Notion page, a CS lead's memory, a dashboard eng half-built, and automations stitched together with agents. Subject matter experts can prototype, but every new flow is another isolated state machine with its own copy of "customer", and the whole thing collapses under its own complexity.

      Workflow tools + agents
      • A list of isolated, inconsistent flows
      • Global claims are unknowable
      • A change here breaks something there
      • Agents decide without the surrounding context
      A decision net
      • One topology, shared types, one source of truth
      • Claims are proven from structure
      • Local changes stay local
      • Context for every decision is the arcs into it
      Claims you can proveColored petri nets · 40 years of formal methods
      • A banned user cannot post in any group.
      • A new user can delete their account in five clicks.
      • No campaign goes live without a verified activation.

      What it does

      It runs. It explains. It learns.

      01 · Runs

      The net is the system, not a diagram of one.

      A Notion database is a place with no transitions. Here a row moves because a guard passed, a clock fired, or someone pressed the one button the net offers. The UI is generated from the structure.

      cmp_4822acme · google
      Activate is disabled: guard creative unmet.
      02 · Explains

      Why is this stuck? What changed, and why?

      Every token carries its provenance. Ask about any row and the answer has an address: this transition, this guard, this platform.

      › why is cmp_4823 stuck?
      at validate_activation for 2d 4h
      platform tiktok has no adapter;
      waiting on a human receipt
      thread opened · T-118
      03 · Learns

      Corrections become a model you own.

      Every correction at a judgment transition is a label. The loop turns labels into a decision model you can export, and the human share shrinks.

      Human share of judgments
      W1100%
      W462%
      W831%
      W1214%
      Illustrative.

      The adapter ladder

      Same transition, three bindings.

      Nobody writes adapters for every external system up front. A transition that touches the outside world starts with a person, moves to an agent, and ends at an API. The net never changes; each rung is progress on the system itself, not a migration.

      Transitionvalidate_activation→ activation_verified + receipt
      Rung 1
      Human

      Checks the platform and fires the transition with a screenshot attached.

      Rung 2
      Agent

      Logs in, checks, attaches the same receipt. Emails for a missing ID if it must.

      Rung 3
      Adapter

      One API call verifies directly. Engineers harden only where it pays.

      Authoring

      Describe it. Review the delta.

      Hand an agent the process doc you already have. It proposes the net; you review a narrative diff and accept. Checks run on every change like tests, so experts evolve the product, not just the prototype.

      # "If a platform needs an ID we don't have, email the account owner for it."
      + place       campaigns.awaiting_platform_id
      + transition  request_platform_id    bound: agent (email)
      ~ guard       activate: + platform_id
      ✓ no campaign goes live without a verified activation

      Get in touch

      Let's talk about your workflows.

      Leave your email and we'll reach out. If there's a process your team runs today that you'd like to see as a net, tell us about it when we reply.

      We reply personally.