Nenhum modelo openai/* (luna/sol-fast/terra inclusive) fora dos agentes de design, por /models, --model, small_model ou config. Cobre o uso de gpt-5.6-luna em sessoes build. Regra always-on no AGENTS.md + doutrina/AGENT-OPS; guard estatico em tests/unit/openaiProviderScope.unit.spec.ts.
3 KiB
OPS123 — escopo de dispatch do designer frontier: só design de fato (2026-09-16): fecha o vazamento de cota do agente designer (openai/gpt-5.6-sol, OAuth ChatGPT Plus) que queimou a cota semanal do plano numa manhã — 12 das 14 sessões openai do dia 2026-09-16 foram smoke/validação não-design (guard de escrita OPS117, smoke OPS113, teste de visão) rodadas no frontier, além de 5 subagentes designer frios em paralelo para o lote do plan-issue-36. A regra de escopo passa a ter um dono: a doutrina .agents/skills/plan-issue/ui-design-html.md ganha a seção §Escopo de dispatch — o tier frontier só roda Criar/Criticar o artefato docs/plans/<slug>-ui-design* de item que muda UI; lista fechada do que nunca vai ao frontier (smoke/validação de permission/guard/frontmatter/model:/config de agente — a semântica de permission é do frontmatter, não do modelo; teste de visão/sanidade de imagem; @explore/@general/@solla-comunicacao; escrita/revisão de plano, impl plan, PR, changelog ou doc) e um gate de 3 perguntas antes de disparar (muda UI? Criar/Criticar? output é o artefato?). Os dispatchers apontam para o dono (sem twinning): plan-issue/SKILL.md (regra dura #4, Quando do sub-agente Designer e passo 3d) e work-issue/execution-pipeline.md §Design (bloco "Fora do designer frontier de vez" — proibição, não non-trigger). O próprio .opencode/agent/designer.md ganha o inegociável "Só design de fato" (recusa e devolve ao orquestrador fora do escopo); designer-degraded.md declara-se o tier certo para o smoke do guard dos agentes de design (mesmo ruleset de permission, barato); designer-campanha-solla.md (sem model: pin) avisa que herda o modelo da sessão — dispare a sessão barata e só troque para o frontier no design. Anti fan-out: prefira uma sessão designer para N itens UI do mesmo lote (cache reusado; o system prompt frio de ~25K tokens é pago uma vez) a N sessões frias em paralelo. Frontmatter/permission intactos (o guard OPS117 segue verde). docs/AGENT-OPS.md atualizado. Provider openai reservado ao design: a reserva não para no dispatch — nenhum outro agente/sessão, nem small_model, compaction ou worker de orquestração, troca para openai/* (gpt-5.6-luna/-fast, sol-fast, terra inclusive) por /models, --model ou config (cobre o uso de gpt-5.6-luna em sessões build que o relatório de uso apontou); a regra entra no AGENTS.md always-on e na doutrina/AGENT-OPS, e o novo tests/unit/openaiProviderScope.unit.spec.ts (5 casos) falha se qualquer agente fora do allow-list pinar openai/*, se um comando/config de projeto rotear modelo para openai/*, ou se a reserva sumir da doutrina/AGENTS.md. Testes: tests/unit/opencodeAgents.unit.spec.ts ganha 6 asserções pinando o contrato (seção da doutrina, gate, recusa do agente, escopo do designer-degraded, referência nos dois skills). Sem migration, sem schema, sem UI, sem acesso/Consent. Issue #1091.