mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 06:43:06 +00:00
3.6 KiB
3.6 KiB
Impl: Tornar worktree fix (sem argumento) driverless, espelhando plan
Status: aprovado Atualizado em: 2026-09-20 Issue: #1226 Intenção: docs/plans/ops71-worktree-fix-sem-arg-driverless.md Appetite restante: ~0,5 dia eng (herdado da intenção)
Leitura da intenção
- Outcome:
pnpm worktree fixsem argumento abre sessão sem mensagem automática;pnpm worktree fix "descrição"continua funcionando;pnpm worktree fix --autosem bag lança erro. - O que NÃO negociar:
fixcom argumento continua enviando mensagem sanitizada;--autoexige bag;plansem bag permanece driverless (não quebrar OPS119). - O que reavaliar: Posição exata da linha no
agent-session.mjs; comportamento deassertSkillAutoSupportedpara--autosem bag.
Abordagem recomendada
Opções consideradas: A (adição pontual) | B (refatoração unificada)
Recomendação: A — adicionar if (purpose === 'fix' && !sanitized) return null imediatamente abaixo da linha 212, sem refatorar o bloco fix || plan, porque minimize risco e escopo.
Rejeitadas: B — refatorar sanitização unificada é rabbit hole de produto (intenção define corte claro).
Componentes / mudanças
purposeInvocation(scripts/lib/agent-session.mjs:212): adicionar linhaif (purpose === 'fix' && !sanitized) return nullantes do check--autoassertSkillAutoSupported(scripts/lib/worktree.mjs:142): validar quefixsem bag +--autolança erro (pode já existir; verificar)- Migration: sem migration (tooling interno, sem schema)
- Access / Consent: sem mudança
- UI: sem mudança (N/A)
Fases verificáveis
- Tracer / schema+server — 0,1 dia: adicionar linha driverless no
agent-session.mjs; verificarassertSkillAutoSupportedpara--autosem bag - Testes — 0,2 dia: atualizar
agentSession.unit.spec.tspara cobrirfixsem bag →null; atualizarworktree.unit.spec.tspara cobrirfix --autosem bag → erro - Gates — 0,1 dia: rodar
pnpm gate:fast; push viapnpm push
Rabbit holes / Não escopo (engenharia)
- Refatorar sanitização unificada — explosão de escopo; cortar em adição pontual
- Mudar comportamento de
plansem bag — já validado em produção (OPS119) - Alterar
newounext— fora do escopo
Riscos e mitigação
- Risco:
assertSkillAutoSupportedpode não tratarfixsem bag corretamente → Mitigação: verificar lógica existente; se necessário, adicionar check explícito - Risco: Testes existentes podem falhar após mudança → Mitigação: rodar suíte completa antes de push
Aceite de engenharia
- Aceite de produto da intenção ainda coberto:
fixsem bag → sessão driverless;fixcom bag → mensagem;fix --autosem bag → erro - Invariantes AGENTS/engineering-standards: sem mudança de access/consent; tooling interno
- Testes de domínio previstos (unit/int) onde access/write paths mudam: testes unitários atualizados para cenários novos
Decision Quality (resumo):
- Decisões caras têm rejeitadas? Sim — refatoração unificada rejeitada (rabbit hole)
- Abordagem cabe no appetite da intenção? Sim — 0,5 dia eng, mudança pontual
- Rabbit holes nomeados? Sim — refatoração unificada, mudança em
plan, alterarnew/next - Depth check: reusa shells/helpers existentes? Sim — espelha padrão já implementado para
plan - Intenção (aceite de produto) permanece satisfeita — engenharia não reescreveu o outcome? Sim — behavior espelhado exato do
plan
Self-score: 5 — decisão clara, escopo mínimo, riscos mapeados.