agents-lab

Local-first lab for reusable AI-agent primitives and the curated pi-stack.

View on GitHub

Control-plane evolution playbook (foundations first)

Objetivo: evoluir de forma segura do control-plane local para delegação e, só depois, para federação multi-control-plane — sem misturar conceitos no mesmo ciclo.

Distribuição operacional: o núcleo deste playbook também viaja como skill versionada em packages/lab-skills/skills/control-plane-ops/SKILL.md para reduzir drift entre documentação local e comportamento dos agentes.

Radar estratégico relacionado: docs/research/linux-agent-primitives-radar-2026.md (limpeza -> pesquisa -> escalabilidade com gates de promoção local-safe).

Princípios

  1. Playbook-first: consolidar contrato operacional antes de ampliar arquitetura.
  2. State in parent: estado canônico permanece no control-plane principal (.project/*).
  3. Workers are disposable: subagentes/swarm são efêmeros (spawn -> slice -> evidence -> kill).
  4. Federation is a phase, not a flag: coordenação federada entra apenas após estabilidade comprovada das fases anteriores.

Três modos (não misturar)

Modo 1 — Single control-plane (agora)

Modo 2 — Delegação descartável (próximo)

Modo 3 — Federação de control-planes (futuro)

Workload matrix — local vs remoto (GitHub Actions/offload protegido)

Objetivo: usar runners remotos como acelerador, sem substituir governança local-first.

Fica local por default

Elegível para runner remoto (canário bounded)

Não elegível para offload automático

Trilha de evidência para offload (board/handoff)

Cada run remota deve registrar, no mínimo:

Template prático local:

pnpm run offload:evidence:template -- --task TASK-BUD-134 --decision defer

Steer/Intervenção do Operador (cancel/retry/override)

Sem esse trio de controles, a recomendação padrão é defer.

Release lane (v0.8.0) — draft primeiro, publish gateado

Fluxo end-to-end recomendado:

  1. preparar versão (changeset version) e validar alinhamento de versões nos pacotes;
  2. gerar notas/checklist de readiness (local artifact);
  3. criar draft release manual para revisão do operador;
  4. publicar somente após gates canônicos + decisão explícita.

Automação mínima existente:

Checklist de readiness v0.8.0 (board/handoff):

Inspirado por tuts-agentic-ai-examples

Referência: https://github.com/nilayparikh/tuts-agentic-ai-examples

Mapeamento conceitual (adaptado ao ecossistema pi/refarm):

Adaptação local obrigatória:

Espelho externo de issues/status

Mapeamento canônico:

Direção e conflito:

Idempotência mínima:

Anti-patterns (evitar)

Checklist GO/NO-GO — transição Modo 1 -> Modo 2

GO (todos obrigatórios)

NO-GO (qualquer item bloqueia)

Envelope mínimo de telemetria — Modo 3 (federação)

Cada control-plane federado deve expor, no mínimo:

Contrato de operação do coordenador federado:

Rollout / rollback por modo

Modo 1 (single control-plane)

Rollout:

  1. validar saúde: context_watch_status + project-validate;
  2. confirmar gate strict: subagent_readiness_status(strict=true);
  3. executar slices locais com board/handoff atualizados.

Rollback (voltar para estabilidade local):

Operação noturna local-safe (batch 3–5 fatias, hard-intent)

Contrato operacional para rodar sem check-in entre tasks elegíveis:

  1. iniciar com autonomy_lane_next_task e autonomy_lane_auto_advance_snapshot;
  2. executar uma fatia curta por vez (commit + checkpoint);
  3. permitir auto-advance apenas quando snapshot decision=eligible;
  4. manter parada imediata quando snapshot decision=blocked.

Stop conditions mínimos (formato curto):

Rollback padrão AFK:

Modo 2 (delegação descartável)

Gate de entrada — simple-delegate rehearsal bounded:

  1. simple_delegate_rehearsal_packet.decision == ready;
  2. foco local-safe já estável (batch 3–5 concluído com checkpoint/commit por fatia);
  3. sem blockers hard-intent (protected, risk, reload-required, validation-failed-or-unknown);
  4. escopo protegido continua opt-in do operador (nenhum auto-dispatch).

Canário protegido de capacidade externa (GitHub Actions/offload) — pré-condições:

  1. declarar valor esperado do canário (throughput/custo/tempo) com métrica observável;
  2. declarar validação focal obrigatória antes/depois (mesmo gate local para comparação);
  3. declarar rollback explícito e não-destrutivo (git revert <commit> + retorno imediato ao caminho local);
  4. registrar envelope mínimo no board/handoff: task, maxCost, owner, evidence, decision=promote|defer;
  5. manter dispatch=no até decisão explícita do operador de promote.

Rollout canário:

  1. escolher 1 task curta com critérios claros;
  2. executar rehearsal report-first (sem dispatch automático) e só então avaliar execução delegada bounded;
  3. exigir evidência no parent antes de nova delegação;
  4. encerrar worker após entrega (não manter sessão longa do worker).

Rollback:

Runbook curto — rehearsal real (1 task):

  1. start: usar simple_delegate_rehearsal_start_packet; só avançar quando decision=ready-for-operator-decision e houver go explícito do operador;
  2. monitor: manter execução bounded e parar no primeiro stop: protected|risk|reload-required|validation-failed-or-unknown;
  3. abort: em blocker, encerrar rehearsal no mesmo slice, sem promover próxima task automaticamente;
  4. rollback: aplicar rollback não-destrutivo declarado, registrar evidência no board e checkpoint curto;
  5. postflight: registrar decisão go/no-go para próxima fatia antes de qualquer novo start.

Modo 3 (federação)

Rollout canário:

  1. federar só 1 instância filha inicialmente;
  2. validar envelope mínimo (status/readiness/budget/lease/workload/handoff);
  3. testar isolamento: simular instância degradada sem afetar as demais.

Rollback:

Sinais esperados por estágio