Harness principles

Doso is a generalized workflow graph engine. The runtime supplies reusable execution, memory, capabilities, policy, and review; each workflow supplies the definition of the job it needs to perform.

Generalization is the product#

A capability should make sense for people with different tools, data, and goals. Core behavior must not depend on one named workflow, one provider, one file, or one person’s context.

The harness ownsThe workflow owns
Graph and DAG executionThe steps for a particular outcome
Generic capability and effect contractsWhich capabilities the job uses
Discovery, approval, retries, and reviewWhat each step should accomplish
Provider-agnostic inputs and outputsWhat “done” means for this job
Durable run state and provenanceJob-specific constraints and context

This separation lets the same runtime support many connections and new kinds of work without accumulating provider-specific branches.

The decision test#

Before adding behavior to the engine, ask:

  1. Would this still make sense for someone with different apps, files, and workflows?
  2. Does it encode one person’s data or one named workflow into a shared path?
  3. Could it live in a workflow definition, skill configuration, capability metadata, policy, or user data instead?

If the behavior describes the job rather than the machinery that runs it, it belongs in the workflow.

What good boundaries look like#

Good engine capabilities are generic:

  • Fetch the best-matching item, then answer an objective from the result.
  • Import any connection record that has an identifier, title, and source URI.
  • Infer approval and isolation requirements from a capability’s declared effects.
  • Bind a toolkit, objective, and DAG in a workflow definition.

Provider names, document titles, people, prompts for one task, and demo-specific branches belong outside the engine.

Why it matters#

Generalization is not an abstraction exercise. It keeps execution predictable, security policy consistent, and new integrations inexpensive. Doso teaches the harness how to run work safely; workflows carry the recipes.

It also keeps control with you: graphs you build stay portable, connections and CLIs remain yours, hosting can move with your infrastructure, and inference providers can change without rewriting the product.