agents-lab

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

View on GitHub

Primitive Growth Sanity Plan

Objetivo: aumentar produtividade com segurança, calibração e governança — sem caos, repetição de código ou crescimento descontrolado de débito técnico.

Este guia define a trilha para evoluir de control-plane local-first para automação local governada e, no futuro, coordenação federada com gates explícitos.

Princípios não negociáveis

  1. Primitive-first: capabilities novas devem nascer como contrato mínimo reutilizável, não como patch ad-hoc.
  2. Evidence-first: promoção só acontece com evidência no board/handoff/verification.
  3. Fail-closed: sem evidência suficiente, decisão padrão é defer.
  4. Local-safe antes de protected: provar no caminho local antes de CI/remote/offload.
  5. Uma mudança estrutural por fatia: reduzir blast radius e facilitar rollback.

North star de maturidade

Queremos subir throughput sem perder controle:

Ladder de promoção (crescimento seguro)

L0 — Primitive local-safe

L1 — Protected canary (1 run)

L2 — Delegated throughput bounded

L3 — Factory baseline

L4 — Factory-of-factories (futuro)

Política anti-gordura e anti-repetição

Toda capacidade nova deve responder:

  1. Qual primitiva existente reusa?
  2. Se não reusa, por que precisa de nova primitiva?
  3. Qual código antigo será consolidado/deprecado?
  4. Qual teste evita regressão de contrato?

Sinais de gordura (acionam hold):

Orçamento de débito técnico

Definir orçamento por ciclo (semanal/mensal):

Regra operacional:

Scorecard mínimo de crescimento com sanidade

Pontuar 0..100 por dimensão:

Sugestão de leitura:

Cadência operacional

Em cada turn boundary/checkpoint:

  1. revisar scorecard curto;
  2. confirmar se há orçamento de dívida disponível;
  3. decidir promote|defer para próximo nível;
  4. registrar decisão/evidência no board.

Runbook curto (boundary go/hold)

Sequência recomendada por boundary:

  1. gerar score explícito com growth_maturity_score_packet;
  2. anexar o snapshot no turn_boundary_decision_packet;
  3. verificar origem no boundary (growthSource=explicit|handoff) e agir conforme decisão:
    • go: ampliar somente 1 nível bounded;
    • hold: manter ritmo e estabilizar pontos fracos;
    • needs-evidence: fail-closed, coletar sinais faltantes antes de acelerar.

Exemplo de uso (snapshot completo):

{
  "safety_score": 86,
  "calibration_score": 84,
  "throughput_score": 79,
  "simplicity_score": 82,
  "debt_budget_ok": true,
  "critical_blockers": 0
}

Regra prática: sem as 4 dimensões completas, não existe decisão de aceleração. No fallback por handoff, snapshot parcial/ambíguo deve cair em needs-evidence (fail-closed).

Rotina de retomada local-safe (quando não houver próxima fatia elegível)

Quando a seleção local retornar no-eligible-tasks, usar rotina curta:

  1. registrar checkpoint/handoff com motivo (no-eligible + blockers);
  2. escolher 1 nova fatia local-safe explícita (escopo pequeno e reversível);
  3. atualizar foco para a nova fatia no checkpoint;
  4. reavaliar readiness/boundary e só então continuar.

Meta da rotina: evitar drift e evitar ficar preso em foco antigo sem próxima ação concreta.

Critério para v0.8.0

A release só acontece quando a barra de maturidade estiver comprovada por evidência, não por urgência de calendário: