Desenvolvedor: Rastreamento Contínuo de Issues
Gatilho
Execute ao FINAL de cada iteração de codificação significativa OU quando o usuário explicitamente solicitar. NÃO execute no meio da tarefa — aguarde um ponto de parada natural.
Esta habilidade é carregada por padrão no início da sessão. É segura e não destrutiva:
ela apenas escreve em knowledge/issues/open/ e knowledge/issues/INDEX.md.
Algoritmo
Fase 1 — Escanear Conversa Atual
Revise a conversa atual em busca dos seguintes tipos de sinal:
| Sinal | Exemplos | Prioridade |
|---|---|---|
| Erro corrigido | "PowerShell interpretou {{ }} incorretamente", "ngx-translate v18 não tem forRoot()" | ALTA |
| Descoberta de API | "linkedSignal requer Node ≥22", "provideZonelessChangeDetection() está estável no Angular 22" | ALTA |
| Workaround encontrado | "Use create_file em vez de Set-Content para templates" | MÉDIA |
| Padrão repetido | Mesmo erro ocorreu 2+ vezes apenas nesta sessão | ALTA |
| Peculiaridade do projeto | "Este monorepo usa npm workspaces", "O .gitignore exclui .github/" | MÉDIA |
| Limitação da ferramenta | "Copilot não expõe usage.prompt_tokens diretamente" | BAIXA |
| Preferência do usuário | "Prefere comandos separados com ; não &&" | MÉDIA |
Fase 2 — Referência Cruzada com o Registro de Issues
- Leia
knowledge/issues/INDEX.md— obtenha todos os IDs, títulos e categorias de issues existentes - Para cada sinal da Fase 1, tente corresponder com issues existentes:
- Correspondência por sobreposição de palavras-chave (título + descrição)
- Correspondência por categoria + padrão de erro semelhante
- Use
grep_searchemknowledge/issues/open/para conteúdo relacionado
Fase 3 — Criar ou Atualizar Issues
NOVA issue (sem correspondência encontrada)
Gere ID: ISSUE-YYYYMMDD-XXXX onde XXXX = primeiros 4 caracteres hex de um UUID
PowerShell: [guid]::NewGuid().ToString().Substring(0, 4)
Exemplo: ISSUE-20260624-a1b2
Crie knowledge/issues/open/ISSUE-YYYYMMDD-XXXX.md usando TEMPLATE.md
Defina occurrences=1, certainty=low, status=open
Defina created_by como "developer" (ou identificador do agente atual)
Insira uma nova linha em INDEX.md → Tabela de Issues Abertas
Se você tiver dados de token de sessão, opcionalmente adicione na seção Evidências
Os IDs são baseados em UUID — não precisa ler INDEX.md primeiro. Risco de colisão zero entre múltiplos desenvolvedores trabalhando simultaneamente.
ATUALIZAR issue existente (correspondência encontrada)
Incremente occurrences em 1
Atualize last_seen para a data de hoje
Anexe informações da sessão atual ao array sessions
Reavalie certainty:
- 1 ocorrência → baixa
- 2 ocorrências → média
- 3+ ocorrências → alta
Atualize o arquivo da issue em open/ usando replace_string_in_file
Atualize os contagens e dados de linha em INDEX.md
Conflitos de merge no INDEX.md
Se dois desenvolvedores adicionarem linhas ao INDEX.md simultaneamente, um conflito de merge do Git ocorrerá no corpo da tabela. Resolução: mantenha TODAS as linhas de ambos os branches; reconte os diretórios para atualizar os números do Resumo.
Relatório
Produza uma tabela de resumo:
## Relatório do Desenvolvedor — YYYY-MM-DD
| Ação | ID | Título | Categoria | Detalhe |
|------|----|--------|-----------|---------|
| 🆕 Novo | ISSUE-001 | ... | ... | Criado em open/ |
| 📈 Atualizado | ISSUE-002 | ... | ... | 1→2 ocorrências, certeza baixa→média |
Regras Importantes
-
NUNCA promova issues. A promoção é responsabilidade da habilidade
ai-engineer. Sua única saída são arquivos de issue emopen/e atualizações emINDEX.md. -
NUNCA modifique skills ou arquivos de memória. Você é um observador somente leitura de
.github/skills/e/memories/. Não mexa neles. -
NUNCA crie uma skill para algo que o modelo já sabe — se for conhecimento comum (ex.: "use
constnãovar"), pule completamente. -
Mantenha os arquivos de issue concisos — o formato TEMPLATE.md é o máximo, não o mínimo. Não escreva textos longos.
-
Isolamento de sessão — o array
sessionsno frontmatter armazena UUIDs de sessão. Usesession_store_sqlpara encontrar o UUID da sessão atual se disponível, caso contrário use um identificador baseado em data. -
Sempre preencha
created_by— defina como o nome do agente ou identificador da sessão para que oai-engineerpossa rastrear origens de issues durante a revisão.
Transferência para o Engenheiro de IA
Quando uma issue atingir certainty: high (3+ ocorrências), a habilidade
ai-engineer cuida da promoção. A habilidade developer NÃO decide o que promover
ou para onde — ela apenas registra a força do sinal. Execute a habilidade ai-engineer como
um subagente quando o usuário pedir para organizar conhecimento, limpar issues ou
promover padrões.
Referência de Caminhos de Arquivos
| Recurso | Caminho |
|---|---|
| Índice do registro de issues | knowledge/issues/INDEX.md |
| Modelo de issue | knowledge/issues/TEMPLATE.md |
| Issues abertas | knowledge/issues/open/ISSUE-XXX.md |
| Issues promovidas | knowledge/issues/promoted/ISSUE-XXX.md |
| Issues descartadas | knowledge/issues/discarded/ISSUE-XXX.md |