- Primeiro, defina
/modelcomo Haiku - Em seguida, leia todas as tarefas pendentes dos diretórios
.context/compound-engineering/todos/etodos/(legado)
Apresente todas as descobertas, decisões ou problemas aqui, um por um, para triagem. O objetivo é revisar cada item e decidir se deve adicioná-lo ao sistema de tarefas CLI.
IMPORTANTE: NÃO CODIFIQUE NADA DURANTE A TRIAGEM!
Este comando é para:
- Triar descobertas de revisão de código
- Processar resultados de auditoria de segurança
- Revisar análises de performance
- Lidar com quaisquer outras descobertas categorizadas que precisem de rastreamento
Fluxo de Trabalho
Passo 1: Apresentar Cada Descoberta
Para cada descoberta, apresente neste formato:
---
Issue #X: [Título Breve]
Severidade: 🔴 P1 (CRÍTICO) / 🟡 P2 (IMPORTANTE) / 🔵 P3 (BOM-TER)
Categoria: [Segurança/Performance/Arquitetura/Bug/Feature/etc.]
Descrição:
[Explicação detalhada do problema ou melhoria]
Localização: [caminho_do_arquivo:número_da_linha]
Cenário do Problema:
[Passo a passo do que está errado ou poderia acontecer]
Solução Proposta:
[Como corrigir]
Esforço Estimado: [Pequeno (< 2 horas) / Médio (2-8 horas) / Grande (> 8 horas)]
---
Deseja adicionar isso à lista de tarefas?
1. sim - criar arquivo de tarefa
2. próximo - pular este item
3. personalizado - modificar antes de criar
Passo 2: Lidar com a Decisão do Usuário
Quando o usuário disser "sim":
-
Atualizar arquivo de tarefa existente (se existir) ou Criar novo nome de arquivo:
Se a tarefa já existir (da revisão de código):
- Renomeie o arquivo de
{id}-pending-{priority}-{desc}.md→{id}-ready-{priority}-{desc}.md - Atualize o frontmatter YAML:
status: pending→status: ready - Mantenha issue_id, prioridade e descrição inalterados
Se estiver criando nova tarefa:
{next_id}-ready-{priority}-{descricao-breve}.mdMapeamento de prioridade:
- 🔴 P1 (CRÍTICO) →
p1 - 🟡 P2 (IMPORTANTE) →
p2 - 🔵 P3 (BOM-TER) →
p3
Exemplo:
042-ready-p1-transaction-boundaries.md - Renomeie o arquivo de
-
Atualizar frontmatter YAML:
--- status: ready # IMPORTANTE: Mude de "pending" para "ready" priority: p1 # ou p2, p3 baseado na severidade issue_id: "042" tags: [categoria, tags-relevantes] dependencies: [] --- -
Preencher ou atualizar o arquivo:
# [Título do Issue] ## Declaração do Problema [Descrição da descoberta] ## Descobertas - [Principais descobertas] - Localização: [caminho_do_arquivo:número_da_linha] - [Detalhes do cenário] ## Soluções Propostas ### Opção 1: [Solução primária] - **Prós**: [Benefícios] - **Contras**: [Desvantagens, se houver] - **Esforço**: [Pequeno/Médio/Grande] - **Risco**: [Baixo/Médio/Alto] ## Ação Recomendada [Preenchido durante a triagem - plano de ação específico] ## Detalhes Técnicos - **Arquivos Afetados**: [Listar arquivos] - **Componentes Relacionados**: [Componentes afetados] - **Alterações no Banco de Dados**: [Sim/Não - descrever se sim] ## Recursos - Descoberta original: [Fonte deste issue] - Issues relacionados: [Se houver] ## Critérios de Aceitação - [ ] [Critérios de sucesso específicos] - [ ] Testes passam - [ ] Código revisado ## Registro de Trabalho ### {data} - Aprovado para Trabalho **Por:** Sistema de Triagem Claude **Ações:** - Issue aprovado durante sessão de triagem - Status alterado de pending → ready - Pronto para ser selecionado e trabalhado **Aprendizados:** - [Contexto e insights] ## Notas Fonte: Sessão de triagem em {data} -
Confirmar aprovação: "✅ Aprovado:
{novo_nome_do_arquivo}(Issue #{issue_id}) - Status: ready → Pronto para trabalhar"
Quando o usuário disser "próximo":
- Excluir o arquivo de tarefa - Remova-o da localização atual, pois não é relevante
- Pule para o próximo item
- Rastreie itens ignorados para o resumo
Quando o usuário disser "personalizado":
- Pergunte o que modificar (prioridade, descrição, detalhes)
- Atualize as informações
- Apresente a versão revisada
- Pergunte novamente: sim/próximo/personalizado
Passo 3: Continuar Até Processar Tudo
- Processe todos os itens um por um
- Rastreie usando tarefas baseadas em arquivos (todos/ +
/skill:file-todos) para visibilidade - Não espere aprovação entre os itens - continue em frente
Passo 4: Resumo Final
Depois que todos os itens forem processados:
## Triagem Concluída
**Total de Itens:** [X] **Tarefas Aprovadas (ready):** [Y] **Ignorados:** [Z]
### Tarefas Aprovadas (Prontas para Trabalho):
- `042-ready-p1-transaction-boundaries.md` - Problema de limites de transação
- `043-ready-p2-cache-optimization.md` - Melhoria de performance de cache ...
### Itens Ignorados (Excluídos):
- Item #5: [motivo] - Removido
- Item #12: [motivo] - Removido
### Resumo das Alterações Feitas:
Durante a triagem, as seguintes atualizações de status ocorreram:
- **Pending → Ready:** Nomes de arquivos e frontmatter atualizados para refletir status aprovado
- **Excluídos:** Arquivos de tarefa de descobertas ignoradas removidos
- Cada arquivo aprovado agora tem `status: ready` no frontmatter YAML
### Próximos Passos:
1. Visualizar tarefas aprovadas prontas para trabalho:
```bash
ls .context/compound-engineering/todos/*-ready-*.md todos/*-ready-*.md 2>/dev/null
```
-
Iniciar trabalho nos itens aprovados:
/resolve-todo-parallel # Trabalhar em múltiplos itens aprovados de forma eficiente -
Ou escolher itens individuais para trabalhar
-
À medida que você trabalha, atualize o status da tarefa:
- Ready → In Progress (no seu contexto local enquanto trabalha)
- In Progress → Complete (renomeie o arquivo: ready → complete, atualize o frontmatter)
## Formato de Exemplo de Resposta
Issue #5: Limites de Transação Ausentes para Operações de Múltiplas Etapas
Severidade: 🔴 P1 (CRÍTICO)
Categoria: Integridade de Dados / Segurança
Descrição: O callback google_oauth2_connected no concern GoogleOauthCallbacks realiza múltiplas operações de banco de dados sem proteção de transação. Se qualquer etapa falhar no meio, o banco de dados fica em um estado inconsistente.
Localização: app/controllers/concerns/google_oauth_callbacks.rb:13-50
Cenário do Problema:
- User.update é bem-sucedido (email alterado)
- Account.save! falha (erro de validação)
- Resultado: User tem email alterado, mas nenhuma Account associada
- A próxima tentativa de login falha completamente
Operações Sem Transação:
- Confirmação do usuário (linha 13)
- Remoção da lista de espera (linha 14)
- Atualização do perfil do usuário (linha 21-23)
- Criação de conta (linha 28-37)
- Anexo de avatar (linha 39-45)
- Criação de jornada (linha 47)
Solução Proposta: Envolver todas as operações em um bloco ApplicationRecord.transaction do ... end
Esforço Estimado: Pequeno (30 minutos)
Deseja adicionar isso à lista de tarefas?
- sim - criar arquivo de tarefa
- próximo - pular este item
- personalizado - modificar antes de criar
## Detalhes Importantes de Implementação
### Transições de Status Durante a Triagem
**Quando "sim" é selecionado:**
1. Renomear arquivo: `{id}-pending-{priority}-{desc}.md` → `{id}-ready-{priority}-{desc}.md`
2. Atualizar frontmatter YAML: `status: pending` → `status: ready`
3. Atualizar Registro de Trabalho com entrada de aprovação da triagem
4. Confirmar: "✅ Aprovado: `{nome_do_arquivo}` (Issue #{issue_id}) - Status: **ready**"
**Quando "próximo" é selecionado:**
1. Excluir o arquivo de tarefa de sua localização atual
2. Pular para o próximo item
3. Nenhum arquivo permanece no sistema
### Acompanhamento de Progresso
Toda vez que você apresentar uma tarefa como cabeçalho, inclua:
- **Progresso:** X/Y concluídos (por exemplo, "3/10 concluídos")
- **Tempo estimado restante:** Baseado na rapidez do seu progresso
- **Ritmo:** Monitore o tempo por descoberta e ajuste a estimativa conforme necessário
Exemplo:
Progresso: 3/10 concluídos | Tempo estimado: ~2 minutos restantes
### Não Codifique Durante a Triagem
- ✅ Apresentar descobertas
- ✅ Tomar decisões sim/próximo/personalizado
- ✅ Atualizar arquivos de tarefa (renomear, frontmatter, registro de trabalho)
- ❌ NÃO implemente correções ou escreva código
- ❌ NÃO adicione detalhes de implementação
- ❌ Isso é para a fase /resolve-todo-parallel
Quando terminar, apresente estas opções:
```markdown
O que você gostaria de fazer a seguir?
1. executar /resolve-todo-parallel para resolver as tarefas
2. commitar as tarefas
3. nada, relaxar