ork · ai software factory
O motor da fábrica de software autônoma
Um CLI determinístico que conduz N loops de agentes por seis fases e verifica cada alegação no HEAD real. Sem LLM embutido.
npm install -g @orkastery/cli ork doctor o que vale nesta máquina agora: node, git, repositório, runtime adapter, manifesto. sai diferente de zero quando está bloqueado.
o ciclo
A looping thread
Toda demanda vira um ciclo fechado: worktree própria, estado em disco próprio, ledger próprio, score próprio. As fases são sempre seis; os modos apenas agrupam fases em blocos.
F1 · GOAL
o que vale a pena, e como se prova
Objetivo verificável, impact map, critérios de sucesso e claims com comando de verificação. Não implementa.
o ork exige Claim sem comando é recusada como claims.unverifiable.
F2 · PLAN
o caminho, com domicílio único por decisão
Tarefas, touch_paths, decisões D1..Dn com domicílio único e verify executável por tarefa. Não implementa.
o ork exige Plano sem verify executável não vira GO.
F3 · GO
a escrita, fatia por fatia
Implementação fatia por fatia, um commit atômico por tarefa, dentro da worktree da thread.
o ork exige Escrita fora da worktree da thread é barrada por lease.
F4 · CHECK
a desconfiança, com comando na mão
Verificação contra a baseline, review de código, testes, segurança e performance.
o ork exige Claim reprovada vira verify.regression ou claims.failed, com a saída real anexada.
F5 · SHIP
o merge, um de cada vez
Merge serializado, push provado por comando, roadmap atualizado e plano de rollback.
o ork exige Push só conta quando git ls-remote bate com o sha local.
F6 · MASTER
a nota, dada por gente
MASTER log com postmortem tipado, lições e o score humano de 0 a 5.
o ork exige Score sem justificativa é recusado, em qualquer modo.
Demanda pequena recebe fases compactas, nunca menos fases. Um fix de uma linha ainda tem GOAL, ainda tem MASTER log. Uma entrega sem MASTER log não aconteceu.
condução
Cinco modos, uma #TAG no pedido
Você escolhe quanta pausa quer escrevendo a #TAG no próprio pedido. O host extrai a tag chamando o núcleo, e a validação também é do núcleo. Selecione um modo.
4 blocos de sessão
3 pausas humanas
- slugs de sessão
- goal, plan, f34, f56
- pausa sobre
- objetivo, plano, evidências, com autorização antecipada de push
- use quando
- O padrão do ork init: premissas delicadas com entrega confiável.
3 blocos de sessão
1 pausa humana
- slugs de sessão
- f12, f345, master
- pausa sobre
- premissas
- use quando
- Solução clara e ágil, sem tradeoff pesado: uma pausa para alinhar as premissas.
1 bloco de sessão
0 pausas humanas
- slugs de sessão
- full
- pausa sobre
- nada
- use quando
- Docs, estudos, pesquisas, configurações, auditorias, migrações.
1 bloco de sessão
0 pausas humanas
- slugs de sessão
- go
- pausa sobre
- nada; o push para a base continua pedindo autorização
- use quando
- Pedido pequeno e claro, de minutos: uma fase só, sem cerimônia, com Claude Sonnet ou GPT Terra em esforço alto.
o coração do produto
A maquinaria que não acredita em self-report
Este é o produto. O resto é conveniência.
-
o agente afirma
"Implementei X, e os testes passam."
-
claims.jsonl
A claim é um contrato, não um adjetivo: alegação, arquivo e o comando que a comprova.
-
ork verify
Reexecuta o comando no HEAD real, na worktree real, agora. Não no texto do modelo.
-
baseline de antes do GO
passava antes vira
verify.regression: o defeito é desta thread.já falhava vira dívida pré-existente: anotada, não imputada à thread.
sem baseline vira
verify.failed, sem chutar de quem é a culpa. -
gate bloqueado
Motivo tipado, evidência real e correção sugerida. O
ork fix openabre a spec da correção a partir do resultado do verify, não de prosa.
Os 12 motivos tipados de gate
Nenhum bloqueio é uma string de prosa. Todo bloqueio é um destes, com ação de retry determinada.
-
artifact.missingcorrigir-dirigido -
claims.failedcorrigir-dirigido -
claims.unverifiablecorrigir-dirigido -
verify.regressioncorrigir-dirigido -
verify.failedcorrigir-dirigido -
tree.blockedsincronizar-worktree -
lease.busyreexecutar -
runtime.unavailablereexecutar -
runtime.rate-limitedesperar-janela -
policy.violationescalar-humano -
human.pendingescalar-humano -
cost.violationsem-retry
cost.violation é o único motivo que
jamais recebe retry automático: reexecutar uma violação de custo é gastar de novo.
go-fix
Correção tipo A, de uma linha, recebe reverify parcial: só o que foi afetado. Tipo B devolve a tarefa ao GO e exige reverify completo. O veredito sai por correção, além do veredito da rodada.
fila durável
Runtime bateu limite de uso? A fase não morre: entra numa fila durável com o horário de reset lido do próprio stderr do adapter, e é retomada na janela seguinte, sem humano no meio.
freio
Estourou retry.max_tentativas? Sobe para o humano e para até o #Auto. Autonomia sem freio seria só ausência de controle.
paralelismo sem colisão
N looping threads, sem atropelo
Rodar várias threads ao mesmo tempo é fácil. Rodar várias threads sem que elas se atropelem é o trabalho.
ork-pagamentos
GO
worktree própria · ledger próprio · score próprio
ork-relatorio
CHECK
worktree própria · ledger próprio · score próprio
ork-publicacao
SHIP
worktree própria · ledger próprio · score próprio
lease main-tree
uma thread mergeia por vez
as outras esperam em fila FIFO, não sobrescrevem
ship com push provado por git ls-remote
Exemplo ilustrativo de três entregas em paralelo. Para consultar seu projeto, use ork board --all.
-
main-treeo único gate de merge -
worktree-write:<thread>escrita dentro da própria worktree -
path:<glob>região de arquivos reservada -
board:<card>um card, um dono por vez -
service:<porta>porta local sem disputa
Cinco famílias de leases tipados com TTL. Duas threads
pedindo a mesma região entram numa fila FIFO, em vez de escrever uma por cima da outra.
E ork board --all responde a única pergunta que importa numa máquina com
três roadmaps abertos: o que está rolando aqui, agora.
janela de contexto
O gate de tokens e o handoff triado
A janela de contexto acaba no meio da thread. Copiar a sessão inteira para a próxima entrega uma sessão nova já cheia e sem espaço para trabalhar. O ork tria.
ork gate next
A fase termina e o gate mede a ocupação da janela de contexto.
- runtime_reported
- estimated, por transcript
- informada, pelo host
- unavailable
Quando nenhuma fonte sabe medir, o veredito sai
same-session com decididoPor: ausencia-de-medida.
Decidir por dado que não existe é pior do que não decidir.
Uma lacuna nunca vira zero.
não
Mesma sessão. O trabalho continua onde está.
sim
Nova sessão, com handoff triado. Nada de copiar a sessão anterior inteira e entregar uma sessão nova já cheia.
A triagem em três níveis
-
CRÍTICO
Vai inline, sempre: estado, decisões locked, critérios, claims.
-
IMPORTANTE
Vira ponteiro
path#âncoracom o momento certo de resolver (retrieve_when). Pedido fora do momento volta sem o conteúdo. -
RESUMÍVEL
Resumo curto, com proveniência obrigatória:
source,locatione o sha256 do arquivo de origem.
Com o OrkMind ligado, o mesmo ponteiro resolve por
busca semântica por tag. Com o OrkMind fora do ar, ele resolve por
path#âncora, e o fluxo de quem lê o handoff não muda em nada. A
degradação tem motivo tipado.
condução proativa
O radar HITL
Detectar pausa, impedimento e espera por humano antes de o humano perguntar.
- trabalhando
- esperando humano
- morta, estado carimbado
O incidente que criou este radar: uma sessão ficou parada pedindo um código de duas etapas, e o humano descobriu sozinho, horas depois. O monitor via a sessão "viva" e concluía que o agente trabalhava. O sinal mais forte de que alguém precisava do humano era lido como o oposto.
ork sessions hitl parte das sessões, não
das threads: uma chamada classifica todas, e só as paradas pagam o preço de uma
inspeção profunda, que separa quem espera resposta de quem morreu esperando.
- 43sessões varridas
- 8paradas
- 9sde varredura
ork sessions hitl 2 sessões pedem você agora: pergunta, opções e a recomendação por tipo. Alarme repetido não avisa de novo: alarme falso crônico ensina a ignorar o radar.
auditoria periódica
Hardening por estágio
Cobrança de maduro em produto nascente mata a velocidade; leniência de nascente em produto maduro mata o produto. Os packs ativos acompanham o estágio.
-
nascente
clean-code · reuse
Só avisa: o builder cria livre e o auditor anota.
-
crescendo
+ architecture · data-model · ux
Achado crítico vira proposta prioritária no roadmap.
-
maduro
+ security-privacy · process
A recorrência propõe promover a policy de warn para block.
Varredura determinística da superfície de rede, sem LLM
-
SP8rota sem guarda de autenticação -
SP9endpoint de administração exposto -
SP10rota sem limite de taxa -
SP11CORS permissivo -
SP12rota sem esquema de validação de payload
Quando a leitura não dá confiança, o achado
sai com confiança baixa e o título diz requer confirmação humana.
Falso positivo disfarçado de certeza é o defeito que esse módulo existe para
evitar. O auditor também não tem direito a self-report: ork audit
verify reexecuta as claims dos achados.
o fecho
Toda thread termina na mesma pergunta
De 0 a 5, quão inteligentemente isso foi entregue?
entregou limpo, no caminho previsto
Métrica diz quanto a entrega custou. O score
diz se o caminho foi esperto. O ork recusa score sem justificativa, em
qualquer modo; nos modos sem pausa de MASTER, a thread cai na fila de
ork master --batch para você pontuar em bloco. Ela não some.
O POSTMORTEM só aceita nove classes
Classe livre vira texto solto, e texto solto não agrega. Toda falha entra em uma destas:
- sem-falha
- erro-de-spec
- base-avancou
- conflito
- rate-limit
- modelo
- processo
- scope-creep
- outra
adaptadores de host
Seu host, seus runtimes
O ork não quer ser a sua interface. Ele quer ser o motor debaixo dela. Zero regra de negócio no host: a #TAG do seu pedido vira modo porque o host pergunta ao núcleo, e quem valida é o núcleo.
Os adaptadores abaixo conectam seu host ao ork. Para executar a
sinfonia, os dois runtimes homologados são Claude Code (claude-bg)
e Codex (codex). Escolha runtime, modelo e esforço por bloco
com ork setup.
claude-code
Plugin com skills, subagentes de fase, comandos de condução e hooks de verificação.
<projeto>/.claude/plugins/orkastery
hermes
Skill roteadora fina, plugin que a declara e script de abertura de thread.
<projeto>/.hermes
openclaw
openclaw.plugin.json com 16 tools ork_*, cada uma uma chamada de CLI.
<projeto>/.openclaw
codex
Skill, MCP com ações do dono e CHECK nativo por codex review.
<projeto>/.codex
ork adapter list os hosts e o destino de cada um ork adapter show hermes os 3 pitfalls de instalação do host ork adapter install claude-code exemplo para o host Claude Code rode com --dry-run antes de instalar o host ork setup runtimes: Claude Code (claude-bg) e Codex (codex)
o contraste
Por que não só um agente solto?
um agente solto
uma fábrica conduzida
Três agentes no mesmo repositório editam os mesmos arquivos.
Uma worktree git por thread, e escrita fora dela barrada por lease.
O agente diz que os testes passam, e você acredita.
O verify reexecuta o comando da claim no HEAD real e anexa a saída.
O contexto acaba e a sessão nova nasce entupida de colagem.
Gate de tokens mede a janela e o handoff triado passa só o que importa.
O merge é uma corrida, e o último a chegar sobrescreve.
main-tree é o único gate de merge: uma thread mergeia por vez.
Deu errado, e ninguém sabe dizer onde nem por quê.
Ledger append-only, prompt com sha256 e POSTMORTEM em nove classes fixas.
Terminou, e ninguém mede se o caminho foi bom.
Um score humano de 0 a 5 em toda entrega, sem exceção.
estado real
O que existe hoje, e o que ainda não
Este projeto publica lacuna como lacuna. O que está escrito como pronto tem comando que prova; o que não está pronto é dito com todas as letras.
- funciona Onboarding do projeto por ork onboarding, com pauta e retomada de respostas
- funciona Pulse de condução, sensores de sessão e fechamento administrativo separado do score
- funciona Telemetria econômica: tempo, tokens, custo de referência, espera, riscos e estimativas do PLAN
- funciona Playbooks nativos de Claude Code e Codex, com AGENTS.md gerenciado e claims tipadas
- funciona Orquestração nos quatro hosts: Hermes, OpenClaw, Claude Code e Codex, sobre o mesmo núcleo
- funciona Docs para usuários: instalação, primeira entrega e operação cotidiana em /docs/
- funciona Núcleo ork: threads, 6 fases, modos #Classic, #Maestro, #Auto e #Fast, ledger, worktree, leases, board, escalonador
- funciona Claims, baseline, verify no HEAD real, motivos tipados e policies executáveis
- funciona Gate de tokens, handoff triado em 3 níveis, ork recall por momento
- funciona ork ship serializado, com push provado por ls-remote
- funciona MASTER log em contrato congelado, POSTMORTEM tipado e índice derivado do ledger
- funciona Retry tipado, fila durável de rate limit, GO-FIX e CHECK-REVERIFY
- funciona 7 packs de auditoria, board de dívida, superfície de ataque de rede (SP8 a SP12)
- funciona Adaptadores dos quatro hosts, com skills, MCP e contratos tipados conforme cada cliente
- funciona Camada OrkMind (memory.mode: orkmind), com degradação honesta para files
- funciona Company Brain B1/B2: schema versionado, ACL, proveniência, receipts, reconciliação e rollback
- funciona Biblioteca governada no OrkMind Web: tipos, coleções e fontes separados; fatos técnicos sob filtro
- funciona Captura e consulta do Brain nos quatro hosts: Hermes, OpenClaw, Claude Code e Codex
- funciona Criação durável de produto, projeto, iniciativa e operação, com journal e recuperação
- não existe Medida runtime_reported de ocupação de janela
- funciona Runtimes homologados: Claude Code (claude-bg) e Codex (codex)
- funciona Maestro mode autônomo com Objective Envelope
- planejado Company Brain B3–B7, cuidadores, Atlas, dados e world model
O Orkastery é construído com Orkastery: cada pull request do núcleo traz o pacote das claims, e o CI reexecuta cada uma antes do merge. O que ainda não funciona está marcado acima como lacuna, com todas as letras.