An Airflow-governed software atelier

Explore freely. Release with evidence.

Bring a commissioned change. Agents investigate and refine it in bounded work cells. Airflow governs the lifecycle; scoped evidence and human decisions govern release.

The atelier process

  1. 1. Commission the work. A GitHub issue selects a versioned blueprint and target.
  2. 2. Create one durable Cell. The Cell owns issue, target, epoch, state, and evidence.
  3. 3. Let Airflow guide the lifecycle. Airflow is the only lifecycle scheduler: retries, waits, approvals, and cancellation.
  4. 4. Craft in disposable compute. The agent gets a bounded job and sandbox. It does not get release authority.
  5. 5. Verify the exact candidate. Tests and review produce scoped evidence; missing checks and unresolved limits stay visible.
  6. 6. Steward release. The trusted control plane creates the PR. People retain final merge authority.

commission -> cell -> airflow -> craft -> evidence -> stewarded release

The default managed line uses one governed implementation path today. Parallel candidate sketching is a future capability, not a claim about the default runtime.

Evidence has a scope.

Every important release claim should name the exact candidate, assumptions, verification method, result, and remaining uncertainty. A proof establishes its theorem under its definitions and axioms; it does not automatically prove that deployed software refines the model. Tests, fuzzing, benchmarks, and observations answer different questions.

The atelier records what is known, what remains fuzzy, and the next useful check. Formalizability is not a proof verdict, and evidence never grants release authority. Read the verification and uncertainty method.

Matter, motion, and authority

Treat software delivery like a non-equilibrium system: create entropy while searching, then destroy entropy before promotion. Durable Cells, accepted digests, evidence, and publication state are matter. Agents, sandboxes, builds, task graphs, and caches are motion.

accelerate motion != mint authority

Invariant: an accelerator may change time-to-answer, never the answer. Read the polyglot task-graph boundary.

One commission, end to end

The drawing follows a single issue from the operator console to a pull request a person merges: where Airflow maps the work into cells, which two stages stop and wait for a human, and where each stage leaves evidence behind.

A work order passes from the operator console to the backend, into Airflow, and into a work cell that runs setup, intent, a human intent gate, specification, plan, a human plan gate, build and test, review, delivery and cleanup, before a person merges the resulting pull request.
Illustrated example, not a live execution. Run uv run swfactory demo to watch the same stages replay locally and print a real stage report.

What stays non-liquid

Sandbox support

A sandbox is disposable compute, not a scheduler. Policy support is backend-specific. The factory owns the issue-to-PR route; providers supply the execution boundary.

Each status below is the support value of that profile's row in the capability inventory, which is the single public truth for a claimed feature. A profile with no claim is an integration seam.

ProfileSupportBoundary
localtest onlyprocess execution; no kernel isolation claim
srtexperimentalSandbox Runtime policy boundary
dockerexperimentalcontainer boundary
isloexperimentalprovider-backed disposable cell
toolsetadaptercommon-ai SandboxBackend
daytonacustom backend requiredprovider integration seam
e2bcustom backend requiredprovider integration seam
tensorlakecustom backend requiredprovider integration seam
boatadapterboat.dev hosted VM (WorldGen pilot, scripted agent)
Toolset boundary. Configure toolset_backend = "package.module:Class" and run with --sandbox toolset. If a required isolation policy is unsupported, the run stops with StageError. The factory does not fake provider capabilities.

Blueprints are routes, not schedulers

A blueprint defines steps, limits, approvals, and sandbox choice. It compiles into work that Airflow schedules. Astronomer Blueprint users can expose the same route as software_factory without creating a second lifecycle authority.

Astronomer Blueprint integration

Run it

No model key is required for the scripted local demo.

git clone https://github.com/zozo123/ariflow-swfactory.git
cd ariflow-swfactory
uv sync
uv run swfactory demo

Then inspect the generated branch, evidence, and pull-request path.

Go deeper in the repo