Alinhamento (Align)
Use $align para equalizar o contexto antes da ação. O skill existe para tarefas onde
o humano, agente do projeto, WebGPT, $scillm, $ask, $dogpile, $memory ou
$project-knowledge podem cada um saber fatos diferentes. Ele produz um
alignment_lock.json que skills posteriores podem executar.
Não use $align para implementar, renderizar, refatorar ou revisar o trabalho final. É um
portão de pré-execução. Nenhum código, infográfico, dashboard, fase de planejar-iterar ou
renderização de infográfico de projeto deve começar até que o lock de alinhamento diga
ready_for_execution: true.
Regra Principal
O alinhamento está completo apenas quando todas as perguntas bloqueadoras são respondidas e o lock registra:
- objetivo acordado
- não-objetivos acordados
- contexto de origem
- fatos dos participantes
- suposições e riscos restantes
- formato da saída
- critérios de aceitação
- decisão explícita de pronto/não pronto
Se o desacordo permanecer, mantenha o lock com ready_for_execution: false.
Participantes
Use apenas participantes que sejam relevantes para a tarefa:
| Participante | Papel |
|---|---|
human | Intenção, preferências, nuances de domínio, barra de aceitação |
project_agent | Estado do repositório local, restrições, próximos passos executáveis |
project_knowledge | Histórico durável do projeto e notas de transição |
memory | Lições anteriores e problemas similares resolvidos |
scillm | Crítica direta do modelo através do proxy LLM localhost |
ask | Runtime de ask/oráculo/revisão profunda com artefatos; possui roteamento WebGPT |
dogpile | Pesquisa externa fresca quando o contexto local é insuficiente |
webgpt | Contexto visível no navegador/sessão e julgamento voltado ao humano |
As chamadas WebGPT devem ser roteadas através de $ask webgpt; $ask já possui o backend
oráculo WebGPT e usa surf webgpt.submit --no-activate contra a aba autenticada do ChatGPT
do usuário. $align não chama surf diretamente. Não envie requisições WebGPT através de
$scillm; $scillm é para chamadas diretas ao modelo como gpt-5.5, Gemini, Claude ou
OpenCode Go. Preserve o id da aba quando o humano o fornecer.
Use $dogpile apenas quando o alinhamento estiver bloqueado por conhecimento externo/atual
faltante. Não o use para fatos que $project-knowledge ou $memory já respondem.
Roteamento em Tempo de Execução
+-----------------------+
| $align init |
| objetivo, saída, fontes|
+-----------+-----------+
|
v
+-----------------+-----------------+
| Rodada N: alignment_brief |
| participantes declaram fatos, |
| lacunas, contradições e perguntas |
+-----------------+-----------------+
|
+-----------------+-----------------+
| compilar-rodada extrai perguntas |
| Pergunta[bloqueadora/não bloqueadora]: |
+-----------------+-----------------+
|
perguntas bloqueadoras abertas?
| sim | não
v v
+----------------+----------------+ +-------+--------+
| rotear cada pergunta ao dono | | lock --pronto |
| humano/projeto/memória/revisor | | escreve lock |
+----------------+----------------+ +----------------+
|
v
+----------------+----------------+
| adicionar-resposta / responder-pergunta |
| atualizar brief, incrementar rodada |
+----------------+----------------+
|
v
Rodada N+1
Rotas de revisor são entradas opcionais para uma rodada:
+----------------+
| Brief Rodada N |
+-------+--------+
|
+-----------------------------+-----------------------------+
| | |
v v v
+--------------------+ +--------------------+ +--------------------+
| WebGPT via $ask | | $scillm direto | | $ask revisão/oráculo |
| preparar-revisão | | preparar-revisão | | preparar-revisão |
| --revisor webgpt | | --revisor scillm | | --revisor ask |
+---------+----------+ +---------+----------+ +---------+----------+
| | |
v v v
skills/ask/run.sh ask webgpt rodada-N-scillm-request.json rodada-N-ask-request.md
--webgpt-tab-id <id> modelo: gpt-5.5 skills/ask/run.sh ask
| raciocínio_esforço: alto --revisão-profunda
v prompt de persona opcional
$ask -> surf webgpt.submit |
--no-activate v
v POST localhost:4001/v1/chat/completions
|
aba autenticada do ChatGPT
Pesquisa externa/atual:
preparar-revisão --revisor dogpile -> rodada-N-dogpile-request.md
Use apenas quando fatos externos faltantes bloqueiam o alinhamento.
Laço de Rodada
Cada rodada segue a mesma sequência:
- Transmita o brief de alinhamento atual para os participantes selecionados.
- Cada participante declara o que acredita ser a tarefa.
- Cada participante lista fatos que conhece que outros podem não conhecer.
- Cada participante lista suposições, contradições e perguntas.
- Mescle perguntas em conjuntos bloqueadores e não bloqueadores.
- Roteie perguntas para a parte que pode respondê-las.
- Atualize o brief.
- Pare apenas quando as perguntas bloqueadoras forem resolvidas ou o máximo de rodadas for atingido.
Se o máximo de rodadas for atingido com perguntas bloqueadoras abertas, pare com
ready_for_execution: false e apresente a menor decisão humana necessária.
CLI
Vinculação de aba WebGPT (paridade CLI)
Prefira zero-flag $ask webgpt de um diretório de trabalho registrado. /ask compõe
$browser-oracle automaticamente. init e prepare-review persistem dicas de vinculação em
.align/state.json e emitem as mesmas flags no round-*-webgpt-ask-command.sh gerado.
| Flag | Quando usar |
|---|---|
| (nenhuma) | cwd tem registro de subida + vinculação — preferido |
--browser-oracle-from <dir> | Sobrescrever raiz de subida (subdiretório monorepo) |
--webgpt-project <name> | Projeto explícito; pula subida yaml |
--webgpt-tab-id <id> | Sobrescrita única; pula subida |
--webgpt-url <url> | Resolver por URL da conversa; pula subida |
Ordem de resolução (mesma que $ask / $surf): --webgpt-tab-id → --webgpt-url →
$browser-oracle subida → --webgpt-project → uma aba chatgpt.com (falha fechada).
Configuração: $browser-oracle register + bind + doctor --from <dir>. Veja $browser-oracle
e as seções Vinculação de aba WebGPT de $ask SKILL.md.
Execute a partir da raiz do repositório ou projeto que possui a tarefa:
skills/align/run.sh init \
--goal "Criar uma solicitação clara de infográfico planejar-iterar" \
--output-shape "storyboard derivado da fonte e solicitação de infográfico web" \
--participant human \
--participant project_agent \
--participant project_knowledge \
--participant scillm \
--participant ask \
--participant dogpile \
--participant webgpt
# Prefira zero-flag de um diretório registrado, ou persista raiz de subida:
# --browser-oracle-from skills/oc-subagent/personas/mathematics
# Sobrescrita explícita legada:
# --webgpt-tab-id 837343529
Registre as respostas dos participantes:
skills/align/run.sh add-response \
--participant project_agent \
--round 1 \
--text "Tarefa: reconciliar o fluxo de trabalho antes de renderizar. Fato: o visual anterior falhou porque não havia storyboard aprovado. Pergunta[bloqueadora]: qual projeto de amostra exato deve ancorar o visual?"
Compile a rodada:
skills/align/run.sh compile-round --round 1
Trave apenas após as perguntas bloqueadoras serem resolvidas:
skills/align/run.sh lock --ready --approved-by human
Geração de Solicitação de Revisor
prepare-review cria artefatos de solicitação reproduzíveis para revisores. Ele não
chama o revisor por si só.
skills/align/run.sh prepare-review --round 1 --reviewer scillm
skills/align/run.sh prepare-review --round 1 --reviewer ask
skills/align/run.sh prepare-review --round 1 --reviewer dogpile
skills/align/run.sh prepare-review --round 1 --reviewer webgpt --browser-oracle-from skills/oc-subagent/personas/mathematics
# ou: --webgpt-tab-id 837343529
Use WebGPT quando a revisão precisar da sessão autenticada do navegador ChatGPT do humano
ou contexto visível no navegador. Use $scillm quando a revisão deve ser uma
chamada de modelo direta e reproduzível, por exemplo GPT-5.5 com raciocínio alto e um
prompt de persona/sistema:
skills/align/run.sh prepare-review \
--round 1 \
--reviewer scillm \
--scillm-model gpt-5.5 \
--reasoning-effort high \
--persona-prompt "Você é um revisor cético de alinhamento de produto. Foque em suposições incompatíveis e critérios de aceitação ausentes."
Chamadas recomendadas após prepare-review:
# revisão direta scillm
.align/reviews/round-001-scillm-command.sh
# revisão profunda ask ou oráculo WebGPT
skills/ask/run.sh ask "Revise a solicitação de alinhamento em .align/reviews/round-001-ask-request.md" \
--deep-review --deep-review-target .align/reviews/round-001-ask-request.md
skills/ask/run.sh ask webgpt "Revise a solicitação de alinhamento em .align/reviews/round-001-webgpt-request.md" \
--browser-oracle-from skills/oc-subagent/personas/mathematics --oracle-iterations 1
# pesquisa dogpile apenas se o alinhamento estiver bloqueado por fatos externos ausentes
skills/dogpile/run.sh search "fatos necessários para desbloquear este alinhamento" \
--context-file ".align/reviews/round-001-dogpile-request.md"
Armazene o texto do revisor resultante com add-response. Os recibos do revisor são
entradas para o alinhamento; eles não são aprovação de execução por si só.
Verificação de Sanidade de Composição ao Vivo
sanity.sh é a verificação local rápida. Ela prova o laço de rodada, o portão de
pergunta bloqueadora, a geração de solicitação de revisor e o esquema do lock sem gastar
cota externa.
sanity-live.sh é o portão E2E de mundo real obrigatório antes de declarar $align
pronto como um skill composto. É opt-in porque chama sistemas downstream ao vivo:
$memory recall --briefatravés do skill de memória real- ingestão de resposta do agente do projeto através de
$align add-response $dogpile searchcom a solicitação de alinhamento gerada como contexto$ask webgptcontra o caminho WebGPT autenticado pelo navegador- criação final de
alignment_lock.jsonapenas após esses recibos validarem
Execute apenas quando a estação de trabalho local tiver memória, credenciais/pesquisa dogpile, Chrome e uma sessão autenticada do ChatGPT:
ALIGN_LIVE_E2E=1 skills/align/sanity-live.sh
Controles opcionais:
ALIGN_LIVE_E2E=1 \
ALIGN_WEBGPT_TAB_ID=837343529 \
ALIGN_LIVE_OUTPUT_ROOT=/mnt/storage12tb/skills/align/live-e2e \
skills/align/sanity-live.sh
Se nenhum ALIGN_WEBGPT_TAB_ID ou ALIGN_WEBGPT_PROJECT for fornecido, a verificação
ao vivo passa --webgpt-create-tab para $ask; isso ainda requer uma configuração local
Chrome/WebGPT válida. O artefato de prova é
/mnt/storage12tb/skills/align/live-e2e/<timestamp>/report.json por padrão.
Verificações ao vivo ignoradas não estabelecem prontidão.
Layout de Artefatos
.align/
alignment_state.json
alignment_brief.md
alignment_lock.json
rounds/
round-001/
participant-human.md
participant-project_agent.md
participant-scillm.md
round_summary.md
questions.json
reviews/
round-001-scillm-request.json
round-001-scillm-command.sh
round-001-ask-request.md
round-001-dogpile-request.md
round-001-webgpt-request.md
round-001-webgpt-ask-command.sh
/mnt/storage12tb/skills/align/live-e2e/<timestamp>/
report.json
memory.stdout
dogpile.stdout
webgpt.stdout
ask-runs/<ask_id>/
Condições de Parada
Defina ready_for_execution: true apenas quando:
- nenhuma pergunta bloqueadora permanece aberta
- o objetivo e não-objetivos acordados são explícitos
- o formato da saída é concreto
- os critérios de aceitação são testáveis ou revisáveis
- o contexto de origem é nomeado
- o humano ou proprietário delegado aprovou o lock
Defina ready_for_execution: false quando:
- perguntas bloqueadoras permanecem
- WebGPT,
$scillm,$askou conhecimento do projeto contradizem o brief - o formato da saída ainda é abstrato
- um participante expôs evidência de origem ausente
- o próximo passo solicitado produziria um recibo em vez de resolver a tarefa real
Erros Comuns
- Não use
$aligncomo substituto para$interview; use entrevista quando a informação faltante é puramente preferência humana ou critérios de aceitação. - Não use
$aligncomo substituto para$review-code,$review-planou$plan-iterate; o alinhamento acontece antes desses skills. - Não resuma WebGPT ou
$askmanualmente. Use seus runtimes reais e armazene caminhos de artefatos ou texto do revisor. - Não considere um lock de alinhamento completo porque um revisor o aprovou. O agente do projeto deve mesclar o resultado e limpar perguntas bloqueadoras.