Step 13 · Product layer · Product layer · Software Factory ENPT
Alembic Complete Visual Course

Software Factory

Execute agentes de codificação AI dentro de sandboxes isoladas com git worktrees.

Read the plain version, or open the technical layer on any section.
1

Agents em uma caixa


@alembic/factory orquestra agentes de codificação AI (Claude Code, Codex, Cursor, OpenCode, Copilot, Pi) dentro de ambientes Docker, Podman ou no-sandbox. Cada execução cria um git worktree, executa o agent contra um arquivo de prompt, captura commits e opcionalmente mergeia o resultado de volta.

Ele suporta sessões interativas, loops multi-iteração, output estruturado, resume/fork de sessão e estratégias de branch (head, merge-to-head ou branch explícito).

Pense assim… uma sala limpa para cirurgia de software: o paciente (seu repo) é isolado, o cirurgião (agent) opera, e a incisão é mergeada ou descartada.

Under the hood

A API pública é pequena: run, createSandbox, createWorktree, interactive, providers de agent, providers de sandbox e Output. Internamente usa Effect para composição funcional, mas consumidores veem funções Promise-returning. O pacote é vendored e adaptado de @ai-hero/sandcastle.

2

In one picture


Host Repo Git Worktree Sandbox Agent loop: prompt → tool use → commit → complete signal Claude Code / Codex / Cursor / OpenCode / Copilot / Pi
A factory cria um worktree, opcionalmente o isola em um sandbox, executa o loop do agent e captura commits.
3

In the code


# scaffold uma config de factory
pnpm exec alembic-factory init --agent claude-code --sandbox docker

# build a imagem do sandbox
pnpm exec alembic-factory docker build-image --image-name myproject:sandcastle

Implementation notes

O scaffold cria um diretório .sandcastle/ com um prompt e um main.ts que importa @alembic/factory. O loop do agent impõe timeouts de idle e completion, captura sessões JSONL para resume/fork e suporta substituição de argumentos de prompt com tokens {{KEY}}.

4

Try it


Execute pnpm exec alembic-factory init e inspecione o .sandcastle/main.ts gerado. Identifique os providers de agent e sandbox.

Trade-off: Quando você usaria no-sandbox em vez de Docker?
5

Quick check


Quais providers da factory suportam resume e fork de sessão?