Step 07 · Execution layer · Execution layer · Mission, VM e alembic.plan.ts ENPT
Alembic Complete Visual Course

Mission, VM e alembic.plan.ts

Compile missões humanas em specs executáveis e execute planos TypeScript com hooks.

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

Da intenção à execução


@alembic/mission pega um objeto MissionOptions amigável a humanos (título, milestones, units com comandos de proof) e compila em um AlembicRunSpec pronto para o swarm. Ele também injeta tarefas de validador de milestone automaticamente.

@alembic/vm carrega um módulo alembic.plan.ts escrito pelo usuário e injeta AlembicHooks: phase, agent, parallel, pipeline, mission, swarm, council e log.

Pense assim… uma partitura (mission) é transformada em um programa de concerto (run spec), e o maestro (VM) chama os músicos (hooks) nos momentos certos.

Under the hood

A VM verifica planos por determinismo (sem Date.now(), new Date() ou Math.random()) antes de executar. Ela cacheia outputs de agent e swarm em <runDir>/workflows/<wfId>/cache.json. O compilador Mission prefixa IDs de tarefas para que múltiplas missões em um plano não colidam na store compartilhada.

2

In one picture


MissionOptions AlembicRunSpec Swarm drain alembic.plan.ts → AlembicHooks
Missões compilam para run specs; a VM carrega um módulo de plano e chama hooks que dirigem o swarm.
3

In the code


# execute um par goal + plan
alembic run --goal GOAL.md --plan alembic.plan.ts --yes --offline

Implementation notes

loadScope em @alembic/forge materializa o diretório de run. A CLI então chama runPlan com o caminho do módulo de plano compilado. Hooks prefixam IDs de tarefas e emitem eventos de fase para que TUI e web cockpit possam renderizar progresso.

4

Try it


Gere um plano com alembic plan "...", depois execute com alembic run --goal ... --plan .... Inspecione o diretório de run.

Debug: Se um plano falha no check de determinismo, quais construções você deve remover?
5

Quick check


Qual hook executa uma missão compilada dentro de um alembic.plan.ts?