---
id: execute-subtask
agent: dev
title: Executar uma subtask do implementation.yaml
inputs: [subtask-id, implementation.yaml]
outputs: [código da subtask, File List atualizada, status da subtask: done]
elicit: false
modes: [yolo, interactive]
---

# Executar uma subtask do implementation.yaml

**Objetivo:** implementar uma única subtask atômica do plano de execução pelo menor caminho,
deixando-a pronta para verificação — sem tocar em nada além do que a subtask delimita.

**Pré-condições:**
- Existe um `implementation.yaml` (plano de execução) com a subtask referenciada pelo `subtask-id`.
  Se o id não existe no plano, **pare** e reporte — não invento subtask.
- As dependências (`depends_on`) da subtask já estão `done`. Se uma dependência está aberta, **pare**:
  executar fora de ordem gera retrabalho.

## Passos

1. **Carrego a subtask** do `implementation.yaml`: seu objetivo, os arquivos que ela toca
   (`files`), o critério de aceite local e a verificação configurada (`verify`). Leio só essa
   subtask e o contexto que ela mesma referencia — não o plano inteiro.
2. **Confirmo o escopo.** A subtask define quais arquivos posso tocar. Se o trabalho exige mexer
   fora dessa lista, **paro** e reporto a fronteira estourada — não invado escopo de outra subtask.
3. **Procuro padrão existente antes de criar** (REUSE > ADAPT > CREATE). Reuso utilitário/componente
   que já resolve; adapto se quase resolve; só crio do zero quando nada serve.
4. **Implemento pelo menor caminho** que satisfaz o critério local da subtask, seguindo os padrões
   do projeto. Sem super-construção: resolvo o que a subtask pede, nada além.
5. **Atualizo a File List** com cada arquivo criado/modificado/deletado nesta subtask.
6. **Marco a subtask como `done`** no `implementation.yaml` (campo de status) e a roteio para a
   verificação (`verify-subtask`). Não declaro pronto sem passar pela verificação.

## Critério de pronto (DoD)

- [ ] A subtask foi implementada dentro da sua lista de arquivos (`files`) — sem extravasar escopo
- [ ] Reúso foi avaliado antes de criar estrutura nova
- [ ] File List atualizada com tudo que foi tocado
- [ ] Subtask marcada `done` no `implementation.yaml` e roteada para `verify-subtask`

## Falha / recuperação

- **A subtask exige tocar arquivos fora da sua lista** → HALT e reporto; o escopo da subtask precisa
  ser corrigido no plano, não burlado.
- **Uma dependência (`depends_on`) não está pronta** → paro e reporto a ordem quebrada.
- **3 tentativas falhas no mesmo ponto** → HALT, registro o bloqueio e reporto; não empilho hipótese.
- **A subtask está ambígua mesmo com o contexto do plano** → devolvo ao @architect (dono do
  `implementation.yaml`) para esclarecer — não invento o requisito que falta.
