mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 06:43:06 +00:00
Related #1226
This commit is contained in:
parent
c7eeb5dbd8
commit
af455e55bb
1 changed files with 78 additions and 0 deletions
78
docs/plans/ops71-worktree-fix-sem-arg-driverless.md
Normal file
78
docs/plans/ops71-worktree-fix-sem-arg-driverless.md
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# Tornar worktree `fix` (sem argumento) driverless, espelhando `plan`
|
||||
|
||||
Status: rascunho
|
||||
Atualizado em: 2026-09-20
|
||||
Issue: #1226
|
||||
Priority: P2
|
||||
Impeccable: A — N/A
|
||||
Design UI: N/A
|
||||
Appetite: ~0,5 dia eng; um outcome verificável
|
||||
Responsável: —
|
||||
|
||||
## Intenção
|
||||
|
||||
`pnpm worktree fix` sem argumento hoje abre a sessão e auto-envia a string vazia como mensagem do usuário, resultando em um prompt vazio para o agente. O `plan` (sem bag) já é driverless — abre a sessão sem mensagem, esperando o humano digitar o contexto. O `fix` deve espelhar esse comportamento: sem argumento → sessão aberta, nenhuma mensagem automática.
|
||||
|
||||
## Persona e fluxo
|
||||
|
||||
- **Persona / contexto:** dev que identificou um bug e quer diagnosticar interativamente (campo/mesa, terminal)
|
||||
- **Job principal:** Abrir uma sessão `fix` sem bag sem que o agente receba uma mensagem vazia
|
||||
- **Fluxo desejado:** `pnpm worktree fix` → sessão abre, prompt vazio → humano digita o contexto do bug
|
||||
- **Anti-goals de produto:** Não quebrar `pnpm worktree fix "descrição do bug"` — o caso com argumento continua funcionando como hoje
|
||||
|
||||
### Esboço de fluxo
|
||||
|
||||
```text
|
||||
fix (sem arg) → sessão aberta, prompt vazio → humano digita
|
||||
fix (com arg) → sessão aberta, argumento sanitizado auto-enviado (como hoje)
|
||||
plan (sem arg) → sessão aberta, prompt vazio (referência — sem mudança)
|
||||
```
|
||||
|
||||
## Objetivo e aceite
|
||||
|
||||
- `pnpm worktree fix` (sem argumento) abre sessão driverless — nenhuma mensagem automática enviada
|
||||
- `pnpm worktree fix "descrição"` continua funcionando como hoje (argumento sanitizado → mensagem auto-enviada)
|
||||
- `pnpm worktree fix --auto` (sem argumento) lança erro alto explicando que `--auto` exige um bag
|
||||
- Testes unitários atualizados cobrem o novo comportamento
|
||||
|
||||
## Dados (intenção)
|
||||
|
||||
- **Vou apresentar dados?** N/A — feature de tooling interna, sem métrica de produto
|
||||
- **Decisões desbloqueadas:** Executor — comportamento driverless do fix sem bag
|
||||
- **Forma:** adiada ao plano de implementação
|
||||
|
||||
## Dados da decisão (literais)
|
||||
|
||||
- `if (purpose === 'plan' && !sanitized) return null` — padrão existente em `scripts/lib/agent-session.mjs:212`
|
||||
- Nova linha: `if (purpose === 'fix' && !sanitized) return null` — posição imediatamente abaixo, antes do `auto` check
|
||||
|
||||
## Direção no codebase (hipótese)
|
||||
|
||||
- **Áreas prováveis:** `scripts/lib/agent-session.mjs` (`purposeInvocation`), `scripts/lib/worktree.mjs` (`assertSkillAutoSupported`), `tests/unit/agentSession.unit.spec.ts`, `tests/unit/worktree.unit.spec.ts`
|
||||
- **Precedente a olhar:** OPS119 — `plan` sem bag driverless (linha 212 do `agent-session.mjs`)
|
||||
- **Risco de acoplamento:** Baixo — mudança pontual em lógica de sanitização de argumento, não toca collections/negócio
|
||||
|
||||
## Dependências
|
||||
|
||||
- OPS119 (referência de padrão já implementado para `plan`)
|
||||
|
||||
## Fora de escopo
|
||||
|
||||
- Mudar comportamento de `plan` sem bag (já é driverless)
|
||||
- Alterar `new` ou `next` (fora do escopo desta issue)
|
||||
|
||||
## Rabbit holes de produto
|
||||
|
||||
- **Refatorar sanitização unificada.** Se alguém "só completar" a limpeza: explosão de escopo. **Corte neste item:** adicionar apenas a linha `if (purpose === 'fix' && !sanitized) return null`, sem refatorar o bloco `fix || plan`.
|
||||
|
||||
## Questões em aberto (produto)
|
||||
|
||||
- Nenhuma — comportamento espelhado do `plan` já validado em produção (OPS119).
|
||||
|
||||
## Referências
|
||||
|
||||
- `scripts/lib/agent-session.mjs:208-217` — `purposeInvocation`, bloco `fix || plan`
|
||||
- `scripts/lib/worktree.mjs:142` — `assertSkillAutoSupported`, lógica de `--auto`
|
||||
- `tests/unit/agentSession.unit.spec.ts:243-252` — testes de `fix` com/san bag
|
||||
- `tests/unit/worktree.unit.spec.ts:599-604` — testes de `assertSkillAutoSupported`
|
||||
- `AGENTS.md` — convenção de sessões driverless (OPS119)
|
||||
Loading…
Reference in a new issue