mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-12 22:13:05 +00:00
docs(OPS113): triage pós-simplify — registra OPS117, alinha OPS114 e fecha o impl plan (Related #1056, Related #1063)
This commit is contained in:
parent
5496c5e2e6
commit
20294286bf
3 changed files with 66 additions and 1 deletions
|
|
@ -144,6 +144,13 @@ flowchart LR
|
|||
- **Prettier vermelho em `.opencode/`.** Rodar `prettier --write` nos tocados; frontmatter com description longa passa como o precedente.
|
||||
- **Sem hot reload.** Qualquer prova de agente é subprocesso novo (`opencode run`), nunca a sessão atual.
|
||||
|
||||
## Débitos da triagem pós-simplify (2026-09-15)
|
||||
|
||||
- **Já resolvido no simplify/critique (não reabrir):** S4 (prova dos smokes vai no body do PR); S6–S12 (commit `refactor(OPS113)`: prompts enxutos anti-drift, permission estreitada ao artefato, `description` citada, roteamento de visão, posição no AGENT-OPS, duplicações da doutrina/grep).
|
||||
- **Registrado:** S1 — `bash` fora do gate de escrita dos agentes → **OPS117 (#1063)**, `depends OPS113`, plano `docs/plans/ops117-guard-bash-agentes-design.md` (nasce `blocked`; promove no merge com `Related #1063`).
|
||||
- **Absorvido:** S3 — guardrail do plano OPS114 (`docs/plans/ops114-plan-issue-design-hifi-no-gate.md`) alinhado ao teto de JS do GATE 2026-09-15 (JS só de apresentação; anti-goal "não é protótipo funcional" segue).
|
||||
- **Descartados:** S2 — o fail-closed do tier degradado (inclusive tier 4 inline) já é aceite/fase do OPS115 (#1058), não reabrir; S5 — `.agents/` fora do prettier é convenção pré-existente (`.prettierignore`). Défer com gatilho: nenhum.
|
||||
|
||||
## Aceite de engenharia
|
||||
|
||||
- [ ] Aceite de produto da intenção coberto: os dois agentes existem e são invocáveis com os literais pinados; doutrina viva `ui-design-html.md` como fonte de verdade; ladder documentada com tier registrado e `DEGRADED` sem certificação; pré-requisito verificado.
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ O gate do `plan-issue` nasceu vendendo um **rascunho UI low-fi** (HTML descartá
|
|||
- O frontmatter do plano usa `Design UI:` (antes `Rascunho UI:`) e o corpo usa a seção `### Design UI (B/C/D)` com link do HTML + cenas (390/1280/estados); PNG embutido deixa de ser exigência.
|
||||
- Nenhuma referência a `ui-draft-html.md`, `-ui-draft.html` ou "Rascunho UI" sobra fora de `docs/plans/**` e `docs/changelog/**`.
|
||||
- Planos antigos e seus `-ui-draft.html`/PNGs ficam intactos (não renomear, não migrar).
|
||||
- Guardrails: o design não carrega comportamento JS nem nomeia componente final (não vira implementação); doutrina do gate continua fora de `docs/plans/`.
|
||||
- Guardrails: o design não carrega lógica de negócio/fetch/persistência (JS só de apresentação — modal/tabs/toggle, teto da doutrina) nem nomeia componente final (não vira implementação); doutrina do gate continua fora de `docs/plans/`.
|
||||
|
||||
## Dados (intenção)
|
||||
|
||||
|
|
|
|||
58
docs/plans/ops117-guard-bash-agentes-design.md
Normal file
58
docs/plans/ops117-guard-bash-agentes-design.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# OPS117 — Guard de escrita dos agentes de design além dos file tools (bash)
|
||||
|
||||
Status: rascunho
|
||||
Atualizado em: 2026-09-15
|
||||
Issue: #1063
|
||||
Priority: P2
|
||||
Impeccable: A — N/A sem UI de produto
|
||||
Rascunho UI: N/A — sem UI
|
||||
Appetite: ~0,5 dia eng; um outcome verificável
|
||||
Responsável: —
|
||||
|
||||
## Intenção
|
||||
|
||||
Os agentes `designer` e `designer-degraded` (OPS113) são fail-closed para os **file tools** (`edit`/`write`/`patch` negados fora de `docs/plans/*-ui-design*`), mas o anti-goal "o designer nunca escreve em `src/`" ainda é contornável por **bash** (redirecionamento, `sed -i`, `tee`). O gate cobre o caminho principal; falta fechar o desvio — sem transformar o agente num sandbox de SO.
|
||||
|
||||
## Objetivo e aceite
|
||||
|
||||
- Escrita em disco via bash pelos dois agentes falha fechado (negada ou ask conforme o mecanismo escolhido) para caminhos fora do artefato `docs/plans/<slug>-ui-design*`.
|
||||
- Gravar o próprio artefato (`docs/plans/<slug>-ui-design.html` e `-ui-design-assets/*.svg`) segue permitido — inclusive o `prettier --write` do artefato, se necessário ao fluxo.
|
||||
- Smoke em subprocesso prova: `echo > src/...` negado; artefato permitido.
|
||||
- Nada de sandbox de SO, nada de agente twin, nada de bloquear leitura (`cat`/`sed -n`).
|
||||
|
||||
## Dados (intenção)
|
||||
|
||||
- **Vou apresentar dados?** Não — configuração de agente.
|
||||
- **Forma:** N/A.
|
||||
|
||||
## Direção no codebase (hipótese)
|
||||
|
||||
- **Áreas prováveis:** `.opencode/agent/designer.md` e `.opencode/agent/designer-degraded.md` (`permission.bash` por agente), doutrina `.agents/skills/plan-issue/ui-design-html.md` (nota do teto) e `docs/AGENT-OPS.md` (parágrafo OPS113) se a semântica mudar.
|
||||
- **Precedente a olhar:** o próprio bloco `permission.edit` fail-closed dos agentes; docs opencode de `permission.bash` (padrões por comando, last-match-wins).
|
||||
- **Risco de acoplamento:** `permission.bash` casa **comando** (não caminho de arquivo) — a forma exata precisa ser confirmada no schema/docs antes de pinar; falso-deny do `prettier --write` do artefato é o risco a evitar.
|
||||
|
||||
## Fora de escopo
|
||||
|
||||
- Sandbox de SO/container para agentes.
|
||||
- Mexer no allowlist de escrita do artefato (já resolvido no OPS113).
|
||||
- Bloquear leitura ou comandos não-escrita (`git diff`, `cat`, `sed -n`).
|
||||
|
||||
## Rabbit holes
|
||||
|
||||
- **"Já que mexeu, faz sandbox de SO."** Vira infraestrutura para um risco de ferramenta de design. **Corte neste item:** só a `permission.bash` dos dois agentes.
|
||||
- **"Bloqueia bash inteiro."** O designer pode precisar de `prettier --write` no artefato (docs/plans é format-checked). **Corte neste item:** bloquear escrita fora do artefato, não o shell.
|
||||
|
||||
## Verificação
|
||||
|
||||
- Smoke em subprocesso (`opencode run --agent designer`; degraded via task): `echo x > src/…` negado; escrita no artefato permitida; `opencode agent list` mostra o ruleset resolvido.
|
||||
- `pnpm gate:fast` verde; sem mudança em `src/`.
|
||||
|
||||
## Riscos
|
||||
|
||||
- **Semântica de `permission.bash` por caminho não existir.** Então o desenho vira "ask" para bash (humano no loop) ou hook/plugin — decidir no impl plan com evidência das docs, sem pinar adivinhação.
|
||||
|
||||
## Referências
|
||||
|
||||
- GitHub Issue #1063
|
||||
- `docs/plans/ops113-agentes-designer-e-designer-degraded-impl.md` — decisão 1 (resíduo declarado do bash)
|
||||
- `.opencode/agent/designer.md` · `.opencode/agent/designer-degraded.md` — `permission` fail-closed dos file tools
|
||||
Loading…
Reference in a new issue